Интернет-магазин «Неглупый Дом»
Энкодер KY-040 плавно меняет яркость, MOSFET IRF520 управляет мощностью через ШИМ.
KY-040 — инкрементальный энкодер: два контакта (CLK, DT) замыкаются по очереди со сдвигом фазы при вращении. Сравнивая, какой из них изменился первым, определяется направление — в отличие от потенциометра, который показывает только абсолютное положение.
MOSFET IRF520 управляет яркостью через ШИМ: транзистор быстро включает/выключает питание нагрузки, соотношение времён (`analogWrite()`) определяет среднюю яркость — без нагрева резистора, как у простого реостата.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, что указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
const int clkPin = 2;
const int dtPin = 3;
const int pwmPin = 9;
int lastClk;
int brightness = 128;
void setup() {
Serial.begin(9600);
pinMode(clkPin, INPUT);
pinMode(dtPin, INPUT);
pinMode(pwmPin, OUTPUT);
lastClk = digitalRead(clkPin);
}
void loop() {
int clk = digitalRead(clkPin);
if (clk != lastClk) {
if (digitalRead(dtPin) != clk) {
brightness = min(brightness + 5, 255);
} else {
brightness = max(brightness - 5, 0);
}
analogWrite(pwmPin, brightness);
Serial.print("Яркость: ");
Serial.println(brightness);
}
lastClk = clk;
}
Шаг изменения яркости за щелчок можно увеличить для резкой регулировки или уменьшить для плавной.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 167 ₽ 150 ₽ (экономия 17 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.