INTRODUCCIÓN
El transmisor ultrasónico emite una onda ultrasónica en una dirección, la dispersión ultrasónica en el aire volvería inmediatamente cuando encontró obstáculos en el camino. Por último, el receptor de ultrasonidos se detiene cuando recibe la onda reflejada. La velocidad de propagación por ultrasonidos es de 340 m / s en el aire, basándose en el registro del temporizador t, podemos calcular la distancia entre el obstáculo y el transmisor, a saber: s = 340t / 2.
APLICACIÓN
La Tecnología de Aplicación Ultrasónica se desarrolló en Décadas. Con el avance ultrasónico y la tecnología electrónica, se desarrolló especialmente los dispositivos semiconductores de alta potencia, la aplicación de ultrasonido se ha extendido cada vez más, estas son algunas de las aplicaciones:
- Medición ultrasónica de la distancia, profundidad y espesor;
- Prueba ultrasónica;
- Imágenes de ultrasonido;
- El mecanizado por ultrasonidos, tales como pulido, perforación;
- Limpieza ultrasónica;
- Soldadura por ultrasonidos;
DATOS TÉCNICOS
- Tensión de alimentación: 5 Vcc
- Frecuencia de trabajo: 40 KHz
- Corriente 15mA
- Rango máximo: 4.5 m
- Rango mínimo: 1.7 cm
- “Resolución” La precisión puede variar entre los 3mm o 0.3cm.
- Duración mínima del pulso de disparo (nivel TTL): 10 μS.
- Duración del pulso eco de salida (nivel TTL): 100-25000 μS.
- Tiempo mínimo de espera entre una medida y el inicio de otra 20 mS.
- Velocidad de la onda sonora 343 m/s
CÓDIGO ARDUINO
/* CREADO POR :{==[=======>>>> ELECTROALL <<<<<=======]==} INSTAGRAM : https://www.instagram.com/carlos_j_fuentess/ ó @carlos_j_fuentess FACEBOOK : https://web.facebook.com/ELECTROALL.ELECTRONICA/?_rdc=1&_rdr PÁGINA WEB : https://www.electroallweb.com/ YOUTUBE : https://www.youtube.com/c/ELECTROALL ________________________________________________________ {==[=======> (SENSOR ULTRASONIDO) <=======]==} ________________________________________________________ */ int trigger = 9; // declaramos la palabra trigger como un tipo entero y al mismo tiempo reemplaza al pin 9 int echo = 8; // declaramos la palabra echo como un tipo entero y al mismo tiempo reemplaza al pin 8 float tiempo_de_espera,distancia; // creamos una variable de fotante; es decir, nos puede dar resultados en decimales. void setup() { Serial.begin (9600); // establemos la comucicacion serial pinMode (trigger, OUTPUT); // declarmos el pin 8 como salida pinMode (echo, INPUT); // declaramos el 9 como entrada } void loop() { digitalWrite (trigger,LOW); // ponemos en bajo el pin 8 durante 2 microsegundos delayMicroseconds(2); digitalWrite (trigger, HIGH);// ahora ponemos en alto pin 8 durante 10 microsegundos; delayMicroseconds (10); // pues este el momento en que emite el sonido durante 10 segungos digitalWrite (trigger, LOW); // ahora ponemos en bajo pin 8 tiempo_de_espera = pulseIn (echo,HIGH); // pulseIn, recoge la señal del sonido que emite el trigger /*La función pulseIn espera la aparición de un pulso en una entrada y mide su duración, dando como resultado la duración medida El primer parámetro (ECHO) es el pin sobre el que se realizará la medición. Y el segundo parámetro (HIGH) indica si el pulso a esperar será un 1 (HIGH) o un 0 (LOW). */ distancia =(tiempo_de_espera/2)/29.15; // formula para hallar la distancia Serial.print (distancia); // imprimimos la distancia en cm Serial.println ("cm"); delay (1000); }
IMPLEMENTACIÓN DEL CIRCUITO EN PROTOBOARD [ PIC ]
CÓDIGO EN (pic ccs compiler)
#include <16F877a.h> #FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP #use delay(clock=4000000) #include <lcd.c> float distancia, tiempo; #define trig pin_B1 #define echo pin_B0 #USE standard_io(b) void main() { lcd_init(); printf(LCD_PUTC, "\f WELCOME."); delay_ms(1000); printf(LCD_PUTC, "\f TO ELECTROALL.."); delay_ms(1000); setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); while(true) { output_high(trig); delay_us(10); output_low(trig); while(!input(echo)) {} set_timer1(0); while(input(echo)) {} tiempo=get_timer1(); distancia=(tiempo/2)/(29.15); lcd_gotoxy(1,1); printf(lcd_putc,"Distancia =%f",distancia); lcd_gotoxy(2,2); printf(lcd_putc, "tiempo =%f", tiempo); delay_ms(500); } }
CIRCUITO INTENSIDAD DE LUZ SEGÚN DISTANCIA [ PIC -PWM ]
CÓDIGO EN (ccs compiler)
#include <16F877a.h> #FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP #use delay(clock=4000000) #include <lcd.c> float distancia, tiempo; #define trig pin_B1 #define echo pin_B0 #USE standard_io(b) void main() { lcd_init(); printf(LCD_PUTC, "\f WELCOME."); delay_ms(1000); printf(LCD_PUTC, "\f TO ELECTROALL.."); delay_ms(1000); setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); /////////////////////////////////////////////////------------------------------------------------ setup_ccp1(CCP_PWM); // habilitamos el puerto ccp1 del pic setup_timer_2(T2_DIV_BY_16, 255,1); // usamos el timer2 /////////////////////////////////////////////////////-------------------------------------------------- while(true) { output_high(trig); delay_us(10); output_low(trig); while(!input(echo)) {} set_timer1(0); while(input(echo)) {} tiempo=get_timer1(); distancia=(tiempo/2)/(29.15); lcd_gotoxy(1,1); printf(lcd_putc,"Distancia =%f",distancia); lcd_gotoxy(2,2); printf(lcd_putc, "tiempo =%f", tiempo); delay_ms(500); ///////////////////////////////////------------------------------ int ccp_pw=distancia/1.56862; set_pwm1_duty(ccp_pw); delay_ms(2); ////////////////////////////////////--------------------------------- } }