DomovRevijaPredstavljamoUltrazvočni modul za merjenje razdalje

Ultrazvočni modul za merjenje razdalje

Merjenje razdalje z ultrazvokom je poznano že kar nekaj časa. Pred leti smo morali sami delati UZ sprejemnik in oddajnik, pri tem pa je že sama nabava UZ elementov pomenila veliko težavo. Danes so časi drugačni in na veliko mestih lahko kupite UZ modul, ki že vsebuje osnovno vezje z vgrajenim UZ oddajnim in sprejemnim elementom. Takšen senzor samo še priključimo na mikrokontroler in merjenje razdalje se lahko prične.

Opis senzorja

Slike niKot omenjeno, se UZ moduli že dobijo narejeni. Mi smo uporabili modul z oznako UZ-SR04, na trgu pa obstaja množica podobnih senzorjev z različnimi oznakami. Kot vidimo na sliki 1, ima UZ modul samo 4 priključke: Vcc, Trig, Echo in GND od leve proti desni (glede na sliko 1). Na spodnji strani vezja se nahajajo 3 integrirana vezja in kar nekaj drobnih SMD komponent, ki poskrbijo, da vezje deluje po pričakovanjih.

Delovanje

Krmiljenje modula je enostavno. Na priključek »Trig« s pomočjo mikrokontrolerja pripeljemo impulze, ki so dolgi 10 µs. S tem oddajni del modula sproži 8 UZ impulzov proti oviri, ki ji želimo izmeriti oddaljenost od UZ senzorja. Ko se UZ signal odbije od ovire, ga sprejemni senzor sprejme, vezje ga ojači in preoblikuje tako, da na izhodnem priključku »Echo« dobimo impulz, katerega dolžina proporcionalno ustreza razdalji do ovire. Izmerjen impulz pomerimo z mikrokontrolerjem in z majčkeno matematike izračunamo razdaljo do ovire v centimetrih ali milimetrih.

Program

Bascom-AVR program je enostaven, saj resnično vsebuje le nekaj vrstic programa. Pomagamo si z ukazoma Pulsein in Pulseout, katerih podroben opis si lahko preberete v Help datoteki:

   Pulseout Portd , 4, 20         ‚Min. 10us impulz
   ‚Waitms 100                       ‚namenjeno za testiranje napake
   Pulsein W , Pind ,3 , 1        ‚preberemo razdaljo

Slike niSlike niUkaz Pulseout poskrbi, da na PortD.4 oddamo impulz dolžine 10 µs. V Help datoteki piše, da je dolžina impulza v mikrosekundah (zadnja številka v ukazu), ki velja pri 4 MHz taktu mikrokontrolerja . Ker želimo generirati impulz dolžine 10 µs, uporabljamo pa 8 MHz interni RC za takt mikrokontrolerja, je številka 20 kar pravilno izbrana. Ukaz Pulsein pa pomeri dolžino impulza UZ sprejemnika, ki je priklopljen na PortD.3 in dolžino zapiše v spremenljivko W.

Naj omenim še vrstico z ukazom ‚Waitms 100, ki je zakomentirana in se ne prevede. To vrstico sem dodal zato, da dejansko lahko preizkusimo, ali spremenljivka Err dejansko opravlja svoje delo. Namreč, če se signal vrne prepozno, se Err postavi na 1.

Celotni članek

Ultrazvočni modul za merjenje razdalje

2012_SE199_18