Autor Tema: Como usar o comparador do 16F628 para detectar carga de bateria?  (Leído 7199 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ivan braga

  • PIC12
  • **
  • Mensajes: 77
Como usar o comparador do 16F628 para detectar carga de bateria?
« en: 26 de Febrero de 2007, 02:51:33 »
  Primeiramente gostaria dar parabens aos participantes, e me desculpem por escrever em meu idioma pois no Brasil é portugues mismo :D :D, porem tenho certeza que poderemos nos entender  :roll: :?: :!: ;-) e  como a maioria que vem aqui, tambem preciso da ajuda dos MESTRES que  aqui sempre socorrem os iniciantes como eu.
  Bom vamos a ideia, que tenho certeza servirá para os demais iniciantes, eu não sei se tem como vocês verificarem o tempo de conexão, se houver veram que são 11 horas e 30 minutos que passei lendo e apredendo o que sei com todos que já postaram neste forum.
  O que preciso é entender como se configura o comparador no pic16f628a, pois quero fazer um projeto onde preciso saber se a bateria está carregada ou precisando de carga, por exemplo, se já esta corregada acenderá um led verde, e se tiver que ser carregada acenderá um led vermelho. Seram 2 baterias, uma de 12V e outra de 4,5V.  A parte dos leds sei como fazer para o programa entender, só não sei como configurar os comparadores para ler a voltagem, imagino que deva ser como o comando POT, apartir de um divisor resistivo de tensão,  e que deva ser na PORTA, em que pino? e porque? Já fiz algumas coisas simples, então não quero o programa pronto pois assim não conseguiria aprender, e tambem não acho justo vir aqui perguntar como já vi pessoas fazendo, querendo tudo pronto, sem queimar nenhum neurona :mrgreen: (pensar um pouco).
  Se possivel quero realmente entender como funciona o COMPARADOR, tentei ler o datasheet, usando um software tradutor para portugues, porem a tradução precisa de interpretação e os termos tecnicos ficam muito esquisitos.
  Para que sirva de ajuda para outros companheiros, assim que esteja tudo pronto farei como outros fizeram, colocarei como exemplo em Ejemplos en PBP y PROTEUS.
 
  Desde já agradeço a todos.

  Ivan Braga
« Última modificación: 26 de Febrero de 2007, 03:20:15 por ivan braga »
"Mesmo o objeto mais inanimado tem movimento suficiente para ficar na sua frente e provocar um acidente."
"Incluso el objeto más inanimado tiene suficiente movimiento para interponerse en su camino y provocar un accidente."
"Even the most inanimate object has enough movement to stand in your way and cause an accident."

Desconectado hsen

  • PIC12
  • **
  • Mensajes: 84
Re: Como usar o comparador do 16F628 para detectar carga de bateria?
« Respuesta #1 en: 27 de Febrero de 2007, 02:10:34 »
Hola ivan braga:Ahí te dejo un código de un temporizador, el cual usa  un comparador del 16f628
como indicador de batería baja. Realmente,  lo usaba como sensor de temperatura puesto que tenia un ntc en serie con un potenciòmetro y el circuito no necesitaba mucha precisión. Ademas tiene un temporizador para calefaccionar unos calentadores, pero al principio está la parte  que te puede interesar.   
Espero que te sirva como ejemplo para configurar los comparadores.
Estuve intentando traducir el módulo comparador desde el datasheet 16f628 pero me va a llevar
mucho tiempo, espero en unos cuantos dias poder colgarlo en el foro.

 'Codigo:

PORTB=%00000000
'Hardware assignament
'---------------------
Valsensor var CMCON.7   ' Lee comparador 2 para bat baja    
                                      'port RA1 como entrada de +v bat
 LEDsensor var PORTB.7   'port indicador de bat baja


'Control de los comparadores 
'-------------------------------
CMCON=%00100101       'CM7 C2OUT salida (+) comparador2 (lectura solamente),
                      'CM6 C1OUT salida (+) comparador 1(lectura solamente),
                      'CM5 C2INV salida (-)   "    "   2,
                      'CM4 C1INV salida (-)   ""   "   1,
                      'CM3 Switch entrada comparador, no es relevante para
                      'modo de comparador 101

'Control de tension de referencia
'---------------------
VRCON=%11101100       '7VRE Habilitación de tension de referencia(1=on),
                      '6VRON habilitación de salida de VREF 
                      '(1=conectar la salida de VREF a RA2)
                      ' esto es  verdaderamente conveniente, así que lo utilizaremos
                      '5VRR VREF selección de rango(1=low rango)
                      '4 no usado(0)
                      'VR3)
                      'VR2)Setea la tensión de referencia
                      'VR1)1100 set 2.5v en rango bajo
                      'VR0)
                     
