Sensores T03SEN – Sensor Ultrasónico
La adquisición de datos es uno de los medios más importantes para controlar procesos y generar cambios en el sistema. Es posible capturar los datos mediante una comunicación entre dos periféricos en donde debe existir un emisor y un receptor, continuando con los tutoriales de Arduino, es la oportunidad de demostrar el gran alcance de esta placa, hoy aprenderemos a capturar datos con el Arduino para verlos en nuestro computador. El corazón de este proyecto es el Sensor Ultrasónico LV-MaxSonar-EZ1. y el Arduino Uno.
Un sensor ultrasónico realiza la emisión de un pulso ultrasónico, luego mide el tiempo que transcurre entre la emisión de sonido y la percepción del eco y con esto se puede establecer la distancia a la que se encuentra del obstáculo.
Veamos el vídeo de la práctica
Este es el montaje sugerido entre el Arduino y el Sensor ultrasónico
Presentamos el código para leer el puerto serie, obteniendo el valor del Sensor Ultrasónico
/* ------------------------------------------ Lectura del valor del sensor ultrasónico ------------------------------------------ Lee una entrada análoga y muestra su valor por el puerto serial Cosas de Mecatrónica y Tienda de Robótica */ //------------------------------------ //Funcion principal //------------------------------------ void setup() { Serial.begin(9600); // Inicia la comunicación serial } //------------------------------------ //Funcion ciclicla //------------------------------------ void loop() { // Lee la entrada análoga 0 y se la asigna a una variable int analogValue = analogRead(0); // Imprime el valor de esa entrada Serial.println(analogValue); // Espera 10ms por el conversor análogo-digital // 10ms sería el tiempo de muestreo de la senal delay(10); } Este código corresponde al ajuste realizado a la medida del sensor ultrasónico para poder obtener la medida en centímetros(cm)
/* ------------------------------------------ Conversión de la medida del sensor a cm ------------------------------------------ Convierte el valor del Sensor ultrasónico a una medida en centímetros (cm) Nota----------- Experimentalmente cuando el Sensor ultrasónico marca 48 midiendo con una regla equivale a 32cm, la razón de cambio viene dada por: 48 / 32 = 1.5 Cosas de Mecatrónica y Tienda de Robótica */ //------------------------------------ //Funcion principal //------------------------------------ void setup() { Serial.begin(9600); // Inicia la comunicación serial } //------------------------------------ //Funcion ciclicla //------------------------------------ void loop() { // Lee la entrada análoga 0 y se la asigna a una variable int analogValue = analogRead(0); // Imprime el valor de esa entrada multiplicada por la razón de cambio Serial.print(analogValue*1.5); Serial.print("cm"); // Imprime la palabra cm en la misma línea del valor Serial.println(""); // Imprime un espacio en blanco equivale a un enter // 300ms sería el tiempo de muestreo de la senal delay(300); }
Por último, este código se dedica a explicar el control realizado con el Arduino, mientras el sensor se encuentra en determinado umbral enciende el Led, si no esta en ese umbral apaga el Led.
/* ------------------------------------------ Control con el Sensor ultrasónico ------------------------------------------ Toma un umbral y mientras este en ese rango el Arduino generara una acción de cambio Para este ejercicio se ha tomado como rango el valor del sensor ultrasónico: 20 -30 Si esta dentro de este rango enciende el Led Si esta fuera del rango apaga el Led Cosas de Mecatrónica y Tienda de Robótica */ //------------------------------------ //Declara puertos de entradas y salidas //------------------------------------ int led = 13; // Declara el LED en el Pin 13 //------------------------------------ //Funcion principal //------------------------------------ void setup() { Serial.begin(9600); // Inicia la comunicación serial pinMode(led, OUTPUT); // Inicializa el LED como una salida } //------------------------------------ //Funcion ciclicla //------------------------------------ void loop() { // Lee la entrada análoga 0 y se la asigna a una variable int analogValue = analogRead(0); // Condición del rango if ((analogValue >= 20) && (analogValue <= 30)) // Está en el rango 20-30? digitalWrite(led, HIGH); //Si esta en el rango, enciende LED else digitalWrite(led, LOW); //No esta en el rango, apaga LED // Imprime el valor de la entrada análoga Serial.println(analogValue); // Espera 10ms por el conversor análogo-digital // 10ms sería el tiempo de muestreo de la senal delay(10); }
De seguro quedaste con ganas de ver más Tutoriales de Arduino, visita nuestra extensa lista y elige
Tag:arduino, sensores, tutorial, ultrasonico