У меня странная проблема: o Я делаю связь между двумя xbee, когда я нажимаю кнопку, светодиод, подключенный к контакту 13, загорается, а затем координатор xbee отправляет информацию для переключения на светодиод, подключенный к выходу D3 маршрутизатора xbee. проблема заключается в том, что я нажимаю на кнопку несколько раз, когда переключатель включения иногда не работает. я не знаю, проблема в коде или это просто проблема подключениясветодиод не включается
int led = 13;
const int bouton = 2;
boolean state;
boolean laststate;
void setup() {
// put your setup code here, to run once:
pinMode(led, OUTPUT);
Serial.begin(9600);
pinMode(bouton, INPUT);
digitalWrite(led, LOW);
}
void loop() {
// put your main code here, to run repeatedly:
state = digitalRead(bouton);
digitalWrite(led, state);
if (state == HIGH) {
Serial.println("on");
setRemoteState(5);
delay(5000);
} else {
Serial.println("off");
setRemoteState(4);
delay(5000);
}
}
void setRemoteState(char value){
Serial.write(0x7E); // start byte
Serial.write((byte)0x0);
Serial.write(0x10);
Serial.write(0x17);
Serial.write((byte)0x0);
// id of recipient or use 0xFFFF for broadcast
Serial.write((byte)00);
Serial.write((byte)00);
Serial.write((byte)00);
Serial.write((byte)00);
Serial.write((byte)00);
Serial.write((byte)00);
Serial.write(0xFF);
Serial.write(0xFF);
// 16 bit of reciepent
Serial.write(0xFF);
Serial.write(0xFE);
Serial.write(0x02);
Serial.write('D');
Serial.write('2');
Serial.write(value);
long sum = 0x17 + 0xFF + 0xFF + 0xFF + 0xFE + 0x02 + 'D' + '2' + value;
Serial.write(0xFF - (sum & 0xFF));
Serial.println(sum,HEX);
}
вы должны попытаться вызвать setRemoteState только на изменение состояния, поэтому он не будет посылать его постоянно. – assaf
haw я могу это сделать! я не очень хорошо тебя понял – sawi
это все еще всегда проблема синхронизации между светодиодами – sawi