aide programmation

Bonjour ,
Une connaissance m'a donné ce programme mais j'aimerai comprendre , pourriez vous me dire comment fonctionne le programme svp ?

voici le prog :

const int echoPin = 2; // Echo Pin of Ultrasonic Sensor
const int pingPin = 3; // Trigger Pin of Ultrasonic Sensorvoid setup()

void setup()
{

Serial.begin(9600); // Starting Serial Communication
pinMode(pingPin, OUTPUT); // initialising pin 3 as output
pinMode(echoPin, INPUT); // initialising pin 2 as input

}

void loop()

{

long duration, inches, cm;

digitalWrite(pingPin, LOW);
delayMicroseconds(2);

digitalWrite(pingPin, HIGH);
delayMicroseconds(10);

digitalWrite(pingPin, LOW);

duration = pulseIn(echoPin, HIGH); // using pulsin function to determine total time
inches = microsecondsToInches(duration); // calling method
cm = microsecondsToCentimeters(duration); // calling methodSerial.print(inches);

Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();

delay(100);

}

long microsecondsToInches(long microseconds) // method to covert microsec to inches
{
return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds) // method to covert microsec to centimeters
{

return microseconds / 29 / 2;

}

Cordialement

Bon, on va commencer par ce que vous ne voyez pas:
setup sert à faire démarrer le programme (dans votre cas , donne la vitesse de transmission vers le PC, active en sortie la patte d'émission, et en entrée la patte de reception)

loop est dédié aux tâches répétitives, et sera réitéré tant que le jour sera jour, que le soleil brillera... et que vous n'arrêterez pas le courant..
Dans ce cas, il envoye une brève impulsion vers l'emetteur, et regarde le temps mis à recevoir en microsecondes. la distance en est déduite, et envoyée vers le terminal série
PS:
votre code est le suivant

const int echoPin = 2; // Echo Pin of Ultrasonic Sensor
const int pingPin = 3; // Trigger Pin of Ultrasonic Sensorvoid setup()



void setup() {
 
Serial.begin(9600); // Starting Serial Communication
pinMode(pingPin, OUTPUT); // initialising pin 3 as output
pinMode(echoPin, INPUT); // initialising pin 2 as input

}

void loop() {
 
long duration, inches, cm;

digitalWrite(pingPin, LOW);
delayMicroseconds(2);

digitalWrite(pingPin, HIGH);
delayMicroseconds(10);

digitalWrite(pingPin, LOW);

duration = pulseIn(echoPin, HIGH); // using pulsin function to determine total time
inches = microsecondsToInches(duration); // calling method
cm = microsecondsToCentimeters(duration); // calling methodSerial.print(inches);

Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();

delay(100);

}

long microsecondsToInches(long microseconds) // method to covert microsec to inches
{
return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds) // method to covert microsec to centimeters 
{
return microseconds / 29 / 2;
}

Visiblement ce code utilise un HC-SR04 pour mesurer une distance :