16f627 comparadores analogicos
| #1 16f627 comparadores analogicos |
| #2 |
|
jorgeluiz
|
Acho melhor voce usar dois comparadores de tensao como 741, e reles. Sai mais menos dispendioso. Com o lm35, voce devera usar fonte simetrica nos operacionais, porque a tensao e' muito baixa.
|
|||||||||||
|
|
||||||||||||
| #3 comparadores analogicos |
|
pablomadoery
|
quiero agradecer a toda la comunidad del foro por la poca ayuda recibida, lo que me permitio sentir la frustracion de que las cosas no anden y el increible aire de victoria de que funcione. Al parecer no se sabe mucho del tema de los comparadores analógicos sobre todo de este pic 16f627, o quizas no di demasiado tiempo a respuestas o quizas se soluciona este problema generalmente con otro pìc y un conversor analogico digital. Mas alla de las ironias aca dejo el programa (ya probado que funciono) para que otros infelices como yo sepan mas o menos como se hace. quiero destacar que segun mi opinion microchip deberia poner en sus hojas de datos especificaciones basicas de como se conectan los pic a algunos dispositivos. por dar un ejemplo al principio que use una configuracion de los comparadores que tenia las salidas directamente conectadas al exterior del pic, en la hoja de datos decia que una de las salidas era open drain , es decir colector abierto,, eso que significa, solo dios lo sabe,,,,,,,,sale un uno ? sale un cero ?,,,,,, hay que conectar una resistencia a tension y medir de alli ?...... una de las salidas andaba bien pero la otra no sabia como conectarla por ejemplo a un buffer para desp activar un rele. En fin despues termine usando interrupciones ( en microchip ponen un solo ejemplo,,,,,,,,,,,,,,,,, uno........................con interrupciones).
aca esta el programa que anda con la explicacion: Para configurar dos comparadores independientes cargamos en el CMCON con 0x04, es decir 1 0 0 en CM2 CM1 CM0 respectivamente. Conectamos la salida del LM35 a RA0 y RA1. En RA3 colocamos con los potenciómetros la mínima tensión de referencia y en RA2 la máxima. Leemos de C1OUT para comandar la lámpara y de C2OUT para el ventilador. Cuando se baja de la temperatura mínima de referencia se enciende la lámpara por RB0 y cuando se supera la maxima se apaga la lámpara y se enciende el ventilador por RB1 continuando con este ciclo indefinidamente. Para ello coloca tambien en el CMCON un cero en C1INV y un 1 en C2INV. El programa en assembler utilizando interrupciones es el siguiente: list p=16f627 include p16f627.inc aux0 equ 0x30; auxiliares para producir el retardo aux1 equ 0x31; aux2 equ 0x32; org 00 goto start retardo movlw .26, retardo movwf aux2 retar movlw .249 movwf aux1 reta movlw .255 movwf aux0 ret decfsz aux0,1 goto ret decfsz aux1,1 goto reta decfsz aux2,1 goto retar RETURN lampara bsf PORTB,0; subrutina enciende lámpara call retardo btfss CMCON,7; se fija si hay un uno en el comparador que ;se encarga del ventilador goto lampara bcf PORTB,0 ; si es asi apaga lampara goto vent ; va a ventilador bcf PIR1,CMIF; limpia bandera de interrupcion retfie; restaura GIE (interrupciones) vent bsf PORTB,1; subrutina enciende ventilador call retardo btfss CMCON,6; se fija si hay un uno en el comparador que se encarga de lámpara goto vent; si no hay uno en lámpara sigue en vent bcf PORTB,1; si hay un uno apaga ventilador goto lampara; y va a lámpara bcf PIR1,CMIF; limpia bandera de interrupcion retfie; habilita interrupciones (GIE) start movlw 0x04; configura los comparadores (ver explicación) movwf CMCON bsf CMCON,5 bcf CMCON,4 bsf STATUS,RP0 movlw 0x0f; RA0,1,2 Y 3 son estradas analógicas movwf TRISA movlw 0X00 movwf TRISB; RB0-RB7 salidas digitales bcf STATUS,RP0 bcf PIR1,CMIF; habilita interrupciones bsf STATUS,RP0 bcf PIE1,CMIE bcf STATUS,RP0 bcf INTCON,PEIE bcf INTCON,GIE goto lampara; comienza el ciclo en lámpara end y aca esta el programa que hice al principio que no sabia como conectar el open drain: list p=16f627 include p16f627.inc aux0 equ 0x30 aux1 equ 0x31 aux2 equ 0x32 org 00 goto start retardo movlw .6 movwf aux2 retar movlw .217 movwf aux1 reta movlw .255 movwf aux0 ret decfsz aux0,1 goto ret decfsz aux1,1 goto reta decfsz aux2,1 goto retar RETURN start movlw 0x06 movwf CMCON bsf CMCON,4 bcf CMCON,5 bsf STATUS,RP0 movlw 0x07 movwf TRISA bcf STATUS,RP0 aca movf CMCON,F call retardo goto aca end ( este es sin interrupciones , el programa se queda haciendo nada en "aca" y se conectan las salidas directamente del pic) aca hay mas datos del proyecto y de las hojas de datos: Descripción general: El presente proyecto consiste en la realización de un sistema para el control de temperatura. Para llevarlo a cabo se hará uso de un microcontrolador 16f627. El sistema consiste básicamente en una pequeña caja que aloja en su interior un sensor de temperatura, un ventilador (cooler) y una lámpara. Además se utiliza un buffer para obtener corriente a la salida del pic. El mismo va acoplado a otro buffer que suministra la potencia para levantar los 5v a 12v y controlar el ventilador y el relé que maneja la lámpara. El sensor de temperatura es un LM35. Éste se encarga de entregar 10mv / ºC, los cuales son recibidos por el pic. El pic utiliza los comparadores analógicos y de acuerdo a los valores recibidos y los de referencia, manda la señal para encender el ventilador o la lampara. Los valores de referencia son introducidos desde el exterior mediante potenciometros, de esta forma con solo variar las referencias se puede conseguir que la camara se mantenga entre las temperaturas deseadas. El circuito básicamente es el siguiente: En lo que respecta a las alimentaciones, se requieren 220v para la lámpara y 12v para alimentar al buffer ULN2308. Gracias al regulador de 5v se consigue la tensión para el PIC. El ULN2308, además de estar conectado al ventilador, también lo está a un relé de 12v que controla la lámpara de la siguiente forma: (se usa un solo relé) Programación del pic 16f627: Para programar los comparadores analógicos del pic, se debe recurrir a la hoja de datos. dejo adjuntos todos los archivos |
|||||||||||
|
|
||||||||||||
| #4 Re: comparadores analogicos |
|
pepechip
Colaborador
|
pablomadoery escribió: quiero agradecer a toda la comunidad del foro por la poca ayuda recibida, lo que me permitio sentir la frustracion de que las cosas no anden y el increible aire de victoria de que funcione. Al parecer no se sabe mucho del tema de los comparadores analógicos sobre todo de este pic 16f627, o quizas no di demasiado tiempo a respuestas o quizas se soluciona este problema generalmente con otro pìc y un conversor analogico digital. Mas alla de las ironias aca dejo el programa (ya probado que funciono) para que otros infelices como yo sepan mas o menos como se hace. Yo te quiero agradecer a ti el aporte realizado, estaba buscando como utilizar los comparadores y localice su post. Saludos P.D. deveriamos de tomar ejemplo de Pablomadoery y postear como resolvimos nuestra duda. |
|||||||||||
|
|
||||||||||||
|
| Otros temas de interés | |
|---|---|
| Referencia CMOS | |
| voltaje de referencia | |
| Sobre referencia de optoacoplador. | |
| Tension de Referencia | |
| Tensión de referencia estable para pic 16F876A | |
| Foros de Electronica |
| ||
Cuestiones Elementales de Electrónica ||
Fuentes de alimentacion ||
Circuitos de radio ||
Diseño de circuitos en general || || Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión || || Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos || |
Contacto |
Acerca de |
Ayuda |
Normas de la Comunidad |
Privacidad |
Mapa de los foros
© Foros de Electrónica - Comunidad Internacional de Electrónicos
© Foros de Electrónica - Comunidad Internacional de Electrónicos

