Однажды потребовалось мне сделать для одного проекта стробоскоп, который бы зажигал отрезок светодиодной ленты.
Попробовал сначала собрать на дискретных элементах (схему на таймере 555 нашёл на просторах интернета). Не понравилось слишком частое мигание и сложность подстройки частоты.
Нашёл у себя в загашниках пару плат Digispark, на базе ATtiny85. По-сути это те же ардуинки, но с более скромными возможностями. Самые главные её достоинства – это компактность и дешевизна.
Для подключения светодиодной ленты используется MOSFET-транзистор IRL3705N, подключенный по классической схеме.
Схему я взял в интернете, на ней нарисовано подключение мотора, но вместо мотора у нас светодиодная лента.
Резистор R1 необходим для защиты порта микроконтроллера. Его сопротивление обычно порядка 100-200 Ом. Резистор R2 нужен для разряда затвора транзистора на землю. Без него лента не будет гаснуть.
Транзистор IRL3705N – это так называемый logic-level транзистор, то есть он способен полностью открыться при напряжении 5 Вольт. Я часто использую эти транзисторы в своих поделках, ввиду их дешевезны, распространенности и мощности.
Скетч довольно примитивен. Для контроля работы схемы я добавил одновременное мигание встроенного светодиода. Если вдруг схема перестанет работать – будет понятно работает ли микроконтроллер.
#define MOSFET_PIN 0 //к этому пину подключаем схему с MOSFET
#define LED_PIN 1 //встроенный светодиод у платы Digispark
void setup() {
pinMode(MOSFET_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(MOSFET_PIN, HIGH);
digitalWrite(LED_PIN, HIGH);
delay(25);
digitalWrite(MOSFET_PIN, LOW);
digitalWrite(LED_PIN, LOW);
delay(200);
}
При необходимости можно добавить в схему два подстроечных резистора, чтобы регулировать частоту и продолжительность вспышек. Тогда в скетче нужно сделать обработку сигналов с этих резисторов и менять соответствующие значения пауз (delay). Но поскольку у заказчика не было жёстких требований к частоте вспышек – я не стал этого делать.
Жду ваших замечаний и вопросов в комментариях.