Sensor de obstáculos infrarrojo, Pic C Compiler

En esta sección aprenderás a programar un sensor para la detección de obstáculos utilizando un LED infrarrojo y un fototransistor, activando una alarma con un Buzzer al detectar un objeto en un rango de detección establecido.

Módulo de obstáculos 

El Módulo Sensor De Obstáculos Reflectivo Infrarrojo es un dispositivo optoelectrónico activo capaz de medir proximidad por infrarrojo IR, esta compuesto por un transmisor que emite energía infrarroja IR y un receptor que detecta la energía IR reflejada por la presencia de cualquier obstáculo en la parte frontal del módulo. 

Características

  • Modelo: FC-51 / HW-201
  • Chip de funcionamiento: LM393
  • Voltaje de alimentación: 3.3V – 5V
  • Voltaje de salida digital : 5V
  • Distancia de detección: 2 cm – 30 cm (ajustable con potencimetro)
  • Angulo de detección: 35°
  • Pines:
    • VCC: Voltaje de alimentación
    • OUT: Salida de tensión digital (0,1)
    • GND: Tierra

Funcionamiento 

La señal del sensor sera de «1» o «alta» sí no existe un obstáculo y la señal sera de «0» o «baja» cuando existe un obstáculo.

Buzzer activo

El buzzer activo es un componente electrónico que produce un sonido cuando se le aplica un voltaje eléctrico de 5V DC. A diferencia de un buzzer pasivo, es que requiere una señal de onda para producir sonido, un buzzer activo tiene un circuito interno que genera su propio tono.

Características

  • Voltaje de operación: 5V 
  • Corriente máxima: 30 mA
  • Dimensiones:12 mm x 9.5 mm
  • Peso: 2 g
  • Frecuencia de resonancia: 23K Hz
  • Salida de sonido mínimo a 10 cm: 85 dB
  •  Pines
    • VCC (+)
    • GND

Circuito de conexión

Procedimiento

Se define la entrada del sensor en el «pin_d0» y se define la salida de la señal para encender el Buzzer en el «pin_d1».


#define sensor input(pin_d0)
#define buzzer pin_d1

La señal del sensor sera de «1» o «alta» sí no existe un obstáculo y la señal sera de «0» o «baja» cuando existe un obstáculo.

Finalmente se utiliza una sentencia «if()» para encender y apagar el Buzzer de acuerdo a la señal de entrada del sensor.


      if (sensor)// si es 1
      {
         output_bit(buzzer,0);         
      }else //si es 0 (cuando detecta objeto)
      {
         output_bit(buzzer,1);
      }

Código completo


#fuses NOMCLR

#define sensor input(pin_d0)
#define buzzer pin_d1

void main()
{

   while(TRUE)
   {
      if (sensor)// si es 1
      {
         output_bit(buzzer,0);         
      }else //si es 0 (cuando detecta objeto)
      {
         output_bit(buzzer,1);
      }
   }
}
Scroll al inicio