Как сделать контроллер светофора на базе Arduino?

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



Светофор

В этом проекте мы собираемся сделать 4-полосную сигнальную систему с использованием микроконтроллера. Мы сожжем Код C на плате Arduino Uno, чтобы сообщить ему, как включать и выключать светодиоды, чтобы обеспечить идеальное время переключения в процессе сигнализации. Для тестирования будут использованы 4 комбинации из 4 светодиодов, которые будут размещены на макете.



Как сделать 4-сторонний сигнал движения с помощью Seeeduino v4.2?

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



Шаг 1: Сбор компонентов

Лучший способ начать любой проект - это составить список полных компонентов в начале и провести краткое изучение каждого компонента. Это помогает нам избежать неудобств в середине проекта. Полный список всех компонентов, используемых в этом проекте, приведен ниже.



  • Seeeduino V4.2
  • Перемычки
  • Светодиод (4 x зеленый, 4 x желтый, 4 x красный)
  • Адаптер 12 В переменного тока в постоянный

Шаг 2: Изучение компонентов

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

Seeeduino v4.2 - одна из лучших в мире плат, совместимых с Arduino, основанная на микроконтроллере Atmega 328 MCU. потому что она проста в использовании, более стабильна и выглядит лучше, чем многие другие платы. Он основан на загрузчике Arduino. он имеет ATMEGA16U2 в качестве преобразователя UART-USB, потому что он может использоваться как микросхема FTDI. он подключается к компьютеру с помощью кабеля Micro USB, который обычно называют кабелем Android. Разъем постоянного тока также может использоваться для питания платы. входная мощность должна быть от 7В до 15В.

Seeeduino



К Макетная плата это беспаечное устройство. Он используется для изготовления и тестирования временных прототипов электронных схем и конструкций. Большинство электронных компонентов просто подключаются к макетной плате, просто вставляя их контакты в макетную плату. В отверстия макета укладывается полоса металла и отверстия соединяются определенным образом. Соединения отверстий показаны на схеме ниже:

Макетная плата

Шаг 3: Принцип работы

Давайте рассмотрим краткое введение в принцип работы проекта 4-way Traffic Signal. Так как это 4-ходовой, нам понадобится двенадцать светодиодов и четыре комбинации из трех светодиодов. Код написан так, что если одна комбинация горит зеленым светом, все остальные комбинации светятся красным светом. Если сигнал меняется с зеленого на желтый или с красного на желтый, другая комбинация светодиодов также покажет транзакцию с красного на желтый или с желтого на красный соответственно.

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

Шаг 4: создание схемы

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

  1. Прежде всего, возьмите все светодиоды и подключите их к макетной плате в правильном порядке: красный, желтый и зеленый.
  2. Сделайте общее соединение заземления всех светодиодов. Лучше подключить резистор 220 Ом к плюсовой клемме светодиода.
  3. Теперь подключите соединительные провода соответствующим образом.
  4. Теперь подключите светодиоды к Arduino, как показано на схеме ниже. LED-1, LED-2 до LED-12 будут подключены к контактам 1, 2 и 12 на плате Arduino Uno.
  5. Загрузите код в Arduino Uno и включите его с помощью ноутбука или адаптера переменного тока в постоянный.
  6. Схема будет выглядеть, как показано на рисунке ниже:

    Принципиальная электрическая схема

Шаг 5: Начало работы с Arduino

Если вы раньше не знакомы с Arduino IDE, не волнуйтесь, потому что ниже вы можете увидеть четкие шаги записи кода на плату микроконтроллера с использованием Arduino IDE. Вы можете скачать последнюю версию Arduino IDE из Вот и выполните шаги, указанные ниже:

1). Когда плата Arduino подключена к вашему ПК, откройте «Панель управления» и нажмите «Оборудование и звук». Затем щелкните «Устройства и принтеры». Найдите имя порта, к которому подключена ваша плата Arduino. В моем случае это «COM14», но на вашем ПК он может быть другим.

Поиск порта

2). Теперь откройте IDE Arduino. В Tools установите для платы Arduino значение Arduino / Genuino UNO.

Доска настроек

3). В том же меню инструментов установите номер порта, который вы видели на панели управления.

Настройка порта

4). Загрузите прилагаемый ниже код и скопируйте его в свою среду IDE. Чтобы загрузить код, нажмите кнопку загрузки.

Загрузить

Вы можете скачать код по нажав здесь.

Шаг 6: Код

Код хорошо прокомментирован и не требует пояснений, но, тем не менее, некоторые части кода кратко объясняются ниже.

