Bonjour à tous,
Je souhaite "finir" un projet ou deux capteurs ultrasons transmettent des données par bluetooth en agissant sur l'un ou l'autre servo. Un capteur ultrasons agissant que sur un servo et l'autre capteur sur le second servo. Les HC-SR04 étant ensemble, séparés des servos qui eux aussi sont ensemble. Je souhaite que quand un capteur détecte une source proche, il envoi une information pour que le servo bouge de 30° uniquement et revienne à sa position immédiatement et recommence si besoin.
J'ai déjà appairés les bluetooth et ca fonctionnait dans un précédent tuto. Si j'utilise un seul capteur ultrasons et un seul servo, ca fonctionnait aussi.
Je pense que le soucis vient de la communication car sur le moniteur série, le master envoi des données mais le slave reçoit rien...
Je me doute que c'est une bêtise immense pour vous. J'ai découvert arduino il y a un mois donc...
Merci infiniment de vos conseils, de mon côté, je creuse toujours ![]()
Amitiés
//Code for master module//
#define trigPin1 3
#define echoPin1 2
#define trigPin2 5
#define echoPin2 4
unsigned int sound = 340;
void setup() {
Serial.begin(38400); // Default baud rate of the Bluetooth module
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
}
void loop() {
long duration1, distance1;
digitalWrite(trigPin1, LOW);
delayMicroseconds(20);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(20);
digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin1, HIGH);
distance1 = (duration1/2) / 29.1;
if (distance1 < 10) {
Serial.write('9');
delay(20);
}
long duration2, distance2;
digitalWrite(trigPin2, LOW);
delayMicroseconds(20);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(20);
digitalWrite(trigPin2, LOW);
duration2 = pulseIn(echoPin2, HIGH);
distance2 = (duration2/2) / 29.1;
if (distance2 < 10) {
Serial.write('5');
delay(20);
}
}
//Code for Slave module//
#include <Servo.h>
Servo servo1;
Servo servo2;
unsigned int dataFromMaster = 0;
void setup() {
Serial.begin(38400);
servo1.attach(9);
servo2.attach(10);
}
void loop() {
if(Serial.available() > 0){
dataFromMaster = Serial.read();
Serial.println(dataFromMaster);
}
if (dataFromMaster == '9') {
servo1.write(45); // SERVO ON
} {
servo1.write(0);
delay(20);
}
if (dataFromMaster == '5') {
servo2.write(45); // SERVO ON
} {
servo2.write(0);
delay(20);
}
}