3 семи сегментных индикатора без сдвигового регистра.
- Войдите на сайт для отправки комментариев
Доброе время суток.
Подскажите можно ли заставить работать индикаторы по следующему алгоритму:
1. последовательно по часовой стрелке загораются 6 сегментов 1 индикатора, тем самым образуя цифру 0.
2. первый индикатор остается вкл.
Последовательно по часовой стрелке загораются 6 сегментов 2 индикатора, тем самым образуя цифру 0.
3. первый и второй индикаторы остаются вкл.
Последовательно по часовой стрелке загораются 6 сегментов 3 индикатора, тем самым образуя цифру 0.
4. все три индикатора светятся.
Последовательно по часовой стрелке гаснут 6 сегментов 1 индикатора. Второй и третий индикаторы светятся.
5. Последовательно по часовой стрелке гаснут 6 сегментов 2 индикатора. Третий индикатор светится.
6. Последовательно по часовой стрелке гаснут 6 сегментов 3 индикатора. Переход на пункт первый.
Пауза между зажиганием сегментов 100 ms, пауза между зажиганием индикаторов 50 ms.
Вот схема подключения:
Вот примерный код:
int ledPin; int ledPanel; void setup() { pinMode(ledPin, OUTPUT); pinMode(ledPanel, OUTPUT); Serial.begin(9600); } void loop() { for (ledPanel=8; ledPanel<10; ledPanel++) { digitalWrite(ledPanel, HIGH); cikleOn(); Serial.print("LedPanelON: "); Serial.println(ledPanel); delay(100); } for (ledPin=8; ledPin<10; ledPin++) { digitalWrite(ledPanel, LOW); cikleOff(); Serial.print("LedPanelOFF: "); Serial.println(ledPanel); delay(100); } } void cikleOn() { for (ledPin=2; ledPin<8; ledPin++) { digitalWrite(ledPin, LOW); Serial.print("LedPinON: "); Serial.println(ledPin); delay(100); } } void cikleOff() { for (ledPin=2; ledPin<8; ledPin++) { digitalWrite(ledPin, HIGH); Serial.print("LedPinOFF: "); Serial.println(ledPin); delay(100); } }
вам нужно делать динамическую индикацию, т.к. индикаторы включены параллельно, и в коде избавляться от delay...
что значит динамическую? это когда часто часто моргает? По поводу delay согласен.
с delay не получится то что хотите... примеры есть типа мигаем светодиодом без delay
да динамическая это когда часто моргает
Хорошо сначало уберу делэй.
delay вроде убрал, но что то мне поведение кода не нравится, а как исправить незнаю. Народ подскажите в какую сторону думать.
код:
вы не избавились от delay
вам надо разобратся с этим примером....
воткните в дуньку два диода и помигайте ими поочередно без delay
а лучше воткнуть диоды между двумя выходами через резистор (как у вас)
Как не избавился? Все delay закоментированы. Или я что то не так понимаю?
вам надо чтоб в такой-то промежуток времени (
if
(currentMillis - previousMillis > interval)
) какието выходы были в hi а другие в lowЯ пробовал оборачивать код в оператор if с. millis, но у меня не получилось. при компиляции ошибка выскакивала.
Не выходит что то каменный цветок. Попробовал убрать delay, взял скетч моргания светодиодом, вставил в него свой код, но что то не работает код, вернее работает но не так как нужно: цикл крутится но загорания и последовательного погасания сегментов нет.
Народ подскажите плиз куда рыть, вот код:
Судя по сериал монитору почемуто не отрабатывается как положено цикл for в функциях cikleOn и cikleOff с положенным интервалом.