Перейти к содержимому

Как сделать светофор в тинкеркад

  • автор:

Светофор

Зелёный, статичный, мигающий. Статичный около 4-5 секунд. Мигает около 3 секунд с интервалами примерно по 0,5 секунд.

Жёлтый, пульсирующий. Пульсирует с интервалами по 0,5 секунд

  1. Смотрим на работу светофора.
  2. Скетч в tinkercad.
  3. Код в tinkercad.
  4. Сборка ардуино не в tinkercad.(3 диода, 5 проводов, 3 резистора по 220 ом, плата ARDUINO UNO, макетная доска)
  5. Код в программе Arduino (на деле время горения диодов сокращено что бы было удобнее и быстрее делать отчёт.
  6. Видео

Компоненты из данной работы могут быть использованы для гирлянды, «морзянки»

Светофор

Дневной режим:
Красный длится 3 секунды
Жёлтый длится 1 секунду
Зелёный длится 5 секунд потом начинает мигать и мигает по 3 раза, с учётом интервалы между миганием 0.5 секунды.

Ночной режим:
Включается после того как дневной режим проходит 3 раза.
Потом начинает мигать жёлтый с интервалом в 0.7 секунды.

Компоненты:3 LED(Красный, Жёлтый, Зелёный), 5 проводов, 3 резистора по 220 Ом, плата Arduino Uno, макетная доска)

Применение: Светофор, Гирлянда, Азбука Морзе, Шкала температуры, Вывеска в магазине.

void setup() < pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); >void loop() < int i; for (int i=0; i<4;i++) < digitalWrite(13, HIGH); delay(3000); // Wait for 1000 millisecond(s) digitalWrite(13, LOW); digitalWrite(12, HIGH); delay(1000); digitalWrite(12, LOW); digitalWrite(11, HIGH); delay(5000); digitalWrite(11, LOW); delay(500); digitalWrite(11, HIGH); delay(500); digitalWrite(11, LOW); delay(500); digitalWrite(11, HIGH); delay(500); digitalWrite(11, LOW); delay(500); digitalWrite(11, HIGH); delay(500); digitalWrite(11, LOW); delay(500); digitalWrite(11, HIGH); delay(500); digitalWrite(11, LOW); delay(500); digitalWrite(11, HIGH); delay(500); digitalWrite(11, LOW); digitalWrite(12, HIGH); delay(1000); digitalWrite(12, LOW); if (i==1)break; >digitalWrite(12,HIGH); delay(800); digitalWrite(12,LOW); delay(800); >

Урок 5. Светофор на Arduino UNO. Arduino моделирование в Tinkercad.

Сегодня в Arduino уроке рассмотрим излюбленный пример школ робототехники, светофор на Arduino. Реализация светофора на Arduino популярна, благодаря наглядному примеру работы распространённого устройства, который мы встречаем ежедневно. Помимо этого, при реализации алгоритма работы светофора можно использовать как минимальные знания в программировании Ардуино, так и более сложные алгоритмы. Что позволяет реализовать светофор с любыми знаниями в программировании.

Цель урока: Светофор на Arduino UNO.

Познакомиться подробнее с алгоритмом работы устройства, которое мы видим практически ежедневно. А также разобрать несколько вариантов написания программы реализации светофора на Arduino.

Что такое светофор?

Светофор — оптическое устройство, подающее световые сигналы, регулирующие движение автомобильного, железнодорожного, водного и другого транспорта, а также пешеходов на пешеходных переходах.

Наиболее распространены светофоры с сигналами (обычно круглыми) трёх цветов: красного, жёлтого и зелёного. В некоторых странах, в том числе и в России, вместо жёлтого используется оранжевый цвет. Сигналы могут быть расположены как вертикально (при этом красный сигнал всегда располагается сверху, а зелёный — снизу), так и горизонтально (при этом красный сигнал всегда располагается слева, а зелёный — справа). При отсутствии других, специальных светофоров, они регулируют движение всех видов транспортных средств и пешеходов.

Что такое светофор?

В некоторых городах России, Украины и других стран устанавливаются светофоры с увеличенным красным сигналом (300/200/200 mm). Такие светофоры распространены в Санкт-Петербурге, Киеве, Риме и других городах.

В некоторых городах России, Украины и других стран устанавливаются светофоры с увеличенным красным сигналом (300/200/200 mm).

Повсеместно распространены основные сигналы светофоров:

  • красный сигнал светофора запрещает проезд за стоп-линию (при её отсутствии за светофор),
  • жёлтый обязывает сбросить скорость и быть готовым к тому, что светофор через 0,5 — 1 сек переключится на красный,
  • зелёный — разрешает движение со скоростью, не превышающей максимальный уровень для данной автотрассы.

