Использование в место обычных кнопок коды кнопок пульта ду.

kalbas0000
Offline
Зарегистрирован: 02.09.2016

Собственно вопрос ! как в этот код вставить принятый код пульта ду в место обычной кнопки ? 

#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");
   }
}

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Принятый от ПДУ код вставить в код программы невозможно в принципе.

Хотя и то и другое называют кодом (кстати, с точки зрения русского я зыка не совсем правильно: правильно - не "код программы", а "текст программы"), это совершенно различные несовместимые между собой сущности.

kalbas0000
Offline
Зарегистрирован: 02.09.2016

Почему нельзя вот пожалуйсто !

#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();
}
}

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

1. И что куда Вы вставили?

2. Если Вам нужно именно это, а не то, что Вы написали в исходном сообщении темы, то в чем вопрос?

kalbas0000
Offline
Зарегистрирован: 02.09.2016

Да нет ! это мне нужно для создания ик лед диммера просто не могу разобраться с коротким и длинным нажатием кнопок пульта. а диммер должен управлятся двумя кнопкоми пульта ду. алгоритм такой ! коротко нажали вкл. выкл. длинное удержание яркость + или - .