Automatización de bajo costo con PIC16F676 | proyecto electronico completo


Sani y DwivediHay muchos tipos de sistemas de automatización industrial y del hogar 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 se presenta aquí es un sistema de automatización económico. Se puede utilizar en el hogar o en un entorno industrial para encender y apagar dispositivos.

Los controles remotos y receptores 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, conectamos el receptor IR TSOP1738 al microcontrolador PIC16F676 para decodificar el botón presionado por un control remoto IR NEC como se muestra en la figura 1.

Mando a distancia VIRE NEC IR
Fig. 1: Mando a distancia VIRE NEC IR

Cada bit se transmite usando un espaciado de pulso como se muestra en la fig. El "0" lógico es una ráfaga de pulsos de 562,5 µs seguida de una pausa 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 una pausa de 1,6875 ms, con un tiempo de transmisión total de 2,25 ms.

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

Cuando se presiona un botón en el control remoto, el mensaje enviado consiste en lo siguiente en el siguiente orden:

  1. Una ráfaga de pulsos de adelanto 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. La instrucción de 8 bits
  6. El inverso lógico de 8 bits de la instrucción
  7. Una ráfaga final 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 primero con el bit menos significativo. 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 una trama de transmisión NEC-IR

Se requiere un total de 67,5 ms para la transmisión de un telegrama. Se necesitan 27 ms para transferir los 16 bits de dirección (dirección + inversión) y los 16 bits de comando (comando + inversión).

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

Índice del contenido

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 una potente CPU RISC, 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 pequeño chip contiene todo lo necesario para desarrollar proyectos personalizados. Algunas de sus funciones son:

  • La memoria flash del PIC16F676 de alto rendimiento ayuda a aumentar la velocidad de procesamiento del microcontrolador.
  • Está disponible en paquetes PDIP, SOIC y TSOP, todos disponibles en configuración de 14 pines.
  • PIC16F676 contiene memoria de programa con un espacio de almacenamiento de aproximadamente 1,7 kB, mientras que la memoria RAM y EEPROM son 64 bytes y 128 bytes respectivamente.
  • Un módulo ADC de 10 bits en el dispositivo tiene ocho canales analógicos. Este módulo juega un papel crucial en la interfaz del sensor y en la conversión de valores analógicos a valores 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 integradas 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 diversas operaciones. El diagrama de pines del PIC16F676 se muestra en la Figura 4.
Diagrama de pines de PIC16F676
Figura 4: diagrama de pines PIC16F676

circuito y funcion

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

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

Receptor de infrarrojos TSOP 1738
Fig. 5: Receptor de infrarrojos 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 IO digitales RC0, RC1 y RC2 del puerto C del microcontrolador PIC16F676 se utilizan para controlar los relés para encender y apagar los dispositivos. Estos pines están configurados como pines de salida en el programa. El receptor IR se conecta al pin RC4 de PIC16F676, que está configurado como pin de entrada en el programa.

El microcontrolador PIC16F676 funciona con +5V. Por lo tanto, se utiliza un transformador para reducir el suministro de CA de 230 V que se rectifica con un rectificador de onda completa. La tensión rectificada se regula a +5 V con el regulador IC 7805. El diagrama de circuito completo se muestra en la Fig. 7.

lista de partes

El trabajo de este proyecto es bastante simple. Cuando se presiona un botón en el control remoto IR, emite una secuencia de códigos en forma de pulsos codificados con 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 un botón en el control remoto IR, un receptor IR recibe la señal IR transmitida y el software decodifica el botón. 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 del programa se compara para controlar las luces/ventiladores. Cuando ocurre una coincidencia, el controlador realiza una operación relativa activando el relé apropiado a través del transistor BC547 y el resultado apropiado se indica mediante un LED incorporado. Los tres LED del circuito muestran el estado de los relés.

En este proyecto, los botones números 2, 4 y 6 del control remoto IR se usaron para controlar los tres relés. El botón 2 cambia el relé RL1, el botón 4 cambia el relé RL2 y el botón 6 cambia el relé RL3.

software

El circuito utiliza el programa de software cargado en la memoria interna del PIC16F676. El programa se compila con 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 incorporado, lo que hace posible escribir el código en unas pocas líneas. El código hexadecimal generado se graba en el chip MCU utilizando la placa de programación 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 tal como leemos un botón. Cada vez que la señal sube o baja, rebota y ejecuta el temporizador. Cada vez que el pin cambia de estado a otro, los valores de tiempo se almacenan en una matriz.

configuración de bits de respaldo
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 ve un pulso de 562.5 µs, el programa asume que es 0, y cada vez que ve un pulso de 2250 µs, asume que es 1. Luego, el programa lo convierte a hexadecimal.La señal entrante de la estación remota 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.

La sencilla instrucción de programación "Switch" se utiliza para reconocer y controlar los electrodomésticos.

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

construcción y prueba

En la Fig. 9 se muestra un diseño de PCB de tamaño completo para el sistema de automatización y en la Fig. 10 se muestra el diseño de sus componentes. Después de ensamblar el circuito en la PCB, colóquelo en una caja adecuada. El receptor IR1 debe fijarse en el panel frontal para permitir que el control remoto lo enfoque para activar cualquier carga conectada al respectivo relé. CON1 debe fijarse en la parte posterior de la caja. Los tres dispositivos de 230 V CA se conectan al circuito con dos cables y se colocan en su ubicación. El prototipo del autor, cableado en una placa de circuito impreso de propósito general, se muestra en la Fig. 11.

Diseño de PCB de tamaño completo
Fig. 9: diseño de placa de circuito impreso
Disposición de los componentes de la placa de circuito
Fig. 10: Diseño de ensamblaje de PCB
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



Si quieres conocer otros artículos parecidos a Automatización de bajo costo con PIC16F676 | proyecto electronico completo puedes visitar la categoría Electrónica.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir