code
#include <IRremote.h>
int RECV_PIN_T =8;
int RECV_PIN_L=9;
int RECV_PIN_B=10;
int RECV_PIN_R=11;
int IRledPin = 13;
IRrecv irrecv1(RECV_PIN_T);
IRrecv irrecv2(RECV_PIN_L);
IRrecv irrecv3(RECV_PIN_B);
IRrecv irrecv4(RECV_PIN_R);
//IRsend irsend;
decode_results results1;
decode_results results2;
decode_results results3;
decode_results results4;
void setup()
{
pinMode(RECV_PIN_L, OUTPUT);
pinMode(RECV_PIN_T, OUTPUT);
pinMode(RECV_PIN_B, OUTPUT);
pinMode(RECV_PIN_R,OUTPUT);
Serial.begin(115200);
irrecv1.enableIRIn(); //Enabled the ir sensor
irrecv2.enableIRIn();
irrecv3.enableIRIn();
irrecv4.enableIRIn();
Serial.println("Getting IR data");
}
void loop() {
if (irrecv1.decode(&results1)) {
int value1=analogRead(RECV_PIN_T);
unsigned int value = results1.value;
if(value1>0&&value<10)
{
Serial.print("TOP ");
Serial.println(value);
delay(800);
}
irrecv1.resume();
}
//delay(5000);
if (irrecv2.decode(&results2)) {
int value2=analogRead(RECV_PIN_L);
unsigned int value = results2.value;
if(value2>0/*&&value<10*/)
{
Serial.print("LEFT ");
Serial.println(value);
}
delay(800);
irrecv2.resume();
}
//delay(4000);
/* if (irrecv3.decode(&results)) {
int value3=analogRead(RECV_PIN_B);
unsigned int value = results.value;
//if(value3>0&&value<60)
Serial.print("Bottom");
Serial.println(value);
delay(200);
irrecv3.resume(); }*/
}
[enter image description here][1]
[1]: https://i.stack.imgur.com/07hMC.png
Я использую Arduino Uno, подключенный к 4 ИК-датчику HS0038 на 4 углах Arduino. Каждый ИК-датчик сопровождается ИК-светодиодом, который будет передавать указанный код в 4 направлениях, код будет уникальным для каждого модуль (см. рисунок). модуль Arduino может получать коды от соседних модулей с помощью ИК-датчика и сообщать о своем присутствии соседнему модулю с помощью ИК-светодиода. но все 4 датчика в модуле принимают код, даже если они далеко друг от друга. Я не могу понять, что я написал неправильно в коде и почему датчики собирают данные, даже когда я пытаюсь изолировать этот конкретный датчик.
Я получаю данные на всех датчиках случайно, хотя Я полностью заблокировал датчик, и я не могу передавать и получать ИК-коды от одного Arduino. всякий раз, когда я пытаюсь это сделать, Arduino отправляет только данные, не полученные от другого модуля. Я использовал ИК-датчик HS0038 вместе с ИК-светодиодом. Также сообщите мне о любом решении для определения расстояния между двумя модулями с помощью ИК-порта.