Помогите с программированием.
- Войдите на сайт для отправки комментариев
Ср, 15/08/2018 - 17:56
Подскажите пожалуйста новичку с кодом:
Как с помощью mills заставить светодиоды загораться по очереди через определенный интервал времени?
Например: светодиод led0 400мс горит, затем тухнет и через 1100мс загорается следующий (скажем led1) и т.д.
(чтоб они не моргали пока до них не дойдет очередь)
Написал через поначалу через delay, но там циклы переключаются не сразу. Через Mills немогу сообразить как ...)
const int led12 = 12; int led0 = 0; int led1 = 1; int led3 = 3; int led4 = 4; int led13 = 13; int buttonState = 0; void setup() { pinMode(led12, INPUT); pinMode(led0, OUTPUT); pinMode(led1, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led13, OUTPUT); } //=========================================================================== void loop() { buttonState = digitalRead(led12); if(buttonState == LOW){ digitalWrite (led13, HIGH); delay (random (1000, 1500)); digitalWrite (led13, LOW); delay (random (1000, 1500)); } else{ digitalWrite (led0, HIGH); delay (300); digitalWrite (led0, LOW); delay (1200); digitalWrite (led1, HIGH); delay (300); digitalWrite (led1, LOW); delay (1200); digitalWrite (led1, HIGH); delay (300); digitalWrite (led1, LOW); delay (1200); digitalWrite (led3, HIGH); delay (300); digitalWrite (led3, LOW); delay (1200); digitalWrite (led0, HIGH); delay (300); digitalWrite (led0, LOW); delay (1200); digitalWrite (led1, HIGH); delay (300); digitalWrite (led1, LOW); delay (1200); digitalWrite (led1, HIGH); delay (300); digitalWrite (led1, LOW); delay (1200); digitalWrite (led4, HIGH); ddelay (300); digitalWrite (led4, LOW); delay (1200); } }
насчет мерцания, схему подключения можно ?
Написал через поначалу через delay, но там циклы переключаются не сразу. Через Mills немогу сообразить как ...)
А чем Вас delay не устраивает?
Как с помощью mills заставить светодиоды загораться по очереди через определенный интервал времени?
}
Общий алгоритм:
при заходе в else 28 строка считываем myTime=millis(), далее делаем цикл while() с условием состояния кнопки.
далее
и т.д.
Не идеально, но для понимания сути подойдет.
я тут заметил ,что у вас led0 = 0 и led1 = 1 ,если я прявильно помню , то это как раз выводы UART через который заливаеться прошивка в Ардуино, это может обьяснить мерцания .
я тут заметил ,что у вас led0 = 0 и led1 = 1 ,если я прявильно помню , то это как раз выводы UART через который заливаеться прошивка в Ардуино, это может обьяснить мерцания .
да нет, вряд ли - в самом скетче Serial не используется, значит можно занимать пины 0 и 1 без проблем