저는 Android 모바일을 통해 집 TV를 제어하려고합니다. 리모컨에서 RF 수신기를 통해 IR NEC 코드를 가져 왔습니다. 그 후 Arduino와 WiFi 모듈 및 IR 송신기를 인터페이스했습니다. 이를 통해 WiFi를 통해 내 TV를 제어 할 수 있습니다. 하지만, Arduino 보드를 리셋 할 때마다 전원 켜기, 채널 증가 및 감소, 볼륨 증가/감소 및 전원 꺼짐과 같은 모든 기능이 자동으로 발생합니다. 그 후에, 나는 안드로이드 모바일을 통해 그것을 제어 할 수 있으며 모든 것이 의도대로 작동 할 것이다. 하지만 Arduino 보드를 다시 설정하면이 작업이 다시 반복됩니다. 무엇이 이것을 일으킬 수 있습니까?모든 기능이 Arduino 재설정시 실행됩니다.
나는 여기에 코드를 부착 해요 :
#include<IRremote.h>
IRsend ir;
char serialA;
void setup()
{
pinMode(3, OUTPUT);
Serial.begin(115200); //baud rate - make sure it matches that of the module you got:
Serial.println("AT");
delay(1000);
Serial.println("AT+CIPMUX=1\r\n");
delay(1000);
Serial.println("AT+CIPSERVER=1,80\r\n");
delay(1000);
}
void loop()
{
if (Serial.available()>0)
{
serialA = Serial.read();
IRREMOTE();
}
}
void IRREMOTE()
{
switch (serialA)
{
case 'A': //Power
ir.sendNEC(0x2FD48B7,32);
delay(500);
break;
case 'B': // AV/TV
ir.sendNEC(0x2FD28D7,32);
delay(500);
break;
case 'C': // Mute
ir.sendNEC(0x2FD08F7,32);
delay(500);
break;
case 'D': // CH+
ir.sendNEC(0x2FDD827,32);
delay(500);
break;
case 'E': // CH-
ir.sendNEC(0x2FDF807,32);
delay(500);
break;
case 'F': // Vol+
ir.sendNEC(0x2FD58A7,32);
delay(500);
break;
case 'G': // Vol-
ir.sendNEC(0x2FD7887,32);
delay(500);
break;
case 'H':
// Menu
ir.sendNEC(0x2FD30CF,32);
delay(500);
break;
case 'I':
// Alt
ir.sendNEC(0x2FD708F,32);
delay(500);
break;
case 'J':
// Scan
ir.sendNEC(0x2FDDA25,32);
delay(500);
break;
}
}
및
#include<IRremote.h>
IRsend ir;
char serialA;
void setup()
{
pinMode(3, OUTPUT);
Serial.begin(115200); //baud rate - make sure it matches that of the module you got:
Serial.println("AT");
delay(1000);
Serial.println("AT+CIPMUX=1\r\n");
delay(1000);
Serial.println("AT+CIPSERVER=1,80\r\n");
delay(1000);
}
void loop()
{
if (Serial.available()>0)
{
serialA = Serial.read();
IRREMOTE();
}
}
void IRREMOTE()
{
if(serialA == '$') //Power
{
ir.sendNEC(0x2FD48B7,32);
}
else if(serialA == 'b') // AV/TV
{
ir.sendNEC(0x2FD28D7,32);
}
else if(serialA == 'c') // Mute
{
ir.sendNEC(0x2FD08F7,32);
}
else if(serialA == 'd') // CH+
{
ir.sendNEC(0x2FDD827,32);
}
else if(serialA == 'e') // CH-
{
ir.sendNEC(0x2FDF807,32);
}
else if(serialA == 'f') // Vol+
{
ir.sendNEC(0x2FD58A7,32);
}
else if(serialA == 'g') // Vol-
{
ir.sendNEC(0x2FD7887,32);
}
else if(serialA == 'h') // Menu
{
ir.sendNEC(0x2FD30CF,32);
}
else if(serialA == 'i') // Alt
{
ir.sendNEC(0x2FD708F,32);
}
else if(serialA == 'j') // Scan
{
ir.sendNEC(0x2FDDA25,32);
}
}
안녕하세요 친구, 입력 버퍼를 지우려고했습니다. 하지만 여전히 같은 문제에 직면하고 있습니다 –