Как да направя контролер на светофара, базиран на Arduino?

Светофарите са сигнални устройства, които се използват за контрол на потока от движение по кръстовищата на път, пешеходни прелези и други места. Това е комбинация от три цвята светлина, които са червен, жълт и зелен. Червената светлина казва на хората да спрат, жълтата казва да се приготвят или да стартират двигателя, ако е изключен, а зелената светлина показва, че сте на път да продължите.



Светофар

В този проект ще направим 4-пътна система за сигнализация на трафика с помощта на микроконтролер. Ние ще изгорим a C код на платката Arduino Uno, за да му каже как да включва и изключва светодиодите, така че да може да се постигне перфектното време за превключване в процеса на сигнализиране. 4 цели комбинации от 4 светодиода ще бъдат използвани и поставени на борда с цел тестване.



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

Сигналите за движение са най-важното нещо, което се монтира на пътищата, за да се поддържа плавен и стабилен поток на движението и намалява до минимум вероятността от инциденти. Можем да направим този проект на малък макет. Нека да съберем малко информация за този проект и да започнем работа.



Стъпка 1: Събиране на компонентите

Най-добрият подход за стартиране на всеки проект е да се направи списък с пълни компоненти в началото и да се премине през кратко проучване на всеки компонент. Това ни помага да избегнем неудобствата в средата на проекта. Пълен списък на всички компоненти, използвани в този проект, е даден по-долу.



  • Seeeduino V4.2
  • Джъмперни проводници
  • LED (4xзелен, 4xжълт, 4xчерен)
  • 12V AC към DC адаптер

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

Сега, тъй като знаем резюмето на нашия проект и също така разполагаме с пълен списък на всички компоненти, нека направим крачка напред и да преминем през кратко проучване на компонентите, които ще използваме.

Seeeduino v4.2  е една от най-добрите Arduino съвместими платки в света, базирана на микроконтролера Atmega 328 MCU. защото е лесен за използване, по-стабилен и изглежда по-добре от много други дъски. Базиран е на Arduino bootloader. той има ATMEGA16U2 като преобразувател UART към USB, тъй като той може да се използва като FTDI чип. той е свързан към компютъра чрез микро USB кабел, който обикновено се нарича андроид кабел. За захранване на платката може да се използва и жак за постоянен ток. входната мощност трябва да бъде от 7V до 15V.

Seeeduino



ДА СЕ Макет е устройство за запояване. Използва се за изработване и тестване на временни прототипи на електронни схеми и конструкции. Повечето от електронните компоненти са просто свързани към макет, само чрез поставяне на щифтовете им в макет. Лента от метал се полага в отворите на макетната плоча и дупките се свързват по специфичен начин. Връзките на отворите са показани на диаграмата по-долу:

Макет

Стъпка 3: Работен принцип

Нека да разгледаме кратко въведение в принципа на работа на проекта за 4-пътна сигнализация. Тъй като това е 4-път, ще ни трябват дванадесет светодиода и четири комбинации от три светодиода. Кодът е написан така, че ако една комбинация показва зелена светлина, всички останали комбинации ще показват червена светлина. Ако даден сигнал се променя от зелен в жълт или червен в жълт, друга комбинация от светодиодите също ще покаже транзакция от червено на жълто или жълто на червено.

Всичко това ще бъде направено със закъснение във времето между преминаването на сигналите. Например, светодиодът ще остане зелен в продължение на почти петнадесет секунди, а светодиодът ще остане жълт в продължение на почти две секунди. Продължителността на червения светодиод зависи от продължителността на зеления светодиод. Това означава, че ако светодиодът е зелен за петнадесет секунди, всички останали червени светодиоди ще останат включени за петнадесет секунди.

Стъпка 4: Осъществяване на веригата

Сега, тъй като знаем основната работа на компонентите, нека продължим напред и да започнем да сглобяваме компонентите, за да направим веригата. Преминете през следните стъпки, за да свържете правилно всички компоненти в макета.

  1. На първо място, вземете всички светодиоди и ги свържете в таблицата в правилния ред като червен, жълт и зелен.
  2. Направете обща връзка на основите на всички светодиоди. По-добре е да свържете 220-омов резистор към положителния извод на светодиода.
  3. Сега свържете съответно свързващите проводници.
  4. Сега свържете светодиодите към Arduino, както е показано на схемата по-долу. LED-1, LED-2 до LED-12 ще бъдат свързани към pin1, pin2 до pin12 на платката Arduino Uno.
  5. Качете кода в Arduino Uno и го захранвайте с помощта на лаптоп или адаптер за променлив ток към постоянен ток.
  6. Веригата ще изглежда като изображението, показано по-долу:

    Електрическа схема

Стъпка 5: Първи стъпки с Arduino

Ако не сте запознати с Arduino IDE преди, не се притеснявайте, защото по-долу можете да видите ясни стъпки за записване на код на платката на микроконтролера, използвайки Arduino IDE. Можете да изтеглите най-новата версия на Arduino IDE от тук и следвайте стъпките, споменати по-долу:

1). Когато платката Arduino е свързана с вашия компютър, отворете „Контролен панел“ и кликнете върху „Хардуер и звук“. След това кликнете върху „Устройства и принтери“. Намерете името на порта, към който е свързана вашата платка Arduino. В моя случай това е “COM14”, но може да е различно на вашия компютър.

Намиране на порт

2). Сега отворете IDE на Arduino. От Инструменти задайте дъската 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. настройка за празнота () е функция, при която декларираме всички щифтове на платката Arduino да се използват като INPUT или OUTPUT. Скорост на предаване също е зададена в тази функция. Скорост на предаване е скоростта на комуникация в битове в секунда, чрез която платката на микроконтролера комуникира с външните устройства. Тази функция работи само веднъж, когато е натиснат бутонът за активиране на платката на микроконтролера.

void setup () {Serial.begin (9600;) // Скоростта на предаване е зададена на 9600 pinMode (led1, OUTPUT); // Всички щифтове, свързани към светодиодите, са зададени като OUTPUT pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (led6, OUTPUT); pinMode (led7, OUTPUT); pinMode (led8, OUTPUT); pinMode (led9, OUTPUT); pinMode (led10, OUTPUT); pinMode (led11, OUTPUT); pinMode (led12, OUTPUT); }

3. void loop е функция, която се изпълнява многократно в цикъл. В тази функция ще кодираме цялата процедура, чрез която микроконтролерът ще управлява външните светодиоди. Малка част от кода е дадена по-долу. Тук свети зелената светлина на първата страна, а всички останали страни имат червена светлина. Тези светлини ще останат в това състояние за 15 секунди. След 15 секунди жълтата светлина на първата и втората страна ще се включи от другите две страни, а червената им светлина ще остане включена След закъснение от две секунди, първата страна ще има включена червена светлина, а втората страна ще има зелена светлина. Това ще се случи, докато на четирите страни не се включат зелените светлини на свой ред и след това цикълът ще се повтори.

digitalWrite (led1, LOW); // Червената светлина на първата страна не свети digitalWrite (led2, LOW); // жълтата светлина f от първата страна е изключена digitalWrite (led3, HIGH); // Зелената светлина от първата страна е на digitalWrite (led4, HIGH); // Червената светлина от страна на seconf е на 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 секунди, жълтата светлина на първата и втората страна ще остане включена

И така, това беше цялата процедура за създаване на 4-посочен сигнал за движение. Сега можете да се насладите да го направите за вашето обучение или училищен проект.