Использование в место обычных кнопок коды кнопок пульта ду.
- Войдите на сайт для отправки комментариев
Вс, 25/09/2016 - 10:06
Собственно вопрос ! как в этот код вставить принятый код пульта ду в место обычной кнопки ?
#define PIN_BUTTON 4 Работаю с библиотекой Rc5 для ардуино код команды 7
bool button_state = false;
bool button_long_state = false;
uint32_t ms_button = 0;
void setup()
{
Serial.begin(115200);
Serial.println("Test button ...");
pinMode(PIN_BUTTON, INPUT_PULLUP);
}
void loop(){
uint32_t ms = millis();
bool pin_state = digitalRead(PIN_BUTTON);
// Фиксируем нажатие кнопки
if( pin_state == LOW && !button_state && ( ms - ms_button ) > 50 ){
button_state = true;
button_long_state = false;
ms_button = ms;
}
// Фиксируем длинное нажатие кнопки
if( pin_state == LOW && !button_long_state && ( ms - ms_button ) > 2000 ){
button_long_state = true;
Serial.println("Long press key");
}
// Фиксируем отпускание кнопки
if( pin_state == HIGH && button_state && ( ms - ms_button ) > 50 ){
button_state = false;
ms_button = ms;
if( !button_long_state )Serial.println("Press key");
}
}
Принятый от ПДУ код вставить в код программы невозможно в принципе.
Хотя и то и другое называют кодом (кстати, с точки зрения русского я зыка не совсем правильно: правильно - не "код программы", а "текст программы"), это совершенно различные несовместимые между собой сущности.
Почему нельзя вот пожалуйсто !
#include <IRremote.h> int RECV_PIN = 7; IRrecv irrecv(RECV_PIN); decode_results results; int i; void setup() { irrecv.enableIRIn(); // Start the receiver pinMode(11, OUTPUT); } void loop() { if (irrecv.decode(&results)) { if(results.value==0x1 || results.value==0x801){// кнопка вкл. i=255; } if(results.value==0x4 || results.value==0x804){//кнопка выкл. i=0; } if(results.value==0x2 || results.value==0x802){//яркость + if(i < 255){ i+=5; } } if(results.value==0x3 || results.value==0x803){//яркость - if(i > 0){ i-=5; } } analogWrite(11, i); irrecv.resume(); } }1. И что куда Вы вставили?
2. Если Вам нужно именно это, а не то, что Вы написали в исходном сообщении темы, то в чем вопрос?
Да нет ! это мне нужно для создания ик лед диммера просто не могу разобраться с коротким и длинным нажатием кнопок пульта. а диммер должен управлятся двумя кнопкоми пульта ду. алгоритм такой ! коротко нажали вкл. выкл. длинное удержание яркость + или - .