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
   11   12   13   14   15   16   17   18   19   20   21