Descrición:
Co sensor ultrasónico podemos detectar obxectos, medir distancias ou detectar movementos na contorna.
Funciona enviando un sinal de ultrasóns (frecuencias sonoras que os humanos non podemos detectar) e espera a que ese sinal regrese despois de chocar contra un obxecto. O tempo transcorrido entre o envío e a recepción do sinal depende da distancia á que se atopa o obxecto detectado.
Montaxe:
O sensor ultrasóns HC-SR04 ten 4 pins:
- VCC: conectado á 5V
- Trig: conectado ao pin dixital da placa encargado de enviar o pulso ultrasónico. Hai que configuralo como saída.
- Echo: conectado ao pin de entrada dixital que recibirá o eco de dito pulso. Hai que configuralo como entrada.
- GND: conectado a terra.
Práctica:
Imos facer unha práctica na que medimos distancias. Debemos conectar o trig ao pin 9 e configuralo como saída e o Echo ao pin 8 e configuralo como entrada.
Creamos dúas variables: tempo e distancia. No canto de usar int (enteiro de 16 bits) utilizaremos long, de 32 bits.
As seguintes instrucións van medir a distancia á que se atopa o ultrasónico.
tempo=pulseIn(echo, HIGH); Mide o tempo transcorrido entre o envío do pulso e a recepción do rebote
distancia= int(0.017*tempo); Fórmula para calcular la distancia obtendo un valor enteiro
// Declaración de variables: int trig = 9; // trig conectado ao pin 9 int echo = 8; // echo conectado ao pin 8 long tempo; // variable para expresar o tempo long distancia; // variable para expresar a distancia. // Configuración: void setup(){ Serial.begin(9600); pinMode(trig, OUTPUT); // trig como saída pinMode(echo, INPUT); // echo como entrada } // Programa: void loop(){ digitalWrite(trig,LOW); delayMicroseconds(5); digitalWrite(trig, HIGH); // envío do pulso ultrasónico delayMicroseconds(10); tempo=pulseIn(echo, HIGH); // tempo transcorrido entre o envío do pulso e a recepción distancia= int(0.017*tempo); // fórmula para calcular la distancia Serial.print("Distancia: "); // imprimimos os valores na consola Serial.print(distancia); Serial.println(" cm"); delay(200); }
Limitacións:
- Non ten moita precisión. As distancias verás que non se corresponderán coas reais, así que deberás facer probas de funcionamento.
- Non detecta obxectos de pequeno tamaño.
- O ángulo de visión é limitado (+/- 15º)
- A detección de obxectos planos soe ser eficaz, pero se os obxectos son curvos as medidas soen ser erróneas. Por exemplo, unha lata de refresco.
Propostas:
- Ultrasónico e LED. Fai que cando a distancia sexa menor que 5 cm se acenda un LED, e cando sexa maior de 5 cm se apague.
- Sinalización por Leds. Fai que a unha distancia maior de 15 cm se acenda un LED verde, entre 8 e 15 cm un LED amarelo, e a unha distancia menor de 8 cm un LED vermello.
- Axuda de aparcamento. Conecta un zumbador e fai que o zumbador emita sons cunha periodicidade proporcional á distancia medida (a menor distancia, tempo máis curto entre sons). Fai ademais que soe un ton máis agudo canto máis cerca estea.