Page 16 - 6510
P. 16
Програмне забезпечення для роботи комп’ютерної системи
вимірювання відстані до об’єкта на базі персонального комп’ютера,
плати Arduino та ультразвукового далекоміра HC-SR04:
/*
* Приклад роботи з ультразвуковим датчиком HC-SR04
*/
int trigPin = 8;
int echoPin = 7;
float v=331.5+0.6*20; // швидкість звуку при температурі 20
градусів Цельсія (Ви можете вказати своє значення замість 20) в м / с
void setup()
{
Serial.begin(9600); // відкриваємо послідовний порт, задаємо
швидкість передачі даних на 9600 біт /сек
pinMode(trigPin, OUTPUT); // встановлюємо 8 пін як вихід
pinMode(echoPin, INPUT); // встановлюємо 7 пін як вхід
}
void loop() //
{
float d=distance(); // виклик функції і збереження значення
змінної
Serial.println(d, 2); // вивід значення
delay(200); // затримка в 200 мс
}
float distance(){
digitalWrite(trigPin, LOW); // подаємо низький рівень сигналу
delayMicroseconds(3); // чекаємо 3 мкс
digitalWrite(trigPin, HIGH); // подаємо високий рівень сигналу
delayMicroseconds(5); // чекаємо 5 мкс
digitalWrite(trigPin, LOW); // подаємо низький рівень сигналу
float tUs = pulseIn(echoPin, HIGH); // обчислюємо тривалість
переходу echoPin з HIGH в LOW
float t = tUs / 2000000; // переводимо мкс -> с (ділимо на
1000000) і відрізаємо проміжок часу витрачений звуком на зворотний
шлях (ділимо на 2)
float d = t*v*100; // дистанція в см
return d; // повертаємо значення дистанції
}
15