Алгоритм смены сигналов светофора на Arduino.

На просторах интернета нашел иллюстрацию отображающую алгоритм работы светофора.

Алгоритм смены сигналов светофора на Arduino.

Как видим, светофор должен работать вот по такому алгоритму:

  1. Светит только красный цвет светофора.
  2. Не выключая красный сигнал светофора, включаем желтый.
  3. Выключаем красный и желтый, включаем зеленый.
  4. Выключаем зеленый сигнал светофора, включаем желтый.

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

На сайте Портал ПК делал данный урок года 2 назад. После чего мне написали достаточно много комментариев по поводу того, что нужно добавить мигание зеленым сигналом светофора. В данном уроке исправим недоработку и сделаем мигание зеленым сигналом светофора.

Как подключить светодиоды к Arduino UNO?

Схема подключения не очень сложная и для подключения нам понадобится макетная плата, 3 светодиода и 3 резистора наминало 220 Ом. А также Arduino UNO и соединительные провода.

Все соединяем по схеме.

Как подключить светодиоды к Arduino UNO?

Как собрать схему в Tinkercad смотрите в видео, которое располагается вверху статьи.

Скетч светофора на Arduino UNO.

Реализовать программу светофора на Arduino можно различными способами. Сперва рассмотрим работу светофора по алгоритму, который изображён на картинке выше.

Для этого создадим переменные и инициализируем пины как выход.

int led_red = 2; int led_yellow = 3; int led_green = 4; boolean ledOn = HIGH; void setup()

Если вы не понимаете, что написано в данных строчках, посмотрите предыдущие Arduino уроки.

В основном цикле loop() можно все реализовать, используя функции digitalWrite() и delay(). В итоге должен получиться вот такой код.

int led_red = 2; int led_yellow = 3; int led_green = 4; void setup() < pinMode(led_red, OUTPUT); pinMode(led_yellow, OUTPUT); pinMode(led_green, OUTPUT); >void loop()

Скетч достаточно простой и без мигания зеленым цветом светофора.

А чтобы заставить мигать зеленый светодиод воспользуемся функцией for(), которую рассматривали в предыдущем уроке: Урок 4. Arduino – цикл for.

Цикл позволяющий мигать зеленым светодиодом будет таким:

