Урок 7 - Светофор на Arduino своими руками. Пишем скетч используя функции

.Урок 7 -  Светофор на Arduino  своими руками. Пишем скетч используя функции

В данном уроке сделаем самый простой светофор из трех светодиодов . Работать он должен вот по такой схеме.

Работа светофора

1. Светит только красный цвет нашего будущего светофора.

2. Не выключая красный сигнал светофора включаем желтый .

3. Выключаем красный и желтый включаем зеленый.

4. Выключаем зеленый сигнал светофора включаем желтый.

После чего цикл повторяем с красного сигнала светофора.

Для урока нам понадобится:

Подключим три LED к плате Arduino UNO . У нас получиться вот такая схема.

Светофор на ардуино своими руками

Принципиальная схема.

Принципиальная схема подключения светофора на Arduino

Скетч выглядит так

<code>int led_red = 2; // пин подключения 2
int led_yellow = 3; // пин подключения 3
int led_green = 4; // пин подключения 4
void setup() {
pinMode(led_red, OUTPUT);
pinMode(led_yellow, OUTPUT);
pinMode(led_green, OUTPUT);
}
void loop() {
    digitalWrite(led_red, HIGH); 
          delay(10000); // Ждем
    digitalWrite(led_yellow, HIGH); 
          delay(2000);// Ждем
    digitalWrite(led_green, HIGH); 
    digitalWrite(led_red, LOW);
    digitalWrite(led_yellow, LOW);
          delay(10000);// Ждем
    digitalWrite(led_yellow, HIGH);
    digitalWrite(led_green, LOW);
        delay(2000);// Ждем
    digitalWrite(led_yellow, LOW);
}

Для управления светодиодами используем функции digitalWrite().

Давайте заменим стандартную функции digitalWrite() на свою функцию Led().

<code>void Led (uint8_t pin, byte status)
{
      digitalWrite(pin, status);
}

Функция принимает две переменные pin — пин светодиода и status — состояние светодиода HIGH или LOW.

В итоге получим вот такой скетч

<code>int led_red = 2; // пин подключения 2
int led_yellow = 3; // пин подключения 3
int led_green = 4; // пин подключения 4
void setup() {
pinMode(led_red, OUTPUT);
pinMode(led_yellow, OUTPUT);
pinMode(led_green, OUTPUT);
}
void loop() {
    Led (led_red, HIGH); 
          delay(10000); // Ждем
    Led (led_yellow, HIGH); 
          delay(2000);// Ждем
    Led (led_green, HIGH); 
    Led (led_red, LOW);
    Led (led_yellow, LOW);
          delay(10000);// Ждем
    Led (led_yellow, HIGH);
    Led (led_green, LOW);
        delay(2000);// Ждем
    Led (led_yellow, LOW);
}
void Led (uint8_t pin, byte status)
{
      digitalWrite(pin, status);
}


Как видно по скетчу код стал больше, а функции используют для уменьшения объема кода и упрощения логики. Но мы на этом простом примере посмотрели что такое функция и как передавать переменные в функции в среде разработки arduino IDE.

Понятие что такое функции и как их объявлять пригодиться нам в следующем уроке.

Ест вопросы смотрите видео там подробно описываю программу светофора на Arduino.

Следующий урок: Светофор из 3 светодиодов для машин и 2 для пешеходов на Arduino



Если у вас чего то нет для выполнения данного урока, Вы можете посмотреть в каталоге. Там собранные комплектующими от проверенных продавцов по самым низким ценам.

Понравилась статья? Поделитесь ею с друзьями:

Вернуться в раздел: Уроки Arduino: Светодиоды, Резисторы, Arduino Дата публикации 28 марта , 2017

Комментарии

Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.

антон
#12 Гость: антон (21 марта, 2022 в 17:58)

что нужно добавить чтобы перед 4 стадией зелёный моргал?

Андрей
#11 Гость: Андрей (11 августа, 2020 в 06:46)

А как сделать двух сторонний?

Андрей
#10 Гость: Андрей (25 марта, 2020 в 16:11)
Подключим три LED к плате Arduino UNO . У нас получиться вот такая схема.
В какой программе создан рисунок?
мармок
#9 мармок (25 ноября, 2019 в 12:16)
Супер но есть одно но блин забыл что хотел написать.
Электроклоп
#8 Гость: Электроклоп (18 августа, 2019 в 23:16)

А без delay? Через millis к примеру.

Евгений
#7 Гость: Евгений (13 мая, 2019 в 07:32)

Добрый день а если диодная лента . То есть 3 куска ленты по 15 см каждый и подключить эффект такой же будет?

444
#6 Гость: 444 (28 марта, 2019 в 17:30)

привет все работать

Павел Шляпников
#5 Гость: Павел Шляпников (11 марта, 2019 в 19:58)

А как сделать пешеходный кнопочный?

Сергей Дерюгин
#4 Гость: Сергей Дерюгин (11 марта, 2019 в 19:58)

Ж / Д - светофор, мигание по очереди двух диодов.

Артём Логинов
#3 Гость: Артём Логинов (11 марта, 2019 в 19:58)

А как сделать большой светофор ?

Gennadiy Park
#2 Гость: Gennadiy Park (11 марта, 2019 в 19:57)

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

Евген Авдейчук
#1 Гость: Евген Авдейчук (11 марта, 2019 в 19:57)

а что необходимо добавить, чтоб получить полноценный режим настоящего светофора - мигание зеленого, перед включением желтого?


Cлучайные товары

Посмотреть товар в Магазине »

Мы в соц сетях

Подпишись на канал Telegram

Portal-PK (Портал ПК) © 2015 - 2024
Разработка проектов
AT Block
DWIN Box