Automatización de bajo costo con PIC16F676 | Proyecto completo de electrónica

prototipo del autor
Fig. 11: Prototipo del autor







Sani y DwivediHay muchos tipos de sistemas de automatización industrial y del hogar disponibles en el mercado. Estos incluyen control remoto IR, domótica Bluetooth, domótica DTMF, domótica Wi-Fi, domótica RF y domótica controlada por voz. El que aquí se presenta es un sistema de automatización de bajo costo. Se puede utilizar en el hogar o en un entorno industrial para encender y apagar dispositivos.

Los controladores y receptores remotos IR siguen protocolos estándar para enviar y recibir datos. Algunos de los protocolos estándar son NEC, PHILIPS RC5, JVC y SIRC (control remoto por infrarrojos de Sony). Usaremos el protocolo NEC para este proyecto. Después de comprender el formato de marco del control remoto IR, conectaremos el receptor IR TSOP1738 con el microcontrolador PIC16F676 para decodificar la tecla presionada desde un control remoto IR NEC, como se muestra en la Fig. 1.

Mando a distancia por infrarrojos VIRE NEC
Fig. 1: Control remoto IR VIRE NEC

Cada bit se transmite utilizando la distancia de pulso, como se muestra en la Fig. 2. El ‘0’ lógico es una ráfaga de pulso de 562,5 µs seguida de un espacio de 562,5 µs, con un tiempo de transmisión total de 1,125 ms. El ‘1’ lógico es una ráfaga de pulsos de 562,5 µs seguida de un espacio de 1,6875 ms, con un tiempo de transmisión total de 2,25 ms.

Marco de distancia de pulso
Fig. 2: Marco de distancia de pulso

Cuando se presiona una tecla en el control remoto, el mensaje transmitido consiste en lo siguiente en el siguiente orden:

  1. Una ráfaga de pulsos adelantados de 9 ms (16 veces la longitud de la ráfaga de pulsos utilizada para un bit de datos lógicos)
  2. Un espacio de 4,5 ms
  3. La dirección de 8 bits del dispositivo receptor
  4. El inverso lógico de 8 bits de la dirección
  5. El comando de 8 bits
  6. El inverso lógico de 8 bits del comando
  7. Una última ráfaga de pulsos de 562,5 µs para indicar el final de la transmisión del mensaje

Cada uno de los cuatro bytes de bits de datos se envía con el bit menos significativo primero. La figura 3 ilustra el formato de una trama de transmisión NEC IR para una dirección de 00h (00000000b) y un comando de ADh (10101101b).

Formato de un marco de transmisión NEC IR
Fig. 3: Formato de un marco de transmisión NEC IR

Se requiere un total de 67,5 ms para transmitir una trama de mensaje. Necesita 27ms para transmitir los 16 bits de dirección (dirección+inverso) y los 16 bits de comando (comando+inverso).

La Tabla 1 muestra el formato de trama NEC de 32 bits y la Tabla 2 muestra la lista completa de códigos de tecla IR para el control remoto IR NEC.

Marco NECcontrolador PIC16F676

PIC16F676 es el microcontrolador PIC CMOS de 8 bits de Microchip con memoria flash. Viene en un paquete de 14 pines con CPU RISC de alto rendimiento, lo que lo convierte en una opción ideal para la mayoría de las aplicaciones electrónicas relacionadas con sistemas integrados o automatización industrial. Este diminuto chip incorpora todo lo necesario para desarrollar proyectos individuales. Algunas de sus características son:

  • La memoria flash de alto rendimiento PIC16F676 ayuda a aumentar la velocidad de procesamiento del microcontrolador.
  • Viene en paquetes PDIP, SOIC y TSOP, todos los cuales están disponibles en configuración de 14 pines.
  • PIC16F676 contiene memoria de programa con espacio de memoria de alrededor de 1,7 kB, mientras que las memorias RAM y EEPROM son de 64 bytes y 128 bytes, respectivamente.
  • Un módulo ADC de 10 bits en el dispositivo viene con ocho canales analógicos. Este módulo juega un papel vital para la interfaz de sensores y la conversión de valores analógicos a digitales.
  • El reinicio de encendido, el comparador, la programación en serie en el circuito y el reinicio maestro claro son algunas otras características incorporadas en el dispositivo. Esto lo ayuda a mantenerse por delante de los otros chips integrados y elimina la necesidad de comprar componentes externos para realizar diferentes operaciones. El diagrama de pines de PIC16F676 se muestra en la Fig. 4.
Diagrama de pines de PIC16F676
Fig. 4: Diagrama de pines de PIC16F676

circuito y trabajo

El proyecto utiliza el microcontrolador PIC16F676 y un control remoto NEC IR para encender/apagar cualquier carga de CA, incluidas luces y ventiladores, desde la comodidad de su silla o cama. Las diferentes señales IR del control remoto para las diferentes luces y ventiladores son recibidas por el microcontrolador, que luego controla los respectivos relés a través de un circuito controlador de relés. Estos relés se utilizan para encender o apagar las luces y los ventiladores.

Lista remota de NECHay muchos tipos de controles remotos IR disponibles para diferentes dispositivos, pero la mayoría de ellos funcionan con una frecuencia de 38 kHz. Este proyecto requiere un control remoto de TV IR ordinario. Para detectar las señales IR, el receptor IR TSOP 1738 que se muestra en
Se utiliza la figura 5. Puede detectar la señal de frecuencia de 38kHz.