Pauseus 10      'retardo a tener en cuenta para activar VREF 
trisa=%11111111
trisb=%00000000         
Ledred var portb.0
Ledgreen var portb.1
inicio:
high Ledred
high Ledgreen
pause 5000
low Ledgreen
pause 1500
low ledred
 
 LEDsensor=Valsensor   ' usted  mejora una linea de código
if LEDsensor >0 then   'si la tensión del sensor sobrepasa los 2.5 v
                              'salta las siguientes líneas,(hasta ENDIF)
i var byte                ' declaro variable, la cual cuenta:
for i=1 to 60            ' N veces
pause 1000             ' esta, y la siguiente linea del programa
toggle ledred          ' invierte estado de Ledred
next i                 ' regresa a i
endif
end
« Última modificación: 27 de Febrero de 2007, 21:17:27 por hsen »
Un saludo desde Rocha (Uruguay)

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Como usar o comparador do 16F628 para detectar carga de bateria?
« Respuesta #2 en: 27 de Febrero de 2007, 02:51:17 »
Justamente acababa de leer el tema e iba a recomendar el código suyo HSEN. Si no recuerdo mal usted había realizado algo similar utilizando comparadores del µicro.

Se está haciendo mas participativo dentro del foro, ya cambiaron los papeles, ahora usted proporciona soluciones, siga asi.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado hsen

  • PIC12
  • **
  • Mensajes: 84
Re: Como usar o comparador do 16F628 para detectar carga de bateria?
« Respuesta #3 en: 27 de Febrero de 2007, 18:19:10 »
Hola Mario:Pasa que siento verguenza de participar el lado de ustedes que tienen un nivel tan alto.
Mis conocimientos son muy limitado, y antes de decir incoherencias prefiero callar y observar hasta
subir un poco mi nivel de conocimientos. GRACIAS POR EL ALIENTO

 
« Última modificación: 28 de Febrero de 2007, 22:31:12 por hsen »
Un saludo desde Rocha (Uruguay)

Desconectado ivan braga

  • PIC12
  • **
  • Mensajes: 77
Re: Como usar o comparador do 16F628 para detectar carga de bateria?
« Respuesta #4 en: 28 de Febrero de 2007, 03:19:07 »
Obrigado por sua resposta HSEN, porem ainda estou com algumas duvidas.
Desculpe pela estupidez, porem por mais que tente sem ajuda nenhuma fica dificil a compreensão do do datasheet. Estou tentando aprender  :mrgreen: :mrgreen: :D :D

Vou tentar me explicar por seu CODIGO.

Citar
Valsensor var CMCON.7   ' Lee comparador 2 para bat baja   
                                      'port RA1 como entrada de +v bat
 LEDsensor var PORTB.7   'port indicador de bat baja

então porque LEDRED- LEDGREEN
Citar
Ledred var portb.0
Ledgreen var portb.1
Qual informa brateria baixa(baja)??? PORTB.7  -  PORTB0  -  PORTB1
Desculpe, pois não entendi!!


Citar
CMCON=%00100101       'CM7 C2OUT salida (+) comparador2 (lectura solamente),
                      'CM6 C1OUT salida (+) comparador 1(lectura solamente),
                      'CM5 C2INV salida (-)   "    "   2,
                      'CM4 C1INV salida (-)   ""   "   1,
                      'CM3 Switch entrada comparador, no es relevante para
                      'modo de comparador 101

Referente ao modo comparador 101  (One Independent Comparator - CM2:CM0 = 101)
Essa configuiração é referente a um(1) ou a dois(2) comparadores?!



Você poderia explicar VRCON e CMCON??  :shock: :shock: :z) :z) :?:

Citar
VRCON=%11101100       '7VRE Habilitación de tension de referencia(1=on),
                      '6VRON habilitación de salida de VREF 
                      '(1=conectar la salida de VREF a RA2)
                      ' esto es  verdaderamente conveniente, así que lo utilizaremos
                      '5VRR VREF selección de rango(1=low rango)
                      '4 no usado(0)
                      'VR3)
                      'VR2)Setea la tensión de referencia
                      'VR1)1100 set 2.5v en rango bajo
                      'VR0)

Citar
Pauseus 10      'retardo a tener en cuenta para activar VREF 
trisa=%11111111
trisb=%00000000         
Ledred var portb.0
Ledgreen var portb.1
inicio:
high Ledred
high Ledgreen
pause 5000
low Ledgreen
pause 1500
low ledred
A parte do codigo acima é facil, essa eu compreeendo.