1. Вначале названы все контакты, которые позже будут подключены к Arduino.

int led1 = 1; // красный свет 1 int led2 = 2; // желтый свет 1 int led3 = 3; // зеленый свет 1 int led4 = 4; // красный свет 2 int led5 = 5; // желтый свет 2 int led6 = 6; // зеленый свет 2 int led7 = 7; // красный свет 3 int led8 = 8; // желтый свет 3 int led9 = 9; // зеленый свет 3 int led10 = 10; // красный свет 4 int led11 = 11; // желтый свет 4 int led12 = 12; // зеленый свет 4

2. установка void () - это функция, в которой мы объявляем все выводы платы Arduino, которые будут использоваться как ВХОД или ВЫХОД. Скорость передачи также устанавливается в этой функции. Baud Rate - это скорость передачи данных в битах в секунду, с которой плата микроконтроллера обменивается данными с внешними устройствами. Эта функция запускается только один раз при нажатии кнопки включения на плате микроконтроллера.

void setup () {Serial.begin (9600;) // Скорость передачи установлена ​​на 9600 pinMode (led1, OUTPUT); // Все выводы, подключенные к светодиодам, устанавливаются как OUTPUT pinMode (led2, OUTPUT); pinMode (led3, ВЫХОД); pinMode (led4, ВЫХОД); pinMode (led5, ВЫХОД); pinMode (led6, ВЫХОД); pinMode (led7, ВЫХОД); pinMode (led8, ВЫХОД); pinMode (led9, ВЫХОД); pinMode (led10, ВЫХОД); pinMode (led11, ВЫХОД); pinMode (led12, ВЫХОД); }

3. void loop - это функция, которая многократно выполняется в цикле. В этой функции мы закодируем всю процедуру, с помощью которой микроконтроллер будет управлять внешними светодиодами. Ниже приведен небольшой фрагмент кода. Здесь горит зеленый свет на первой стороне, а на всех остальных сторонах - красный свет. Эти огни будут оставаться в этом состоянии в течение 15 секунд. Через 15 секунд желтый свет с первой и второй стороны загорится, на двух других сторонах останется красный свет. После двухсекундной задержки на первой стороне загорится красный свет, а на второй стороне загорится зеленый свет. Это будет происходить до тех пор, пока на всех четырех сторонах не загорятся зеленые огни, и затем цикл повторится.

digitalWrite (led1, LOW); // Красный свет первой стороны не горит digitalWrite (led2, LOW); // желтый свет f первая сторона выключена digitalWrite (led3, HIGH); // Зеленый свет первой стороны горит digitalWrite (led4, HIGH); // Красный свет второй стороны горит digitalWrite (led5, LOW); // желтый свет второй стороны не горит digitalWrite (led6, LOW); // зеленый свет второй стороны не горит digitalWrite (led7, HIGH); // Красный свет третьей стороны горит digitalWrite (led8, LOW); // желтый свет третьей стороны не горит digitalWrite (led9, LOW); // зеленый свет третьей стороны не горит digitalWrite (led10, HIGH); // красный свет четвертой стороны горит digitalWrite (led11, LOW); // желтый свет четвертой стороны не горит digitalWrite (led12, LOW); // зеленый свет четвертой стороны - задержка выключения (15000); // из-за задержки в 15 секунд зеленый свет на первой стороне и красный свет на других трех сторонах будут оставаться включенными в течение 15 секунд digitalWrite (led1, LOW); // красный свет первой стороны не горит digitalWrite (led2, HIGH); // Желтый свет первой стороны горит digitalWrite (led3, LOW); // зеленый свет первой стороны не горит digitalWrite (led4, LOW); // красный свет второй стороны не горит digitalWrite (led5, HIGH); // Желтый свет второй стороны горит digitalWrite (led6, LOW); // зеленый свет второй стороны не горит digitalWrite (led7, HIGH); // Красный свет третьей стороны горит digitalWrite (led8, LOW); // желтый свет третьей стороны не горит digitalWrite (led9, LOW); // зеленый свет третьей стороны не горит digitalWrite (led10, HIGH); // красный свет четвертой стороны горит digitalWrite (led11, LOW); // желтый свет четвертой стороны не горит digitalWrite (led12, LOW); // зеленый свет четвертой стороны - задержка выключения (2000); // из-за задержки в 2 секунды желтый свет первой и второй стороны останется включенным

Итак, это была вся процедура создания четырехстороннего светофора. Теперь вы можете делать это для учебы или школьного проекта.