Это
второй урок посещенный светофору. В
уроке 7 «Светофор на Arduino своими руками. Пишем скетч используя функции» . Мы
подключали 3 светодиода делали работу
одной стороны
светофора. В данном уроке
мы сделаем работу светофора для машин
и для пешеходов. Правда это еще не
полноценный светофор, но на основе
данного урока его можно сделать без
проблем.
Для сокращения объема кода напишем 2 функции в среде разработки Arduino IDE . Одну для управления светофором для машин, а вторую для управления светофором для пешеходов.
Для урока нам понадобится:
Подключим светодиоды к плате ArduinoUNO . У нас получиться вот такая схема.
Принципиальная схема светофора на Arduino для машин и пешеходов.
Скетч в среде разработки Arduino IDE будит выглядит так.
int car_red = 2; // пин подключения 2
int car_yellow = 3; // пин подключения 3
int car_green = 4; // пин подключения 4
int people_red = 5; // пин подключения 5
int people_green = 6; // пин подключения 6
void setup() {
pinMode(car_red, OUTPUT);
pinMode(car_yellow, OUTPUT);
pinMode(car_green, OUTPUT);
pinMode(people_red, OUTPUT);
pinMode(people_green, OUTPUT);
}
void loop() {
digitalWrite(car_red, LOW);
digitalWrite(car_yellow, HIGH);
digitalWrite(car_green, LOW);
delay(2000);
digitalWrite(car_red, HIGH);
digitalWrite(car_yellow, LOW);
digitalWrite(car_green, LOW);
delay(1000);
digitalWrite(people_red, LOW);
digitalWrite(people_green, HIGH);
delay(5000);
for (int x=0; x<10; x++)
{
digitalWrite(people_red, LOW);
digitalWrite(people_green, HIGH);
delay(250);
digitalWrite(people_red, LOW);
digitalWrite(people_green, LOW);
delay(250);
}
digitalWrite(people_red, HIGH);
digitalWrite(people_green, LOW);
delay(500);
digitalWrite(car_red, LOW);
digitalWrite(car_yellow, HIGH);
digitalWrite(car_green, LOW);
delay(1000);
digitalWrite(car_red, LOW);
digitalWrite(car_yellow, LOW);
digitalWrite(car_green, HIGH);
delay(5000);
}
Напишем функции для управления светофорами в среде разработки Arduino IDE.
Первая управляет светофором для машин.
void Car (byte red, byte yellow, byte green) {
digitalWrite(car_red, red);
digitalWrite(car_yellow, yellow);
digitalWrite(car_green, green);
}
Вторая
управлять светофором для пешеходов.
void People (byte red, byte green) {
digitalWrite(people_red, red);
digitalWrite(people_green, green);
}
В итоге у нас получиться вот такой код. Как видно код стал намного короче и читабельнее.
int car_red = 2; // пин подключения 2
int car_yellow = 3; // пин подключения 3
int car_green = 4; // пин подключения 4
int people_red = 5; // пин подключения 5
int people_green = 6; // пин подключения 6
void setup() {
pinMode(car_red, OUTPUT);
pinMode(car_yellow, OUTPUT);
pinMode(car_green, OUTPUT);
pinMode(people_red, OUTPUT);
pinMode(people_green, OUTPUT);
}
void loop() {
Car (LOW, HIGH, LOW);
delay(2000);
Car (HIGH, LOW, LOW);
delay(1000);
People (LOW, HIGH);
delay(5000);
for (int x=0; x<10; x++) {
People (LOW, HIGH);
delay(250);
People (LOW, LOW);
delay(250);
}
People (HIGH, LOW);
delay(500);
Car (LOW, HIGH, LOW);
delay(1000);
Car (LOW, LOW, HIGH);
delay(5000);
}
void Car (byte red, byte yellow, byte green) {
digitalWrite(car_red, red);
digitalWrite(car_yellow, yellow);
digitalWrite(car_green, green);
}
void People (byte red, byte green) {
digitalWrite(people_red, red);
digitalWrite(people_green, green);
}
Понравилась статья? Поделитесь ею с друзьями:
Вернуться в раздел: Уроки Arduino: Светодиоды, Резисторы, Arduino Дата публикации 21 апреля , 2017
Читайте также
Браво!!!
Как сделать пешеходно дорожный светофор с кнопкой которая при нажатий будет отключать весь светофор и будет мигать жёлтый
Здравствуйте! Зелёный сигнал должен моргать три секунды перед переключением на желтый.Будет здорово, если вы исправите скетч или подскажите как это сделать. И ещё, можно ли подключить светодиоды покрупнее? Первый раз столкнулся с ARDUINO, а хотелось бы сделать детям светофор. Спасибо!
здравствуйте ! как сделать три светофора? Копирую код с вашего кода и не работает.
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.