Шим контроллер ардуино принцип работы и применение

0
12

Шим контроллер ардуино

Для регулировки мощности в цепи постоянного тока подключите выход микросхемы к силовому транзистору через резистор 220 Ом. При частоте 490 Гц (стандарт для платформ на базе ATmega) скважность импульсов от 0 до 100% определяет среднее напряжение на нагрузке. Например, при 50% заполнении 12-вольтовый двигатель получит эквивалент 6 В.

В схемах с индуктивной нагрузкой (реле, соленоиды) добавьте защитный диод параллельно обмотке. Для светодиодов используйте частоту выше 1 кГц – это устранит мерцание, заметное человеческому глазу. Встроенный таймер Timer1 позволяет поднять частоту до 31 кГц за счет изменения предделителя в регистре TCCR1B.

При работе с емкостными цепями (электролитические двигатели, пьезоизлучатели) ограничьте фронт импульса резистором 10-100 Ом. Это предотвратит броски тока при переключении. Для точного управления сервоприводами применяйте сигнал длительностью 1-2 мс с периодом 20 мс – такой режим реализуется через функцию analogWrite() с последующей калибровкой по осциллографу.

Как управлять яркостью светодиода с помощью модуляции ширины импульса

Частота и разрешение

Платы на базе ATmega2560 поддерживают 16-битное разрешение через библиотеку PWM.h. Это позволяет задавать значения от 0 до 65535 вместо стандартных 8 бит.

Практические примеры

for (int i = 0; i <= 255; i++) {

analogWrite(5, i);

delay(10);

}

В моторных драйверах типа L298N сигнал с заполнением 70-80% обеспечивает оптимальный баланс между скоростью и нагревом обмоток.

Настройка модуляции для регулировки светодиода

В коде задайте пин как выход с помощью pinMode(9, OUTPUT). Для изменения яркости используйте analogWrite(9, значение), где значение – число от 0 (выключено) до 255 (максимальная яркость).

Для плавного изменения яркости добавьте цикл:


for (int i = 0; i <= 255; i++) {
analogWrite(9, i);
delay(10);
}

Если требуется снизить мерцание, добавьте конденсатор 10 мкФ между анодом светодиода и землей.

Регулировка скорости мотора через модуляцию сигнала

Схема подключения

Используйте транзистор MOSFET (IRLZ44N) или драйвер (L298N) для нагрузки выше 500 мА. Подключите:

  • Затвор MOSFET к цифровому выходу платы через резистор 220 Ом
  • Сток к минусу мотора
  • Исток к земле
  • Плюс мотора – к источнику питания 6-12 В

Код для плавного разгона

void setup() {
pinMode(9, OUTPUT);
}
void loop() {
for (int i = 0; i <= 255; i++) {
analogWrite(9, i);
delay(20);
}
delay(1000);
}

Для реверса добавьте H-мост. В скетче меняйте направление через digitalWrite() на управляющих пинах драйвера перед корректировкой мощности.