Na parte abaixo do codigo em rojo, bermejo(vermelho) é estou quase falando (espanhol)!!!! :-/ :-/  Tem mais uma duvida.


Citar
LEDsensor=Valsensor   ' usted  mejora una linea de código
Citar
if LEDsensor >0 then   'si la tensión del sensor sobrepasa los 2.5 v
                              'salta las siguientes líneas,(hasta ENDIF)
E se eu quiser uma voltagem maior ou menor, sei que quem comanda isso é VRCON, mais como configurar????

i var byte                ' declaro variable, la cual cuenta:
for i=1 to 60            ' N veces
pause 1000             ' esta, y la siguiente linea del programa
toggle ledred          ' invierte estado de Ledred
next i                 ' regresa a i
endif
end

Se for possivel você fazer uma demostração (schematic) no PROTEUS  seria mais facil a compreensão de sua AULA.

Desde já agradeço a paciencia.

Ivan Braga

"Mesmo o objeto mais inanimado tem movimento suficiente para ficar na sua frente e provocar um acidente."
"Incluso el objeto más inanimado tiene suficiente movimiento para interponerse en su camino y provocar un accidente."
"Even the most inanimate object has enough movement to stand in your way and cause an accident."

Desconectado hsen

  • PIC12
  • **
  • Mensajes: 84
Re: Como usar o comparador do 16F628 para detectar carga de bateria?
« Respuesta #5 en: 28 de Febrero de 2007, 19:53:29 »
Hola Ivan Braga:Ahí te dejo fichero de la simulaciòn en proteus.
En ese código trabaje hace mas de un año, no recuerdo totalmente el mòdo de configuracion de los comparadores,  voy a mirarlos detenidamente y cuelgo el post.
Mientras tanto puedes ver el circuito y la distribuciòn de los pines. El led "amarelo"es para ver cuando
actùa la salida del comparador, (estado alto, led apagado), En el led red iba un relay para activar calefactor en modo intermitente, dependiendo de la temperatua ambiente(sustituí el NTC por un potenciòmetro). Si interactùas con el pote verás que  segùn la tensión  entregada al pin RA1, este led se activará o no, en forma intermitente.
  Para ver este efecto, tener la precauciòn de stopear y activar el simulador, por que el còdigo está hecho para que al término de la temporizaciòn, no vuelva a ningún loop hasta no volver a energizar el pic.
Led green: ahì iba otro calefactor, el cual se activaba durante 5 o 6 segundos, creo (no estoy mirando el código)

P.D. Si a alguien no le funciona la simulaciòn, repetir la bajada del fichero, por que tuve que corregir un par de errores.
« Última modificación: 28 de Febrero de 2007, 22:38:03 por hsen »
Un saludo desde Rocha (Uruguay)

Desconectado hsen

  • PIC12
  • **
  • Mensajes: 84
Re: Como usar o comparador do 16F628 para detectar carga de bateria?
« Respuesta #6 en: 02 de Marzo de 2007, 01:56:31 »
Te saludo Ivan Braga:
Encontre en mi pc un minitutorial en ingles, que fué con el que hice, o copié
parte del código mencionado arriba.
Lo he estado estado traduciendo  para ver si te puede aclarar las dudas, te envío la primera parte para que
puedas adelantar camino En cuanto pueda traducir el resto te lo envìo,es posible que tenga algún error dado que esos programas traductores dejan mucho que desear, y para depurarlos hay que tener muchos conocimientos y no es mi caso.
Como nuestros idiomas son de origen latino, te serà mas fácil traducir  de español a portugues
que de ingles al mismo.
P.D. Ahora adjunté las dos partes.
« Última modificación: 04 de Marzo de 2007, 19:00:46 por hsen »
Un saludo desde Rocha (Uruguay)

Desconectado ivan braga

  • PIC12
  • **
  • Mensajes: 77
Re: Como usar o comparador do 16F628 para detectar carga de bateria?
« Respuesta #7 en: 03 de Marzo de 2007, 14:06:47 »
Gracias,  hsen.

Vou ler com atenção as informações que você deixou, e depois que compreender ou tiver mais duvidas as postarei. Obrigado

Ivan Braga
"Mesmo o objeto mais inanimado tem movimento suficiente para ficar na sua frente e provocar um acidente."
"Incluso el objeto más inanimado tiene suficiente movimiento para interponerse en su camino y provocar un accidente."
"Even the most inanimate object has enough movement to stand in your way and cause an accident."


 

anything