Разъясните пожалуйста.
- Войдите на сайт для отправки комментариев
Чт, 27/09/2018 - 12:58
Только начал изучать Ардуино.
Собрал и запустил светофор из этого видео (https://www.youtube.com/watch?v=U5tNMQl5PJ4)
Все работает.
Вот скетч:
//объявляем переменные с номерами пинов int r = 13; int g = 12; int b = 11; void setup() //процедура setup { pinMode(r, OUTPUT); pinMode(g, OUTPUT); pinMode(b, OUTPUT); } void loop() //процедура loop { digitalWrite(r, HIGH); //включаем зеленый delay(5000); // пауза 5 секунд digitalWrite(r, LOW); //выключаем зеленый delay(500); // пауза 0.5 секунд digitalWrite(r, HIGH); //включаем зеленый delay(500); // пауза 0.5 секунда digitalWrite(r, LOW); //выключаем зеленый delay(500); // пауза 0.5 секунда digitalWrite(r, HIGH); //включаем зеленый delay(500); // пауза 0.5секунда digitalWrite(r, LOW); //выключаем зеленый delay(500); // пауза 0.5 секу digitalWrite(g, HIGH); //включаем желтый delay(3000); //пауза 3 секунд digitalWrite(g, LOW); //выключаем желтый digitalWrite(b, HIGH); // включаем красный delay(5000); // пауза 5 секунд digitalWrite(g, HIGH); //включаем желтый delay(2000); //пауза 2 секунд digitalWrite(g, LOW); //выключаем желтый digitalWrite(b, LOW); //выключаем красный }
Разъясните как работает этот кусок:
digitalWrite(b, HIGH); // включаем красный delay(5000); // пауза 5 секунд digitalWrite(g, HIGH); //включаем желтый delay(2000); //пауза 2 секунд digitalWrite(g, LOW); //выключаем желтый digitalWrite(b, LOW); //выключаем красный
почему желтый свето диод загарается в то время как горит красный? почему не одновременно с ним или после того как красный отработает delay(2000) ?
Спасибо
А почему он должен загораться одновременно?
А почему он должен загораться одновременно?
Согласен, насчет одновременно погарячился.
Туплю-
Я вчера поздно вечером собрал этот проэктик и появился этот вопрос на сонную голову (а время горения светиков не додумался засечь)
Пересмотрел видео (моя макетка дома) посчитал время, получается контролер выполняет все команды по очереди. Зажигает красный на 5 сек, через 5сек зажигает желтый на 2сек.
Тогда такой вопрос, почему красный через 5сек не гаснет, ведь digitalWrite(b, HIGH) уже не должен работать?
Тогда такой вопрос, почему красный через 5сек не гаснет, ведь digitalWrite(b, HIGH) уже не должен работать?
странный вопрос. Чтобы красный выключился, его надо выключить. то есть подать на него LOW. А теперь посмотрите в свой код - где вы подаете LOW на красный? - после желтого...
ЗЫ какой странный выбор переменных для цветов у вас. Почему зеленый - это "r"? :) А желтый вдруг "g" ? :) Вы сами-то не путаетесь? - логично же "g" = green, "r" = red, "y" = yellow
Почему зеленый - это "r"? :) А желтый вдруг "g" ? :) Вы сами-то не путаетесь? - логично же "g" = green, "r" = red, "y" = yellow
Ну, как почему
красный - bлин, стоим
жёлтый - gотовимся
зелёный - rванули
Всё логично.
Ну, как почему
красный - bлин, стоим
жёлтый - gотовимся
зелёный - rванули
Всё логично.
Ха-ха. Я сам улыбнулся когда переписывал этот код с ютуба.
То есть HIGH будет действовать до LOW, а delay это не время свечения светика, а провежуток времени до выполнения следующей команды?
Так точно.
Понял.
Спасибо.
Ну вот, делеи освоили, пора к бабке Миллис подкатываться.))))