Ho un codice per un sensore a ultrasuoni che ho trovato da un sito. Ecco il codice:
#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);
}
Tuttavia, non capisco il lavoro della pulseIn()
funzione. Voglio dire, voglio sapere quando inizia il conteggio del tempo e quando termina. Ad esempio, in questo codice, l'ora inizia alle digitalWrite(trigPin, HIGH);
o inizia l'ora alla pulseIn()
funzione?
Se è il secondo, quando si ferma, allora in che modo il tempo ci dà la distanza di un ostacolo quando sto già ritardando 1000 microsecondi dopo aver inviato un ping in aria?
How can i do this code in assembly languaje
- che cosa ha a che fare con questa domanda?