for (int i = 0; i

При желании данный код можно немного модернизировать. Так как мы изучили булевые переменные в: Урок 3. Два светодиода. Создадим переменную

boolean ledOn = HIGH; //И изменим цикл. for (int i = 0; i

Цикл выполняется 6 раз, так как при каждом выполнении цикла мы меняем булевую переменную с HIGH на LOW и наоборот.

Цикл выполняется 6 раз, так как при каждом выполнении цикла мы меняем булевую переменную с HIGH на LOW и наоборот. И выполняем либо включение светодиода, либо включение. По этой причине количество раз выполнения цикла увеличивается в 2 раза.

Конечный вариант кода светофора на Arduino будет вот таким:

int led_red = 2; int led_yellow = 3; int led_green = 4; boolean ledOn = HIGH; void setup() < pinMode(led_red, OUTPUT); pinMode(led_yellow, OUTPUT); pinMode(led_green, OUTPUT); >void loop() < digitalWrite(led_red, HIGH); delay(2000); // Wait for 10000 millisecond(s) digitalWrite(led_yellow, HIGH); delay(700); digitalWrite(led_red, LOW); digitalWrite(led_yellow, LOW); digitalWrite(led_green, HIGH); delay(2000); // Wait for 1000 millisecond(s) for (int i = 0; idigitalWrite(led_green, LOW); digitalWrite(led_yellow, HIGH); delay(700); digitalWrite(led_yellow, LOW); >
Загружаем код в Arduino UNO.

Arduino UNO уроки для начинающих можно использовать не только в симуляторе, но и программировать реальную Arduino UNO. Для этого полученный код можно скопировать в Arduino IDE и загрузить в отладочную плату. Подробнее о загрузке кода смотрите в предыдущем уроке.

Мы рады объявить о нашем присутствии на Boosty! Arduino-Tex приглашает всех наших друзей и последователей поддержать нас на этой замечательной платформе. Здесь вы найдете эксклюзивный контент, уникальные проекты и возможность стать частью нашей творческой команды. Присоединяйтесь к нам на Boosty и вместе мы сделаем мир Arduino еще удивительнее!

Понравился Урок 5. Светофор на Arduino UNO. Arduino моделирование в Tinkercad? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Урок 6. Arduino светофор для машин и пешеходов.

В планах писать еще один урок про светофоры на Arduino не было. Но в группе Facebook написали, что данный светофор реализован не совсем правильно, нужно как минимум сделать секцию для пешеходов. В дальнейшем есть планы снять урок про Arduino светофор для машин и пешеходов со звуковым уведомлением и кнопкой. Но на данном этапе это большой скачок вперед и с теми знаниями, которые вы получили из предыдущих уроков, сделать подобный светофор не получится. Поэтому сделал простой вариант Arduino светофора для машин и пешеходов.

Цель урока: Arduino светофор для машин и пешеходов.

Закрепить полученные знания в предыдущих уроках, и повторить работу с циклом for() и булевыми переменными.

Светофор для пешеходов.

Такие светофоры регулируют движение пешеходов через пешеходный переход. Как правило, он имеет два вида сигнала: разрешающий и запрещающий. Обычно для этой цели используют соответственно зелёный и красный свет. Сами сигналы имеют различную форму. Чаще всего используют сигналы в виде силуэта человека: красный — стоящего, зелёный — идущего. В 1970-е годы в городах СССР использовались пешеходные светофоры иного вида — прямоугольной формы; с красным сигналом в виде надписи «стойте» и зелёным в виде надписи «идите» (такие светофоры показывают крупным планом в фильме Следствие ведут ЗнаТоКи. Несчастный случай).

Современные светофоры для пешеходов дополнительно оборудуют также звуковыми сигналами, предназначенными для слепых пешеходов, а иногда и табло обратного отсчёта времени (впервые появились во Франции в 1998 г.).

Алгоритм работы светофора для машин и пешеходов.

Алгоритм работы одного светофора найти в интернет можно. Но вот как взаимодействуют 2 светофора: для машин и для пешеходов, данной информации нет. В группе на facebook мне скинули вот такую иллюстрацию.

Алгоритм работы светофора для машин и пешеходов.

Но тут нет информации о мигании зеленого цвета и прочих этапах взаимодействия автомобильного и пешеходного светофоров. Скорее всего, данную информацию можно найти в технической документации по светофорам, но у нас урок по программированию Arduino и заморачиваться поисками тонкостей работы светофора я не стал. Прошу отнестись с пониманием, если что-то работает не так как нужно. А если у вас есть информация, которая позволит дополнить или подправить урок, пишите в комментариях.

Алгоритм работы трех секционного светофора для машин останется без изменений. К режиму работы добавим работу двухсекционного светофора для пешеходов.

Схема подключения Arduino светофора для машин и пешеходов.

Схему подключения возьмём из Урока 5. Светофор на Arduino UNO. Arduino моделирование в Tinkercad. И добавим 2 светодиода, которые будут имитировать работу светофора для пешеходов.

В итоге схема подключения Arduino светофора для машин и пешеходов примет вид.

Схема подключения Arduino светофора для машин и пешеходов.

Скетч Arduino светофора для машин и пешеходов.

За основу возьмём код из 5 урока. Если вы не смотрели данный урок, рекомендую ознакомиться с ним прежде, чем приступать к данному уроку.

Добавим необходимую информацию, чтобы инициализировать пины подключения светофора для пешеходов. Светодиоды подключены к 5 и 6 пинам, соответственно нужно добавить.

int people_red = 5; int people_green = 6; void setup()

К алгоритму работы трехсекционного светофора добавим работу светофора для пешеходов. Для этого алгоритм менять не придётся. Достаточно прописать в нужных местах включение и выключение сигналов светофора для пешеходов.

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; idigitalWrite(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

В итоге у нас получится вот такой код.

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; idigitalWrite(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 digitalWrite(led_yellow, HIGH); digitalWrite(led_green, LOW); delay(700); // digitalWrite(led_yellow, LOW); digitalWrite(people_red, LOW); >

Как видим, код Arduino светофора для машин и пешеходов получился не многим сложнее управления одним светофором для машин.

Загружаем код Arduino светофора для машин и пешеходов в Arduino UNO.

Arduino UNO уроки для начинающих можно использовать не только в симуляторе, но и программировать реальную Arduino UNO. Для этого полученный код можно скопировать в Arduino IDE и загрузить в отладочную плату. Подробнее о загрузке кода смотрите в предыдущем уроке.

Мы рады объявить о нашем присутствии на Boosty! Arduino-Tex приглашает всех наших друзей и последователей поддержать нас на этой замечательной платформе. Здесь вы найдете эксклюзивный контент, уникальные проекты и возможность стать частью нашей творческой команды. Присоединяйтесь к нам на Boosty и вместе мы сделаем мир Arduino еще удивительнее!

Понравился Урок 5. Светофор на Arduino UNO. Arduino моделирование в Tinkercad? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

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

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