Идея светофора

Тема в разделе "Arduino & Shields", создана пользователем АлександрПрограммир, 7 янв 2017.

?

Понравилась моя тема??????

Голосование закрыто 23 янв 2017.
  1. нет.....................

    9 голосов
    90,0%
  2. ДА!!!!!!!!!!!!

    1 голосов
    10,0%
  3. Вообще ненормальная!

    0 голосов
    0,0%
  1. alp69

    alp69 Форумчанин

    Собственно светодиоду для кончины и не нужно огромного тока.
     
  2. issaom

    issaom Гуру

    Вы скетч автора видели? в какое именно место данного кода можно вставить оператор if чтобы можно было обработать событие нажатие кнопки?
    З,Ы кстати именно поэтому был вопрос был к автору ;-)
     
  3. Aliotr

    Aliotr Нерд

    вот тоже написал светофор, прошу сильно не пинать. Восьмой вход кнопки притянут резистором 10K к шине GND
    // светофор многофункциональный с кнопкой
    //(при нажатии и удержании моргает желтым)

    const int buttonPin = 8; // номер входа, подключенный к кнопке
    int buttonState = 0; // переменная для хранения состояния кнопки
    void setup() {
    // Инициализируем цифровой выход
    pinMode(13, OUTPUT); //красный
    pinMode(12, OUTPUT); //желтый
    pinMode(11, OUTPUT); //зеленый
    // инициализируем цифровой вход (сигнал кнопки)
    pinMode(buttonPin, INPUT);
    }

    void loop() {
    buttonState = digitalRead(buttonPin); //считываем кнопку
    if (buttonState == HIGH) {// нажата HIGH:
    digitalWrite(12, HIGH);// включаем Желтый
    delay(1000);// ждем секунду
    digitalWrite(12, LOW);//выключаем Желтый
    delay(1000);// ждем секунду
    }
    else {
    digitalWrite(13, HIGH);} // зажигаем красный
    buttonState = digitalRead(buttonPin); //считываем кнопку
    if (buttonState == HIGH) {// нажата HIGH:
    digitalWrite(12, HIGH);// включаем Желтый
    delay(1000);// ждем секунду
    digitalWrite(12, LOW);//выключаем Желтый
    delay(1000);// ждем секунду
    }
    else {
    delay(5000);// ждем
    digitalWrite(13, LOW); // выключаем красный
    }
    buttonState = digitalRead(buttonPin); //считываем кнопку
    if (buttonState == HIGH) {// нажата HIGH:
    digitalWrite(12, HIGH);// включаем Желтый
    delay(1000);// ждем секунду
    digitalWrite(12, LOW);//выключаем Желтый
    delay(1000);// ждем секунду
    }
    else { digitalWrite(11, HIGH); // зажигаем зеленый
    delay(6000); // ждем секунду
    digitalWrite(11, LOW); // выключаем зеленый
    delay(200); // ждем
    digitalWrite(11, HIGH); // зажигаем зеленый
    delay(300); // ждем
    digitalWrite(11, LOW); // выключаем зеленый
    delay(200); // ждем
    digitalWrite(11, HIGH); // зажигаем зеленый
    delay(300); // ждем
    digitalWrite(11, LOW); // выключаем зеленый
    delay(200); // ждем
    digitalWrite(11, HIGH); // зажигаем зеленый
    delay(300); // ждем
    digitalWrite(11, LOW); // выключаем зеленый
    }
    buttonState = digitalRead(buttonPin); //считываем кнопку
    if (buttonState == HIGH) {// нажата HIGH:
    digitalWrite(12, HIGH);// включаем Желтый
    delay(1000);// ждем секунду
    digitalWrite(12, LOW);//выключаем Желтый
    delay(1000);// ждем секунду
    }
    else {
    digitalWrite(12, HIGH); // зажигаем желтый
    delay(3000); // ждем секунду
    digitalWrite(12, LOW); // выключаем желтый

    }}
     
    Последнее редактирование: 1 фев 2017
    АлександрПрограммир нравится это.
  4. ostrov

    ostrov Гуру

    Кнопки и delay по секунде - три несовместимые понятия.
     
    АлександрПрограммир нравится это.
  5. Aliotr

    Aliotr Нерд

    Согласен, поленился, в старом скетче временные отрезки были составлены из коротких и между ними можно было делать опрос кнопки, у меня это первый полуосознанный :)скетч
     
    АлександрПрограммир нравится это.