Решил опубликовать скетч работы самого обыкновенного светофора.

Режим работы светофора:

  • Все светодиоды выключены
  • 5 секунд горит красный светодиод
  • На 3 секунды включается желтый, красный продолжает гореть.
  • Красный и желтый гаснут.
  • Включается зеленый на 4 секунды.
  • Зеленый начинает моргать 4 раза.
  • Зеленый гаснет, желтый включается на 3 сек.
  • Желтый гаснет, включается красный и т.д.
НАМ ПОНАДОБИТСЯ
  • Плата Arduino Uno
  • Три светодиода: красный, желтый и зеленый
  • Три резистора сопротивлением 220-270 Ом.
  • Провода
СХЕМА ПОДКЛЮЧЕНИЯ
Untitled Sketch3_bb
СКЕТЧ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
int ledPinRed = 12;  // назначаем пин 12 – красный светодиод
int ledPinYel = 11;  // назначаем пин 11 – желтый светодиод
int ledPinGr = 10;  // назначаем пин 10 –  зеленый светодиод
 
void setup()
{
  pinMode(ledPinRed, OUTPUT); // задаем светодиод - выходной пин
  pinMode(ledPinYel, OUTPUT); // задаем светодиод - выходной пин
  pinMode(ledPinGr, OUTPUT); // задаем светодиод - выходной пин
 
  digitalWrite(ledPinRed, 0); // выключаем красный
  digitalWrite(ledPinYel, 0); // выключаем желтый
  digitalWrite(ledPinGr, 0); //  выключаем зеленый
}  
 
void loop()
{
  digitalWrite(ledPinRed, 1);  //включаем красный          
  delay(5000);   //задержка красного 5 сек.                     
          
  digitalWrite(ledPinYel, 1);   //включаем желтый        
  delay(3000);   //задержка желтого 3 сек                   
  
  digitalWrite(ledPinYel, 0);   //выключаем желтый 
  digitalWrite(ledPinRed, 0);   //выключаем красный
   
  digitalWrite(ledPinGr, 1); //включаем зеленый          
  delay(4000);   //задержка зеленого  4 сек          
  
//цикл со счетчиком. Изменение переменной i с шагом 1 от 4 до 1.
//Когда значение i будет равно 1, выполнится выход из цикла.
//т.е. мы задаем кол-во миганий зеленого светодиода 4 раза 
   for (int i=4; i>0; i--) 
    {
      digitalWrite(ledPinGr, 0);         
      delay(500); //задержка 500мс               
      digitalWrite(ledPinGr, 1);        
      delay(500); //задержка 500мс                
    }  
  
  digitalWrite(ledPinGr, 0); //выключаем зеленый
  digitalWrite(ledPinYel, 1);  //включаем желтый         
  delay(3000);  //задержка желтого 3 сек           
 
  digitalWrite(ledPinYel, 0); //выключаем желтый
}

в коде вместо 0 и 1 можно писать LOW и HIGH соответственно.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Навигация по записям