как рассчитать скорость объекта с помощью ультразвукового датчика - PullRequest
0 голосов
/ 14 апреля 2019

Я работаю над проектом, в котором я хочу рассчитать скорость игрушечной машины с помощью ультразвукового датчика, измерив расстояние и как только оно достигнет конца. Мы видим время, прошедшее с момента запуска программы. Однако я обнаружил, что датчик, который я использую, является точным только до 20 см. Есть предложения?

#include <NewPing.h>

int i=0;
float distance;
long duration;
int trigpin = 9;
int echopin = 10;
int s;
boolean warrant=true;
unsigned long time;
void setup() {
// put your setup code here, to run once:

pinMode(trigpin, OUTPUT);
pinMode(echopin, INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
// put your main code here, to run repeatedly:
time=millis();
if(warrant==true){
s=distance;

digitalWrite(trigpin, LOW);
delay(2);
digitalWrite(trigpin, HIGH);
delay(10);
digitalWrite(trigpin, LOW);
duration = pulseIn(echopin, HIGH);
distance = duration * 0.034 / 2;

if((distance-s)>1){
Serial.println(distance);
}
delay(200);
if(distance>30){
 Serial.println(distance/time);
Serial.println("done");
delay(10);
warrant=false;

 }}}

В идеале он должен легко измерять скорость. Код работает отлично, но он ломается через 20см. Вероятно, из-за ограничений датчика

1 Ответ

0 голосов
/ 17 апреля 2019

Если датчик точен только до 20 см, и вам нужно измерить больше, вам следует заменить датчик на более качественный. Код не может сделать ваш датчик лучше.

...