Независимый FADE 2х диодов
- Войдите на сайт для отправки комментариев
Пнд, 25/03/2019 - 21:38
Задача упрощенно- 2 кнопки, 2 светодиода.
При нажатии на кнопку светодиод плавно разграется до максимума, и горит пока нажата кнопка, при отпускании так же плавно гаснет.
Вторая кнопка и светодиод управляется так же.
По отдельности каждая кнопка/диод работает корректно.
А вот при изменении яркости одним диодом второй не реагирует, пока не достигнет макимальных значений яркости (0 или 255). Если первый горит на максимум/выключен - второй отрабатывает как надо.
Пытаюсь добиться того, чтобы второй отрабатывал корретно и независимо.
Спасибо.
#include <Button.h> Button button1(3); // Connect your button between pin 2 and GND Button button2(4); // Connect your button between pin 3 and GND boolean butt_flag1 = 0; boolean butt_flag2 = 0; boolean butt1; boolean butt2; unsigned long last_press1; unsigned long last_press2; unsigned long f1; unsigned long f11; unsigned long f2; unsigned long f22; int led1 = 6; int led2 = 10; void setup() { button1.begin(); button2.begin(); Serial.begin(9600); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); } void loop() { if (button1.pressed()) { Serial.println("Button 1 pressed"); for (int i=0; i <= 255;){ if(millis() - f1 > 30){ f1 = millis(); analogWrite(led1, i); i=i+5; } } } if (button1.released()){ Serial.println("Button 1 released"); for (int i=255; i >=0;){ if(millis() - f11 > 10){ f11 = millis(); analogWrite(led1, i); i=i-5; } } } if (button2.pressed()){ Serial.println("Button 2 pressed"); for (int i=0; i <= 255;){ if(millis() - f2 > 30){ f2 = millis(); analogWrite(led2, i); i=i+5; } } last_press2 = millis(); } if (button2.released()) { Serial.println("Button 2 released"); for (int i=255; i >=0;){ if(millis() - f22 > 10){ f22 = millis(); analogWrite(led2, i); i=i-5; } } }}
Почему он должен реагировать?
корректно и независимо переписывать программу полностью, то есть отказ от циклов просто при нажатии кнопок переменные яркости увеличиваются до максимума при отжатых уменьшаются, переменных надо две )))
С божьими лупом и миллисом, повергнем супостатов.)))
С божьими лупом и миллисом, повергнем супостатов.)))
Неправославно это. Надо таймерами крутить да размахивать.
Неправославно это. Надо таймерами крутить да размахивать.
Вай, нэ умэю. Эл.нагрузку в корпус уберу, отлажу и за часики на ИН-1 возьмусь, там твои таймера меня уже в засаде ждут, баюс.))))
а я скоро выкладу проект AudioUIMeter на 1602. Там мне мои таймеры очень памогають.
Ты, за библиотеку? Не, это не спортивно, я их самих, цволочей, выдрессировать хочу. Так что жди, скоро обертки, от вискаса, выклянчивать начну.))))
а я скоро выкладу проект AudioUIMeter на 1602. Там мне мои таймеры очень памогають.
Что измеряешь?
я по аудио всё прикалываюсь. Конкретно этот метер пайдёт в Вега 50-У122
я по аудио всё прикалываюсь. Конкретно этот метер пайдёт в Вега 50-У122
Это я понял. Уровень звука на индикатор выводишь? Я как-то такое на ADS1115 делал, но с адресными светодиодами. Могу подкинуть - может интересное чего найдёшь.
точно!!! есть же ADS1115. Щас закажу. Хотелось бы сделать, канеш, логарифмический, он более правильный для индикатора, да у Ардуины АЦП не того полёта...
Спасибо. получилось вот так оптимизмровать - всё работает.
точно!!! есть же ADS1115. Щас закажу. Хотелось бы сделать, канеш, логарифмический, он более правильный для индикатора, да у Ардуины АЦП не того полёта...
Дык табличные преобразования наше всё.