Bonjour je suis en projet de Terminal STI2D
Dans mon projet je doit utilisée 2 capteur ultrason et ensuite de les faire communiquer avec un vibreur transformé en servomoteur. Le but est de crée un gant pour les personne aveugle et pour cela il faut que l'un des deux capteurs détecte l'obstacle et le transmettre, pas les deux en même temps.
Je ne sais si mon explication est claire. C'est juste que les capteurs doivent détecter mais seulement on fonction que si l'un dectecte et pas les deux.
Voici le début de mon programme je ne sais pas si cela est bon.
const int pingPin = 12; // Trigger Pin of Ultrasonic Sensor
const int pingPin2 = 10; // Trigger Pin of Ultrasonic Sensor
const int echoPin = 11; // Echo Pin of Ultrasonic Sensor
const int echoPin2 = 9; // Echo Pin of Ultrasonic Sensor
//une sortie analogique sur la broche 6
const int sortieAnalogique = 6;
long duration, duration2, inches, cm, cm1 ;
void setup()
{
Serial.begin(9600); // Starting Serial Terminal
pinMode(echoPin, INPUT);
pinMode(pingPin, OUTPUT);
pinMode(pingPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(sortieAnalogique, OUTPUT);
}
void loop()
{
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
duration = pulseIn(echoPin, HIGH);
inches = microsecondsToInches(duration);
digitalWrite(pingPin2, LOW);
delayMicroseconds(20);
digitalWrite(pingPin2, HIGH);
delayMicroseconds(100);
digitalWrite(pingPin2, LOW);
duration2 = pulseIn(echoPin2, HIGH);
cm = microsecondsToCentimeters(duration);
cm1 = microsecondsToCentimeters(duration2);
Serial.print("ultra ");
Serial.print(cm);
Serial.print(" ultra1 cm");
Serial.print(cm1);
delay(100);
//on met un rapport cyclique de 107/255 = 42 %
analogWrite(sortieAnalogique, 40);
}
long microsecondsToInches(long microseconds)
{
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}
Merci beaucoup de votre aide
mix_progrog_3.ino (1.37 KB)