Receptor de infrarrojos TSOP 1738
Fig. 5: Receptor IR TSOP 1738

El diagrama de bloques del proyecto se muestra en la Fig. 6.

Diagrama de bloques
Fig. 6: Diagrama de bloques

En este proyecto, los pines de E/S digital RC0, RC1 y RC2 del puerto C del microcontrolador PIC16F676 se utilizan para controlar los relés para encender/apagar los dispositivos. Estos pines están configurados como pines de salida en el programa. El receptor IR está conectado al pin RC4 de PIC16F676, que está configurado como pin de entrada en el programa.

El microcontrolador PIC16F676 opera a +5V. Por lo tanto, se utiliza un transformador para reducir el suministro de red de 230 V CA, que se rectifica mediante un rectificador de onda completa. El voltaje rectificado se regula a +5V usando el regulador IC 7805. El diagrama de circuito completo se muestra en la Fig. 7.

Lista de

El funcionamiento de este proyecto es bastante simple. Cuando se presiona un botón en el control remoto IR, envía una secuencia de códigos en forma de pulsos codificados utilizando una frecuencia de modulación de 38 kHz. Estos pulsos son recibidos por el sensor TSOP 1738 y luego leídos por el microcontrolador. El microcontrolador decodifica el tren de pulsos recibido en un valor hexadecimal y lo compara con los valores hexadecimales predefinidos en el programa.

Cada vez que se presiona una tecla en el control remoto IR, un receptor IR recibe la señal IR transmitida y el software decodifica la tecla. En este proyecto, la cadena completa de 32 bits (4 bytes del protocolo NEC) se utiliza para la decodificación. En esta cadena de 32 bits, el tercer byte se compara en el programa para controlar las luces/ventiladores. Si ocurre alguna coincidencia, el controlador realiza una operación relativa activando el relé respectivo a través del transistor BC547 y el resultado correspondiente se indica mediante un LED integrado. Los tres LED del circuito muestran el estado de los relés.

En este proyecto se han utilizado las teclas números 2, 4 y 6 del mando a distancia IR para el control de los tres relés. La tecla 2 cambia el relé RL1, la tecla 4 cambia el relé RL2 y la tecla 6 cambia el relé RL3.

Software

El circuito utiliza el programa de software cargado en la memoria interna de PIC16F676. El programa se compila utilizando Mikro C PRO versión 7.2.0 para el compilador PIC y se carga en PIC16F676. El software main.c está escrito en lenguaje C integrado, lo que permite escribir el código en unas pocas líneas. El código hexadecimal generado se graba en el chip MCU utilizando la placa del programador PIC K150.

Aquí no se utiliza ningún modo de encabezado, interrupción o captura y comparación para detectar la señal IR. El pin digital RC4 lee los datos, al igual que leemos un botón. Cada vez que la señal sube o baja, se adopta el antirrebote y se ejecuta el temporizador. Cada vez que el pin cambia su estado a otro, los valores de tiempo se guardan en una matriz.

Configuración de bits de fusibles
Fig. 8: Configuración de bits de fusible

El control remoto IR envía un 0 lógico como un pulso de 562,5 µs y un 1 lógico como un pulso de 2250 µs. Cada vez que el temporizador detecta un pulso de 562,5 µs, el programa asume que es 0, y cuando detecta un pulso de 2250 µs, asume que es 1. Luego, el programa lo convierte en hexadecimal. La señal entrante del control remoto contiene 32 bits (4 bytes). El programa almacena todos los bytes en la matriz y luego decodifica el tercer byte para usarlo en la comparación.

El caso de ‘interruptor’ de declaración de programación simple se utiliza para detectar y controlar los electrodomésticos.

No olvide configurar los bits de fusible antes de programar PIC16F676 usando el programador PIC K150. El programa no funcionará sin configurar los bits del fusible. Los ajustes de la broca del fusible se muestran en la Fig. 8.

Construcción y pruebas

En la Fig. 9 se muestra un diseño de PCB de tamaño real para el sistema de automatización y su diseño de componentes en la Fig. 10. Después de ensamblar el circuito en el PCB, enciérrelo en una caja adecuada. El receptor IR1 debe fijarse en el panel frontal, de modo que el control remoto pueda enfocarlo para activar cualquier carga conectada al respectivo relé. CON1 debe fijarse en la parte posterior del gabinete. Los tres aparatos de 230 V CA se conectan al circuito mediante dos cables y se colocan en su ubicación. El prototipo del autor cableado en una PCB de propósito general se muestra en la Fig. 11.

Diseño de PCB de tamaño real
Fig. 9: Diseño de placa de circuito impreso
Disposición de los componentes de la placa de circuito impreso
Fig. 10: Disposición de los componentes de la placa de circuito impreso
prototipo del autor
Fig. 11: Prototipo del autor

Descargar PDF de diseño de PCB y componentes: haga clic aquí

Descargar Código fuente


Pamarthi Kanakaraja es profesora asistente (célula de I+D) en la Universidad KL, Vaddeswaram, distrito de Guntur, Andhra Pradesh

Deja un comentario