Icono del sitio ELECTROALL

Sensor Ultrasonido

YouTube
YouTube
Instagram
Instagram
GitHub
GitHub
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);
  ////////////////////////////////////---------------------------------

}
}
VIDEO
Salir de la versión móvil