En aquest article, connectarem el sonar del telemetre ultrasònic HC-SR04 a l’Arduino.
Necessari
- - Arduino;
- - sensor d'ultrasons HC-SR04;
- - cables de connexió.
Instruccions
Pas 1
L'acció del telemetre ultrasònic HC-SR04 es basa en el principi d'ecolocalització. Emet impulsos sonors a l’espai i rep un senyal reflectit des d’un obstacle. La distància a l'objecte està determinada pel temps de propagació de l'ona sonora a l'obstacle i cap enrere.
L'ona sonora s'activa aplicant un pols positiu d'almenys 10 microsegons a la cama TRIG del telemetre. Tan bon punt finalitza el pols, el telemetre emet una explosió de polsos de so amb una freqüència de 40 kHz a l’espai que hi ha al davant. Al mateix temps, s'inicia l'algorisme per determinar el temps de retard del senyal reflectit i apareix una unitat lògica a la cama ECHO del telemetre. Tan bon punt el sensor detecta el senyal reflectit, apareix un zero lògic al pin ECHO. La durada d'aquest senyal ("Retard de ressò" a la figura) determina la distància a l'objecte.
Rang de mesura de distància del telemetre HC-SR04: fins a 4 metres amb una resolució de 0,3 cm. Angle d'observació - 30 graus, angle efectiu - 15 graus. El consum actual en mode d'espera és de 2 mA, durant el funcionament - 15 mA.
Pas 2
La font d'alimentació del telemetre ultrasònic es realitza amb una tensió de +5 V. Els altres dos pins estan connectats a qualsevol port digital de l'Arduino, el connectarem a l'11 i al 12.
Pas 3
Escrivim ara un esbós que determina la distància a l'obstacle i el transmet al port sèrie. En primer lloc, establim els números dels pins TRIG i ECHO: es tracta dels pins 12 i 11. A continuació, declarem el disparador com a sortida i el ressò com a entrada. Inicialitzem el port sèrie a 9600 baud. A cada repetició del bucle (), llegim la distància i la sortim al port.
La funció getEchoTiming () genera un impuls de disparador. Simplement crea un corrent de pols de 10 microsegons, que és un desencadenant per a l'inici de la radiació del telemetre d'un paquet de so a l'espai. Després, recorda el temps des del començament de la transmissió de l’ona sonora fins a l’arribada del ressò.
La funció getDistance () calcula la distància a l'objecte. Des del curs de física de l’escola, recordem que la distància és igual a la velocitat multiplicada pel temps: S = V * t. La velocitat del so a l'aire és de 340 m / s, el temps en microsegons que sabem és "duratuion". Per obtenir el temps en segons, divideix-lo per 1.000.000. Com que el so viatja el doble de la distància (fins a l'objecte i cap enrere), cal dividir la distància per la meitat. Per tant, resulta que la distància a l'objecte S = 34.000 cm / seg * durada / 1.000.000 seg / 2 = 1,7 cm / seg / 100, que vam escriure a l'esbós. El microcontrolador realitza la multiplicació més ràpid que la divisió, de manera que he substituït "/ 100" per l'equivalent "* 0, 01".
Pas 4
A més, s’han escrit moltes biblioteques per treballar amb un telemetre ultrasònic. Per exemple, aquest: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. La biblioteca s'instal·la de manera estàndard: descarregueu-la, descomprimiu-la al directori de biblioteques, que es troba a la carpeta amb l'IDE Arduino. Després d'això, es pot utilitzar la biblioteca.
Un cop instal·lada la biblioteca, escrivim un nou esbós. El resultat del seu treball és el mateix: el monitor de port sèrie mostra la distància a l'objecte en centímetres. Si escriviu float dist_cm = ultrasonic. Ranging (INC); a l'esbós, la distància es mostrarà en polzades.
Pas 5
Per tant, vam connectar el telemetre ultrasònic HC-SR04 a l’Arduino i en vam rebre dades de dues maneres diferents: mitjançant una biblioteca especial i sense.
L’avantatge d’utilitzar la biblioteca és que la quantitat de codi es redueix significativament i es millora la llegibilitat del programa, no cal aprofundir en les complexitats del dispositiu i el pot utilitzar immediatament. Però això també és l’inconvenient: enteneu menys bé com funciona el dispositiu i quins processos hi tenen lloc. En qualsevol cas, quin mètode utilitzar depèn de vosaltres.