J'ai le code d'un capteur à ultrasons que j'ai trouvé sur un site. Voici le code:
#define trigPin 12
#define echoPin 13
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
int duration, distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance >= 200 || distance <= 0){
Serial.println("Out of range");
}
else {
Serial.print(distance);
Serial.println(" cm");
}
delay(500);
}
Cependant, je ne comprends pas le travail de la pulseIn()
fonction. Je veux dire, je veux savoir quand le décompte du temps commence et quand il se termine. Par exemple, dans ce code, l'heure commence digitalWrite(trigPin, HIGH);
-t-elle à l'heure ou commence-t-elle à la pulseIn()
fonction?
Si c'est le deuxième, quand il s'arrête, alors comment le temps nous donne-t-il la distance d'un obstacle alors que je retarde déjà 1000 microsecondes après avoir envoyé un ping dans l'air?
How can i do this code in assembly languaje
- qu'est-ce que cela a à voir avec cette question?