De ultrasone afstandssensor die we hier gaan gebruiken, meet afstanden zoals een vleermuis of een duikboot: een geluid wordt verzonden, en de Arduino meet de tijd tot de echo aankomt.
Werking: Onze Arduino stuurt een signaal naar de ‘Trig-pin’ op de sensor. Die geeft dan via de ‘Transmitter’ een onhoorbaar geluid (boven 20kHz).
Wanneer op onze sensor de echo weer binnenkomt via de ‘Receiver’, dan stuurt de sensor een HIGH signaal naar onze Arduino via de ‘Echo-pin’. Op basis van de tijdsduur tussen out en in kan je Arduino dan berekenen hoe ver een voorwerp van de sensor staat. Het voorwerp moet wel recht voor de sensor staan.
De sensor kan afstanden meten van 2 cm tot zo’n 4,5m met 0,5cm nauwkeurigheid.
Berekening: Geluid in een kamer heeft een snelheid van ongeveer 340 m/s. Omdat onze Arduino meet in microseconden (1/1.000.000 sec) en in centimeter krijgen we 0,0340 cm/uS. In een breuk komt dit ongeveer overeen met 1/29,4.
Aangezien ons geluid heen en weer gaat mogen we de duurtijd halveren om de afstand te bepalen. Vandaar de omrekening: distance = ((duration / 2)/29,4).
De aansluiting: Op sommige modellen is de OUT-pin afwezig. De vier andere pins kom je normaal altijd tegen.
Vcc - naar 5V op Arduino
Trig - naar signaalpin op Arduino (hier 18)
Echo - naar echopin op Arduino (hier 19)
(OUT - niet verbinden met Arduino)
GND - naar Ground op Arduino
De code: Bovenaan zie je twee variabelen staan: long distance en long duration. Een 'long' variabele is vergelijkbaar met een int, maar kan veel grotere getallen bijhouden. Aangezien we werken met microseconden zitten we immers al snel aan erg grote getallen.
#define trigPin 18 = eigenlijk net hetzelfde als:
int trigpin = 18;
Verder zijn er in deze code geen nieuwigheden. In regel 16 wordt het signaal verzonden, op regel 19 wordt gekeken naar de tijdsduur tot de echo. In regel 20 wordt die omgerekend naar de afstand om de afstand dan weer te geven in de Serial Monitor.