Tenho código para um sensor ultrassônico que encontrei em um site. Aqui está o código:
#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);
}
No entanto, eu não entendo o trabalho da pulseIn()
função. Quero dizer, quero saber quando a contagem de tempo começa e quando termina. Por exemplo, nesse código, a hora começa às digitalWrite(trigPin, HIGH);
ou começa com a pulseIn()
função?
Se for o segundo, quando ele pára, como o tempo nos dá a distância de um obstáculo quando já estou atrasando 1000 microssegundos depois de enviar um ping no ar?
How can i do this code in assembly languaje
- o que isso tem a ver com esta questão?