#4Новичок

Полицейская мигалка на светодиодах

4.7(103)
258 собрано
Полицейская мигалка на светодиодах
Как огни на полицейской машине: красный светодиод три раза быстро вспыхивает, затем три раза вспыхивает синий, и узор повторяется без перерыва. Нужны всего два светодиода и два резистора, подключённые к Arduino. Эффектный первый проект, который собирается за несколько минут.

Видео

Схема

Полицейская мигалка на светодиодах - Circuit

Исходный код

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   Полицейская мигалка на светодиодах
4// ─────────────────────────────────────────
5// Красный и синий светодиоды по очереди быстро мигают по 3 раза,
6// получается эффект полицейской мигалки. Показывает циклы for и управление
7// временем.
8//
9// Пины:
10//   D2 -> Красный светодиод
11//   D3 -> Синий светодиод
12//   Каждый светодиод с резистором 330 ohm
13
14// Время вспышки (мс). Чем меньше значение, тем быстрее мигание
15int delayTime = 60;
16
17void setup() {
18  pinMode(2,OUTPUT);  // Красный
19  pinMode(3,OUTPUT);  // Синий
20}
21
22void loop() {
23  // Красный светодиод мигает 3 раза
24  for(int i=0;i<3;i++){
25    digitalWrite(2,HIGH);
26    delay(delayTime);
27    digitalWrite(2,LOW);
28    delay(delayTime);
29  }
30
31  // Синий светодиод мигает 3 раза
32  for(int i=0;i<3;i++){
33    digitalWrite(3,HIGH);
34    delay(delayTime);
35    digitalWrite(3,LOW);
36    delay(delayTime);
37  }
38}
39

Частые вопросы

Как сделать стробоскоп реалистичнее?

Настоящие полицейские огни несколько раз коротко вспыхивают каждым цветом. Если с помощью цикла `for` быстро включить один светодиод три раза (например, 50 ms включён, 50 ms выключен) и затем перейти к следующему, получится эффект, очень похожий на полицейскую мигалку.

Можно ли поставить красному и синему светодиодам одинаковый резистор?

Работать будут, но яркость будет разной: прямое напряжение синего светодиода (около 3,2 V) выше, чем у красного (около 1,9 V), поэтому с тем же резистором через него течёт меньший ток. Чтобы яркость была одинаковой, для синего светодиода можно выбрать меньшее сопротивление; этот расчёт делает калькулятор резистора для светодиода.

Зачем здесь цикл for?

Он нужен, чтобы повторить один и тот же узор мигания заданное число раз. Вместо того чтобы копировать код несколько раз, можно управлять повторением из одного места, написав `for (int i = 0; i < 3; i++)`.

Как сделать вспышку ярче?

Рассчитывай схему так, чтобы ток с пина Uno не превышал 20 mA; сам пин не ограничивает ток этим значением. Для более мощных светодиодов или светодиодных лент нужно управлять ими от подходящего отдельного источника питания через транзистор или MOSFET, рассчитанный на ток нагрузки; не подключай мощные нагрузки прямо к пину.