Одновременная работа нескольких приемо-передатчиков 433-315
- Войдите на сайт для отправки комментариев
Втр, 05/07/2016 - 16:43
Всем доброго времени суток!
Помогите пожалуста разбораться с проблемой.
Собрал подобную схему:
Залил скетч:
#include <RCSwitch.h>
int ledPin = 13; // светодиод присоединён к порту 6
int res_snif = 10;
RCSwitch mySwitch = RCSwitch();
RCSwitch mySwitch2 = RCSwitch();
void setup(){
Serial.begin(9600);
mySwitch.enableReceive(0); // приемник1
mySwitch.enableTransmit(4); // передатчик1
mySwitch.setRepeatTransmit(res_snif);
mySwitch2.enableReceive(1); // приемник2
mySwitch2.enableTransmit(5); // передатчик2
mySwitch2.setRepeatTransmit(res_snif);
pinMode(ledPin, OUTPUT); // режим порта устанавливаем на вывод (запись)
}
void process_rf_value(RCSwitch rfswitch, int rf) {
//РАСШИФРОВУЕМ ПОЛУЧЕННЫЙ КОД
Serial.println("ACCEPT CODE");
digitalWrite(ledPin, HIGH); // Если видим код - включаем светодиод
char str[120];
unsigned long value;
value = rfswitch.getReceivedValue();
if (value == 0) {
Serial.println("Error code");
} else {
Serial.println("--- Congratulation !!! ---");
Serial.print("Accept code - ");
Serial.println(rfswitch.getReceivedValue() );
Serial.print("Bit length - ");
Serial.println(rfswitch.getReceivedBitlength() );
Serial.print("Delay - ");
Serial.println(rfswitch.getReceivedDelay() );
Serial.print("Rawdata - ");
//Serial.println(rfswitch.getReceivedRawdata() );
Serial.println("");
Serial.print("Protocol: ");
Serial.println(rfswitch.getReceivedProtocol() );
}
rfswitch.send(value, rfswitch.getReceivedBitlength());
rfswitch.resetAvailable();
digitalWrite(ledPin, LOW); // выключаем светодиод
}
void loop() {
//digitalWrite(ledPin, LOW); // выключаем светодиод
if (mySwitch.available()) {
process_rf_value(mySwitch, 315);
}
if (mySwitch2.available()) {
process_rf_value(mySwitch2, 434);
}
}
Но в таком варианте работает только один приемник на третьем пине. Т.е. любой (433/315) меняю их местами - на этом пине работает, на другом отказывается.
Подскажите пожалуйста в чем могут быть грабли?