В планах писать еще один урок про светофоры на 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 | 1313 | Скачать |
Здравствуйте, пожалуйста помогите с решением, как сделать автомобильный светофор и пешеходный светофор, который управляется с кнопки ?
спасибо всё работает
Пока не понял
Уроки Arduino для начинающих
24 августа , 2020
Комментариев:3
Файлов для скачивания:1
Фото:5
Понравилась статья? Нажми
Читайте также
Мы в соц сетях
Комментарии