SE – uC: PIC16F84A – Proyecto Final

Requisitos del Programa

El proyecto final consiste en un sistema que controle el giro de una cámara de vigilancia, utilizando cuatro sensores infrarrojos para detectar movimiento, haciendo que la cámara gire recorriendo la menor distancia al sensor que se activó. El uC debe dormir cuando no exista actividad en algún sensor.

El sistema debe quedar de la siguiente manera:

Diseño Hardware

El primer sensor (S0) se utilizara para calibrar el sistema a su posición inicial cada vez que el sistema sea encendido, para asegurar un punto inicial de partida e ira conectado al pin RB3. El resto de los sensores (S1-S4) se utilizaran para detectar movimiento en los cuatro puntos establecidos en el diagrama general, estos estarán conectados en los pines RB4-RB7 correspondientemente.

Los lasers tendrán independencia total ya que cuentan con sus propias baterías. Los fototransistores nos darán “0” en su estado normal y “1” cuando sean interrumpidos.

El uC debe dormir al estar inactivo el sistema, utilizaremos un LED para indicar si se encuentra activo el cual ira conectado en el pin RA4. Para despertar el uC debemos generar una interrupción externa cuando algún sensor se active, debido a que las interrupciones del PORTB están bugeadas tendremos que generar la interrupción por el pin RB0/INT utilizando tres compuertas “OR” quedando la siguiente ecuación: RB0\INT = S1+S2+S3+S4, se utilizara el integrado 74LS32.

Utilizaremos un motor de pasos bipolar de dos bobinas, los cuales son cuatro cables de conexión. Para controlar este tipo de motor se utiliza un puente H por cada bobina, para facilitarnos esta tarea utilizaremos el driver LM293D el cual brinda una corriente de 600mA por canal y cuenta con cuatro canales. El voltaje en las bobinas será de Vs=3v y el voltaje lógico será de Vss=5v. Los cables de las bobinas (B0-B3) irán conectado a los pines RA0-RA3 correspondientemente.

Con todo lo comentado anteriormente procedemos a realizar el diagrama esquemático quedando de la siguiente manera:

Diseño Software

Lo primero a desarrollar son las rutinas para controlar el motor de pasos bipolar las cuales estarán en el archivo MOTOR_PAP.INC. Su diagrama de flujo es el siguiente:

Ahora procedemos a realizar el diagrama de bloque y flujo del programa principal:

Los registros y banderas que se utilizaran son los siguientes:

Todos los cálculos del sistema se realizaran en la rutina de interrupción, el diagrama de bloque es el siguiente:

Considerando todos los detalles el diagrama de flujo completo de la interrupción es el siguiente:

Código Fuente

Continuar leyendo…

Modulo Receptor Infrarrojo v1.0

El día de antier mientras navegaba encontré un blog llamado “Atomsoft”, donde se han publicado proyectos sobre electrónica y embebidos, hay varias publicaciones muy interesantes. Lo que me llamo la atención fue que había realizado módulos de varios circuitos o componentes que se utilizan frecuentemente en proyectos con microcontroladores entre ellos son: diodos emisores de luz, botones, receptor infrarrojo, etc.

La ventaja es que los módulos son básicamente “Plug & Play” y te ahorran mucho tiempo en tener que armarlos una y otra vez en el tablilla de pruebas para cada proyecto que se realice, aparte de ser muy fácil y económicos de armarlos. Los módulos pueden ser diseñados para un microcontrolador en específico, pero es mejor hacer el módulo de forma genérica.

Actualmente estoy trabajando en un proyecto de un dispositivo receptor infrarrojo para uso multimedia, y me decidí a realizar varios módulos para pruebas.

Continuar leyendo…

Comunicación Infrarroja