내 RPI에 PING 센서 (HC-SR04)가 연결되어 있습니다. 센서가 40cm 미만을 볼 때 계산을 시작하고 싶습니다. 센서가 다시 40cm 미만으로보고 시간을 출력하고 다시 카운트를 시작하면 다시 카운팅을 멈춰야합니다. 어떻게해야합니까? 이것은 내 코드입니다RPI의 PING 센서가 40cm 미만이면 카운팅을 시작합니까?
#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
#define TRUE 1
#define TRIG 5
#define ECHO 6
void setup() {
wiringPiSetup();
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
//TRIG pin must start LOW
digitalWrite(TRIG, LOW);
delay(30);
}
int getCM() {
//Send trig pulse
digitalWrite(TRIG, HIGH);
delayMicroseconds(20);
digitalWrite(TRIG, LOW);
//Wait for echo start
while(digitalRead(ECHO) == LOW);
//Wait for echo end
long startTime = micros();
while(digitalRead(ECHO) == HIGH);
long travelTime = micros() - startTime;
//Get distance in cm
int distance = travelTime/58;
return distance;
}
int i;
int main(void) {
setup();
while (1)
{
printf("Distance: %dcm\n", getCM());
delay(250);
}
return 0;
}
어떤 세분성이 필요합니까? – LPs
너는 초침과 초 등을 의미합니까? 그렇다면 초와 밀리 초가 필요합니다. –