Lekcja 6: Pomiar odległości czujnikiem ultradźwiękowym.
            Tym razem zajmiemy sie pomiarem odległości za pomocą ultradźwiękowego czujnika US-020.
            Skłąda się on z dwóch przetworników - wysyłającego i odbierającego fale dźwiękowe. Czujnik 
            ultradźwiękowy działający w efektywnym zakresie 2 - 700 cm. Do pomiarów można również wykorzystać podobny czujnik
            o krótszym zasięgu (2-200cm) o symbolu HC-SR04.
            Dane czujnika US-020:
        
        
- Napięcie zasilania: 5 V
 - Średni pobór prądu: 3 mA
 - Zakres pomiarowy: 2 - 700 cm
 - Dokładność: 0,3 cm + 1 %
 - Wyjście: sygnał częstotliwościowy
 - Częstotliwość pracy: 40 kHz
 - Wymiary: 45 x 20 x 15 mm
 
        
    
        Aby rozpocząć pomiar należy podać na pin TRIG impuls napięciowy (stan wysoki 5 V) przez 10 uS (10 mikrosekund). Moduł dokonuje pomiaru odległości przy pomocy fali dźwiękowej o częstotliwości 40 kHz. Do mikrokontrolera wysyłany jest sygnał, w którym odległość zależna jest od czasu trwania stanu wysokiego i można ją obliczyć ze wzoru: , gdzie s - odległość, t -czas trwania wysokiego poziomu, v - prędkość dźwięku (340m/s). Wynik dzielimy przez 2 gdyż odległość od przeszkody jest o połowę krótsza od drogi jaką pokonuje dźwięk (dźwięk biegnie od czujnika do przeszkody i z powrotem).
 *źródło: www.botland.com.pl  
            Składamy układ z czujnikiem wg. poniższych schematów z połączeniami:
- VCC do 5V
 - Trig do pinu 7
 - Echo do pinu 8
 - GND do GND
 

 
        
                 Piszemy kod jak poniżej.
        #include < NewPing.h>
        #define TRIGGER_PIN  7  
        #define ECHO_PIN     8 
        #define MAX_DISTANCE 200 
        NewPing odl(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 
        void setup() {
            Serial.begin(115200); 
            }
        void loop() {
            delay(50);                     
            unsigned int uS = odl.ping(); 
            Serial.print(uS / US_ROUNDTRIP_CM); 
            Serial.println("cm");
            }
        
       
       
           W linii 1 mamy instrukcję include i w nawiasach trójkątnych nazwę pliku nagłówkowego 
               NewPing.h, który został stworzony przez producenta czujnika. W tym pliku znajdują się instrukcje
               obsługujące elementy czujnika. My tylko z nich korzystamy w naszym kodzie. Pliki można ściągnąć 
               stąd a następnie rozpakować do folderu
               naszego projektu.
           W linii 2 i 3 definiujemy dwie zmienne na pinach 7 i 8, które oznaczają wyzwalanie sygnału i odbiór. 
           W linii 4 deklarujemy maksymalny mierzony zakres odległości.
           W linii 5 znajduje sie wywołanie z klasy NewPing nowej funkcji o nazwie odl, która będzie przechowywała
           chwilową odległość. 
           Zauważmy, że w linii 7 zadeklarowaliśmy prędkość przesyłu danych portem szeregowym na 115200 bitów na sekundę. 
           Trzeba będzie pamiętać o tym by w oknie Serial Monitora, w którym będziemy widzieć wyniki, również zmienić prędkość
           wysyłania danych (prawy dolny róg okna).
           W linii 10 ustalamy czas między pomiarami na 50ms.
           W linii 11 deklarujemy nową wartość unsigned int uS, która przyjmie wartości z funkcji odl. Jest to liczba bez znaku
            i całkowita (dodatnia). 
            W linii 12 wysyłamy do okna Serial Monitor wynik przechowywany w zmiennej uS przeliczony na cm.
            W linii 13 dopisujemy tylko jednostkę do wartości mierzonej.
            Powinniśmy widzieć obraz jak poniżej. Wystarczy teraz zbliżać i oddalać od czujników dłoń by sprawdzić działanie układu.
          
       
 
        Powrót do spisu materiałów






