вопрос по ИК прием-передача

bod.petr
Offline
Зарегистрирован: 12.01.2017

Народ, всем привет. подскажите пожалуйста. Задача-с помощью ик приемника и передатчика, считать код кнопки с пульта и передать ее с помощью ардуинки. Первая часть не вопрос, загвоздка в том, что код кнопки считывается как "20DFC03F"- например, а отправить его надо как "0x20DFC03F" . Короче, как приделать к отправке эту 0x ? спасибо)

P.S. это код который у меня получился но надо приделать в последней строке 0x.

#include <IRremote.h> 
int b1 = 4; 
int RECV_PIN = 11; 
IRsend irsend; 
IRrecv irrecv(RECV_PIN); 

decode_results results; 

void setup() 
{ 
Serial.begin(9600); 


irrecv.enableIRIn(); // Start the receiver 

} 

void loop() { 
if (irrecv.decode(&results)) { 
Serial.println(results.value, HEX); 
irrecv.resume(); // Receive the next value 
} 
delay(100); 
if (digitalRead(b1) == HIGH) { 
delay(50); 
irsend.sendNEC(results.value, HEX, 32); 
} 
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Есть очень серьёзное позрение, что отправлять с 0x не надо. 0х - чисто декоративноая добавка для правильного восприятия человеком при печати. А отправлять, наверняка, надо двоичный код. Уточните задачу. пожалуйста. Что именно надо-то?

И кстати, добавлять что-то в Ваш код нет смысла пока Вы не доьъётесь. чтобы он хотя бы компилировался. Например, у функции. что Вы вызываете в строке 26, два параметра. а Вы её пихаете три.

Ну и других глупостей там хватает. Например, Вы пытаетесь отправлять что-то независимо от того, пришло что-то или нет.

bod.petr
Offline
Зарегистрирован: 12.01.2017

ну прямо скажем, я далеко не гуру) что касаемо 0x, если сначала, я считываю код, потом в ручную в скетч забиваю его, то без 0x не  работает, а с ним да.

что касаемо зачем, хочется небольшую хитрость для лазертага сделать, зачем не спрашивайте) суть в том, что надо считать сигнал, запомнить и при надобности воспроизвести

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Значит передавать 0х никуда не нужно - это только для человека. Передавайте в точности то, что получили и не парьтесь. Только глупости в коде исправьте, о которых я писал.

bod.petr
Offline
Зарегистрирован: 12.01.2017
я пробывал передать вот так, но почему то не работает( пробывал на тв. что то он отпарвляет(через монитор видно) но не функционирует)
irsend.sendNEC(results.value, HEX);
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Не знаю как Вы пробовали, но во-первых у sendNEC два параметра, а не три, а во вторых, в Ващем коде отправка идёт БЕЗ проверки получения (получили - не получили - пофиг, отправляем). Разбирайтесь и делайте по уму.

bod.petr
Offline
Зарегистрирован: 12.01.2017

буду.спасибо