Arduino uno ir + пду
- Войдите на сайт для отправки комментариев
Втр, 10/11/2015 - 21:08
Всем привет, такое дело: Есть дуня, ик приемник, пульт ду, лед лента одноцветная, транзистор нпн.
задача: с одной кнопки пду осуществить несколько режимов работы лед ленты. а именно: вкл, резкое мигание, плавное мигание, выключение.
на данный момент реализовано вкл по наростающей и выкл так же.
подскажите знающие люди примерный код реализации.
зарание спасибо.
А какой код уже есть?
скетч на работе, завтра отпишу.
на одну кнопку пульта смог повесить вкл и выкл, через проверку флага (к примеру int on = 0) при нажатии кнопки на пду проверяется этот флаг если = 0 то вкл, если = 1 то выкл. а как на кнопку повесить 3-4 режима (при чем привкл режима мигания лед ленты - лента должна мигать постоянно до нажатия этой же кнопки пду).
полагаю что можно реализовать так же через флаги. но как это в коде пока додуматься не могу.
void loop() { if (irrecv.decode(&results)) { int res = (results.value); Serial.println(results.value); if(results.value==16755030)// { if (lamp1_on == 0) { lamp1_on = 1; digitalWrite(lamp1, HIGH); } else if (lamp1_on == 1) { lamp1_on = 0; digitalWrite(lamp1, LOW); } } else if(results.value==16767270)// { if (lamp2_on == 0) { lamp2_on = 1; digitalWrite(lamp2, HIGH); } else if (lamp2_on == 1) { lamp2_on = 0; digitalWrite(lamp2, LOW); } } else if(results.value==16750950)// код вкл. выкл. лед ленты { if (led_on == 0) { brightness = 0; while (brightness < 255) { brightness = (brightness + 1) % 256; analogWrite(led, brightness); delay(10); } led_on = 1; Serial.println(led_on); } else if (led_on == 1) { brightness = 255; while (brightness != 0) { brightness = (brightness - 1) % 256; analogWrite(led, brightness); delay(10); } led_on = 0; Serial.println(led_on); } } irrecv.resume(); delay(100); } }http://arduino.ru/Reference/SwitchCase
lamp1_on, lamp2_on можно использовать как параметры digitalWrite в 07-30. Заметно код упростит.
35-53 тоже можно уменьшить, если led_on приспособить под вычисление уровня яркости.
Чтобы режим переключать, запоминай предыдущее состояние. Например по кнопке менять значение переменной, а в лупе по конкретному значению делать конкретное действие.