|
#define ledPin 8
|
|
#define slaveSwitchPin 7
|
|
int dataFromMaster = 0;
|
|
|
|
void setup() {
|
|
pinMode(ledPin, OUTPUT);
|
|
digitalWrite(ledPin, LOW);
|
|
pinMode(slaveSwitchPin, INPUT);
|
|
digitalWrite(slaveSwitchPin,LOW);
|
|
Serial.begin(38400); // Taux de transmission par défaut du module Bluetooth
|
|
}
|
|
|
|
void loop() {
|
|
// Vérifie si des données arrivent du maître
|
|
if (Serial.available() > 0) {
|
|
dataFromMaster = Serial.read(); // Lit les données du maître
|
|
}
|
|
|
|
// Contrôle de la LED sur l'esclave en fonction des données reçues
|
|
if (dataFromMaster == '1') {
|
|
digitalWrite(ledPin, HIGH); // Allume la LED sur l'esclave
|
|
} else if (dataFromMaster == '0') {
|
|
digitalWrite(ledPin, LOW); // Éteint la LED sur l'esclave
|
|
}
|
|
|
|
// Lecture de l'état du bouton de l'esclave
|
|
int slaveSwitchValue = digitalRead(slaveSwitchPin);
|
|
|
|
// Envoie de l'état du bouton de l'esclave au maître
|
|
if (slaveSwitchValue == HIGH) {
|
|
Serial.write('1'); // Envoie '1' pour allumer la LED sur le maître aussi
|
|
digitalWrite(ledPin, HIGH); // Allume la LED sur l'esclave
|
|
} else if (dataFromMaster != '1') { // Si le bouton de l'esclave est relâché et que le maître n'a pas demandé l'allumage
|
|
Serial.write('0'); // Envoie '0' pour éteindre la LED sur le maître
|
|
digitalWrite(ledPin, LOW); // Éteint la LED sur l'esclave
|
|
}
|
|
|
|
delay(10); // Petit délai pour éviter les rebonds
|
|
}
|