Включение/выключение света с регулировкой яркости (Помогите добавить каналы)
- Войдите на сайт для отправки комментариев
Ср, 07/10/2015 - 13:13
Всем доброго времени суток. На просторах инета нашёл скетч включения/выключения света с регулировкй яркости, но он управлялся с пульта. Немного подправил для управления с кнопки. Работает. Теперь нужно сделать несколько каналов, что-бы каждая кнопка, управляла своим светом. Управлять буду светодиодным освещением. Сам пытался, но не получается. Я только начал изучать ардуино. Кое что выходит, но не всё...
Сам код
int ledPin = 10; // Выход ШИМ на диммер int powerPin = 9; // Вход с кнопки uint8_t pwmLevel = 255; boolean pwmStat = false; boolean pwmInc = true; uint32_t ms, ms1 = 0; boolean press_flag = false; uint16_t press_cnt = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(powerPin, INPUT); } void loop() { ms = millis(); // Получаем сигнал от кнопки if (digitalRead(powerPin) == HIGH) { press_flag = true; } if ( ( ms - ms1 ) > 200 || ms < ms1 ) { // Если нажата клавиша if ( press_flag ) { press_cnt++; // Если лампа включена if ( pwmStat ) { // Инвертируем флаг уменьшения/увеличения if ( press_cnt == 5 ) { pwmInc = !pwmInc; }//pres_cnt = 0 // Изменям значение диммера else if ( press_cnt > 5 ) { if ( pwmInc ) { if ( pwmLevel < 239 )pwmLevel += 16; else pwmLevel = 255; }//pwmInc else { if ( pwmLevel > 50 )pwmLevel -= 16; else pwmLevel = 34; }// else pwmInc } Serial.print("Mode="); Serial.print(pwmInc); Serial.print(" level="); Serial.print(pwmLevel); Serial.print(" count="); Serial.println(press_cnt); analogWrite(ledPin, pwmLevel); } } else { // Короткое (менее 1 сек) нажатие клавиши if ( press_cnt > 0 && press_cnt < 5 ) { // Включение/отключение лампы pwmStat = !pwmStat; if ( pwmStat ) { digitalWrite(powerPin, HIGH); analogWrite(ledPin, pwmLevel); } else { analogWrite(ledPin, 0); digitalWrite(powerPin, LOW); } Serial.print("Press="); Serial.print(pwmStat); Serial.print(" level="); Serial.print(pwmLevel); Serial.print(" count="); Serial.println(press_cnt); } press_cnt = 0; } ms1 = ms; press_flag = false; } }
Ещё хочется что-бы одна дополнительная кнопка гасила всё что включено. И что-бы свет включался и выключался плавно.
Но основное что-бы было хотя-бы три канала.
В разделе "Предлагаю работу" нужно начинать с суммы денег.
Вопрос решён. Тему можно закрывать.