سلام. دو عدد ماژول گیرنده مشابه همدیگه با فرکانس متفاوت 433 و 315 رو به میکروکنترلر وصل کردم اما وقتی همزمان پایه دیتای هر دو گیرنده به میکروکنترلر ( ESP8266 یا ESP32 ) وصل باشه دیتایی دریافت نمیشه از هر دوتای اونها. توجه کنید مشکلی از لحاظ جریان و ولتاژ وجود نداره و هنگامی که اتصال پایه دیتا یا VCC یا GND هر کدوم رو از برد جدا میکنم اون یکی دیگه کار میکنه. گیرنده ها rxb61 هستن و پایه های دیتاشون رو مطابق رفرنس های مربوطه که در این انجمن معرفی شد وصل کردم و حتی پایه های متعدد دیگه ای رو هم تست کردم . چطور میتونم مشکل رو برطرف کنم؟ علتش چیه؟ همچنین توی این کد زیر مشاهده کنید به وضوح شرط شده اگر فلان فرکانس رو دریافت کردی شمارش رو هم پرینت کن اما فرقی نمی کنه کدوم گیرنده رو جدا کنم توی ترمینال رندوم مینویسه 433 Mhz حتی اگر پایه مربوط به 315 وصل باشه یا بالعکس .
کدی که برای تست نوشتم این هست :
#include <RCSwitch.h>
RCSwitch rtx433 = RCSwitch();
RCSwitch rtx315 = RCSwitch();
void setup() {
Serial.begin(9600);
rtx433.enableReceive(4);
rtx315.enableReceive(5);
}
void loop() {
if (rtx433.available()) {
Serial.print("rtx433 - ");
printReceivedData(rtx433, 433);
rtx433.resetAvailable();
}
delay(50);
if (rtx315.available()) {
Serial.print("rtx315 - ");
printReceivedData(rtx315, 315);
rtx315.resetAvailable();
}
delay(50);
}
void printReceivedData(RCSwitch& receiver, int freq) {
int receivedValue = receiver.getReceivedValue();
if (receivedValue != 0) {
Serial.print("Received ");
Serial.print(receivedValue);
Serial.print(" / ");
Serial.print(receiver.getReceivedBitlength());
Serial.print(" bit ");
Serial.print("Protocol: ");
Serial.print(receiver.getReceivedProtocol());
Serial.println(" Freq: " + String(freq) + " MHz");
}
}