В планах писать еще один урок про светофоры на Arduino не было. Но в группе Facebook написали, что данный светофор реализован не совсем правильно, нужно как минимум сделать секцию для пешеходов. В дальнейшем есть планы снять урок про Arduino светофор для машин и пешеходов со звуковым уведомлением и кнопкой. Но на данном этапе это большой скачок вперед и с теми знаниями, которые вы получили из предыдущих уроков, сделать подобный светофор не получится. Поэтому сделал простой вариант Arduino светофора для машин и пешеходов.
Закрепить полученные знания в предыдущих уроках, и повторить работу с циклом for() и булевыми переменными.
Такие светофоры регулируют движение пешеходов через пешеходный переход. Как правило, он имеет два вида сигнала: разрешающий и запрещающий. Обычно для этой цели используют соответственно зелёный и красный свет. Сами сигналы имеют различную форму. Чаще всего используют сигналы в виде силуэта человека: красный — стоящего, зелёный — идущего. В 1970-е годы в городах СССР использовались пешеходные светофоры иного вида — прямоугольной формы; с красным сигналом в виде надписи «стойте» и зелёным в виде надписи «идите» (такие светофоры показывают крупным планом в фильме Следствие ведут ЗнаТоКи. Несчастный случай).
Современные светофоры для пешеходов дополнительно оборудуют также звуковыми сигналами, предназначенными для слепых пешеходов, а иногда и табло обратного отсчёта времени (впервые появились во Франции в 1998 г.).
Алгоритм работы одного светофора найти в интернет можно. Но вот как взаимодействуют 2 светофора: для машин и для пешеходов, данной информации нет. В группе на facebook мне скинули вот такую иллюстрацию.
Но тут нет информации о мигании зеленого цвета и прочих этапах взаимодействия автомобильного и пешеходного светофоров. Скорее всего, данную информацию можно найти в технической документации по светофорам, но у нас урок по программированию Arduino и заморачиваться поисками тонкостей работы светофора я не стал. Прошу отнестись с пониманием, если что-то работает не так как нужно. А если у вас есть информация, которая позволит дополнить или подправить урок, пишите в комментариях.
Алгоритм работы трех секционного светофора для машин останется без изменений. К режиму работы добавим работу двухсекционного светофора для пешеходов.
Схему подключения возьмём из Урока 5. Светофор на Arduino UNO. Arduino моделирование в Tinkercad. И добавим 2 светодиода, которые будут имитировать работу светофора для пешеходов.
В итоге схема подключения Arduino светофора для машин и пешеходов примет вид.
За основу возьмём код из 5 урока. Если вы не смотрели данный урок, рекомендую ознакомиться с ним прежде, чем приступать к данному уроку.
Добавим необходимую информацию, чтобы инициализировать пины подключения светофора для пешеходов. Светодиоды подключены к 5 и 6 пинам, соответственно нужно добавить.
int people_red = 5; int people_green = 6; void setup() { … pinMode(people_red, OUTPUT); pinMode(people_green, OUTPUT); }
К алгоритму работы трехсекционного светофора добавим работу светофора для пешеходов. Для этого алгоритм менять не придётся. Достаточно прописать в нужных местах включение и выключение сигналов светофора для пешеходов.
int led_red =2; int led_yellow = 3; int led_green = 4; boolean led_on = HIGH; int people_red = 5; int people_green = 6; boolean led_on_p = HIGH; void setup() { pinMode(led_red, OUTPUT); pinMode(led_yellow, OUTPUT); pinMode(led_green, OUTPUT); pinMode(people_red, OUTPUT); pinMode(people_green, OUTPUT); } void loop() { digitalWrite(led_red, HIGH); digitalWrite(people_green, HIGH); delay(2000); // digitalWrite(led_yellow, HIGH); digitalWrite(people_red, HIGH); digitalWrite(people_green, LOW); delay(700); // digitalWrite(led_red, LOW); digitalWrite(led_yellow, LOW); digitalWrite(led_green, HIGH); delay(2000); // for (int i=0; i<6; i++) { led_on = !led_on; digitalWrite(led_green, led_on); delay(500); // } digitalWrite(led_yellow, HIGH); digitalWrite(led_green, LOW); delay(700); // digitalWrite(led_yellow, LOW); digitalWrite(people_red, LOW); }
Каждую строчку, которую добавил в код, расписывать не буду, об этом подробно рассказываю в видео. Для более правильной работы нужно добавить мигание зеленым цветом светофора для пешеходов. Поэтому добавим цикл по аналогии работы светофора для машин. Для этого нужно создать дополнительную переменную:
boolean led_on_p = HIGH;
И сам цикл мигания светодиодом.
for (int x=0; x<6; x++) { led_on_p = !led_on_p; digitalWrite(people_green, led_on_p); delay(500); }
В итоге у нас получится вот такой код.
int led_red =2; int led_yellow = 3; int led_green = 4; boolean led_on = HIGH; int people_red = 5; int people_green = 6; boolean led_on_p = HIGH; void setup() { pinMode(led_red, OUTPUT); pinMode(led_yellow, OUTPUT); pinMode(led_green, OUTPUT); pinMode(people_red, OUTPUT); pinMode(people_green, OUTPUT); } void loop() { digitalWrite(led_red, HIGH); digitalWrite(people_green, HIGH); delay(2000); // for (int i = 0; i<6; i++) { led_on_p = !led_on_p; digitalWrite(people_green, led_on_p); delay(500); } digitalWrite(led_yellow, HIGH); digitalWrite(people_red, HIGH); digitalWrite(people_green, LOW); delay(700); // digitalWrite(led_red, LOW); digitalWrite(led_yellow, LOW); digitalWrite(led_green, HIGH); delay(2000); // for (int i=0; i<6; i++) { led_on = !led_on; digitalWrite(led_green, led_on); delay(500); // } digitalWrite(led_yellow, HIGH); digitalWrite(led_green, LOW); delay(700); // digitalWrite(led_yellow, LOW); digitalWrite(people_red, LOW); }
Как видим, код Arduino светофора для машин и пешеходов получился не многим сложнее управления одним светофором для машин.
Arduino UNO уроки для начинающих можно использовать не только в симуляторе, но и программировать реальную Arduino UNO. Для этого полученный код можно скопировать в Arduino IDE и загрузить в отладочную плату. Подробнее о загрузке кода смотрите в предыдущем уроке.
Мы рады объявить о нашем присутствии на Boosty! Arduino-Tex приглашает всех наших друзей и последователей поддержать нас на этой замечательной платформе. Здесь вы найдете эксклюзивный контент, уникальные проекты и возможность стать частью нашей творческой команды. Присоединяйтесь к нам на Boosty и вместе мы сделаем мир Arduino еще удивительнее!
Понравился Урок 5. Светофор на Arduino UNO. Arduino моделирование в Tinkercad? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Фотографии к статье
Файлы для скачивания
![]() |
Скетч (код) к уроку 6. Arduino светофор для машин и пешеходов.ino | 1 Kb | 1165 | Скачать |
Здравствуйте, пожалуйста помогите с решением, как сделать автомобильный светофор и пешеходный светофор, который управляется с кнопки ?
спасибо всё работает
Пока не понял
Уроки Arduino для начинающих
24 августа , 2020
Комментариев:3
Файлов для скачивания:1
Фото:5
Понравилась статья? Нажми
Виджеты для Easy HMI
Читайте также
Мы в соц сетях
Комментарии