🛒
0 товар.
0 руб.
Логотип

Интернет-магазин «Неглупый Дом»

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

🔆 Проект: диммер освещения на энкодере KY-040 и MOSFET

Энкодер KY-040 и MOSFET IRF520

Энкодер KY-040 плавно меняет яркость, MOSFET IRF520 управляет мощностью через ШИМ.

Как это работает

KY-040 — инкрементальный энкодер: два контакта (CLK, DT) замыкаются по очереди со сдвигом фазы при вращении. Сравнивая, какой из них изменился первым, определяется направление — в отличие от потенциометра, который показывает только абсолютное положение.

MOSFET IRF520 управляет яркостью через ШИМ: транзистор быстро включает/выключает питание нагрузки, соотношение времён (`analogWrite()`) определяет среднюю яркость — без нагрева резистора, как у простого реостата.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, что указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. Подключите KY-040: CLK → D2, DT → D3, VCC → 5V, GND → GND.
  2. Подключите MOSFET IRF520: сигнал (PWM) → D9.
  3. Подключите нагрузку и отдельное питание к силовым контактам MOSFET-модуля.
  4. При желании поменяйте шаг изменения яркости (`5`).

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

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: Электронные модули.

← 🎹 сенсорное пианино на 4 кнопках…📜 навигация по меню на LCD1602 э… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу: 167 ₽ 150 ₽ (экономия 17 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина

Поиск


Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA