Logo

Cлучайные товары

Драйвера L9110S
Набор светодиодов 5mm, 3мм 5 цветов (LED)

Посмотреть товар в Магазине »

Мы в соц сетях


Подпишись на канал
Мы на facebook

Урок 8 — Светофор на Arduino для машин и пешеходов

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

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

Для сокращения объема кода напишем 2 функции в среде разработки Arduino IDE . Одну для управления светофором для машин, а вторую для управления светофором для пешеходов.

Для урока нам понадобится:

Подключим светодиоды к плате ArduinoUNO . У нас получиться вот такая схема.

одключим светодиоды к плате Arduino UNO . У нас получиться вот такая схема.

Принципиальная схема светофора на Arduino для машин и пешеходов.

Принципиальная схема светофора на 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

Яндекс.Метрика

Portal-PK (Портал ПК) © 2015 - 2017 MiniYiiCMS Заказать сайт: f-studio.biz
Обратная связь
Вопрос-Ответ