サイトで見つけた超音波センサーのコードがあります。これがコードです:
#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);
}
しかし、私はpulseIn()
機能の働きを理解していません。つまり、タイムカウントがいつ始まり、いつ終わるのかを知りたいのです。たとえば、このコードでは、時間digitalWrite(trigPin, HIGH);
はpulseIn()
関数で開始されますか、それとも関数で開始されますか?
それが2番目の場合、停止すると、pingを送信してからすでに1000マイクロ秒遅れている場合、障害物の距離はどのようにしてわかりますか?
How can i do this code in assembly languaje
-それはこの質問とどう関係していますか?