Для регулировки мощности в цепи постоянного тока подключите выход микросхемы к силовому транзистору через резистор 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() на управляющих пинах драйвера перед корректировкой мощности.