Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

07/04/2012 #1


Lectura de un potenciometro en LCD.(PIC16F628A)
Hola.

Me gustaria que me ayudaran con una practica que consiste en mostrar en un lcd la lectura de el valor (en porcentaje) de un potenciometro.
Utilizo el PIC16F628A y hasta ahora he intentado con la instruccion POT,conectando un capacitor de .1uf,el cual se carga y descarga utilizando el potenciometro para regular la corriente que circula,entonces a mayor resistencia el capacitor tarda mas tiempo en cargarse, y la PIC da un valor alto o si se gira el potenciometro a la minima resistencia, el capacitor se cargara mas rapido y la variable dara cero.
He armado el circuito requerido,pero se supone que el potenciometro al estar a su maximo en el LCD marque 255 y al minimo 0, pero al mover el potenciometro va de 0 hasta 255, esto sin haber girado el potenciometro ni a la mitad de su valor.
Haber si me pueden ayudar a que marque el 255 cuando este a su maxima resistencia.Adjunto el circuito y el programa empleado.

Gracias de antemano.
07/04/2012 #2

Avatar de lpnavy

ponle en VCC y el GND al LCD ademas te falto los ":" despues de la etiqueta de inicio "medir"



dato VAR BYTE

medir:
POT portb.0,255,dato
LCDOUT $FE, 1," Rango= "
LCDOUT, #dato
PAUSE 100
GOTO medir
END
07/04/2012 #3


Gracias por la respuesta lpnavy.
Mira ya habia tomado en cuenta eso de los dos puntos y tambien la alimentacion del LCD pero de igual manera no funciona.

Gracias.
07/04/2012 #4

Avatar de lpnavy

revisa que tengas bien instalado el proteus, envia tu archivo DNS y el codigo para descartarte fallas
07/04/2012 #5


Gracias por la respuesta lpnavy.

El circuito lo estoy probando en proteus y tambien fisicamente,el resultado es el mismo.
No creo que este mal proteus.
Archivos Adjuntos
Tipo de Archivo: zip POT.zip (14,4 KB (Kilobytes), 237 visitas)
07/04/2012 #6


meneypro dijo: Ver Mensaje
Gracias por la respuesta lpnavy.

El circuito lo estoy probando en proteus y tambien fisicamente,el resultado es el mismo.
No creo que este mal proteus.

Hola...A mí de esta forma me funciona.
Device = 16F628A
All_Digital= true
Config INTRC_OSC_NOCLKOUT, WDT_OFF, LVP_OFF, BODEN_OFF, CP_OFF,PWRTE_OFF,MCLRE_OFF
' OPTION_REG.7=0
Declare Xtal= 4
Declare LCD_Type 0
Declare LCD_RSPin PORTA.4 'RS en RB1
Declare LCD_ENPin PORTB.3 'E en RB3
Declare LCD_DTPin PORTB.4 'Selecion del port B
Declare LCD_Interface 4 'Modalidad 4 bits
Declare LCD_Lines 2 '2 linea
Dim dato As Byte

medir:
Pot PORTB.0,255,dato
Print At 1,1,"RANGO="
Print @dato, " "
DelayMS 100
GoTo medir
End



Saludos.

Ric.
Archivos Adjuntos
Tipo de Archivo: zip POT.ZIP (7,5 KB (Kilobytes), 110 visitas)
07/04/2012 #7

Avatar de lpnavy

a mi me funciona bien, y si lo pruebas fisicamente fijate en los fuses que esten bien configurados a la hora de grabarlo al micro ya que puede acrear errores y no te ande el pic. te dejo la modificacion que le hice.
Archivos Adjuntos
Tipo de Archivo: rar POT2.rar (14,0 KB (Kilobytes), 217 visitas)
07/04/2012 #8


---------- Actualizado después de 5 minutos ----------

Hola.

Ricbevi,no me habia dado cuenta que adjuntaste el circuito y el archivo hex,lo probe y funciono de maravilla.Me podrias decir cual software de programacion utilizas?
Sabes cual era el error en mi programacion?

Ipnavy con tu circuito la lectura es mas exacta pero tengo el mismo problema de que al estar a 41% el potenciometro el lcd ya marca 255.

Ahora una duda mas, como creen que se tenga que hacer para que en el LCD se muestren valores de 0 a 100 y no de 0 a 255.Me han dicho que con un calculo pero en realidad lo desconozco.


Gracias a ambos.
07/04/2012 #9

Avatar de lpnavy

pues sencillo solo cambia el 255 por un 100 y listo ya que seria tu valor maximo. y Ricbevi usa PROTON en ves del compilador de Microstudio.
08/04/2012 #10
Moderador

Avatar de D@rkbytes

meneypro dijo: Ver Mensaje
Hola.

Me gustaria que me ayudaran con una practica que consiste en mostrar en un lcd la lectura de el valor (en porcentaje) de un potenciometro.
Utilizo el PIC16F628A y hasta ahora he intentado con la instruccion POT,conectando un capacitor de .1uf,el cual se carga y descarga utilizando el potenciometro para regular la corriente que circula,entonces a mayor resistencia el capacitor tarda mas tiempo en cargarse, y la PIC da un valor alto o si se gira el potenciometro a la minima resistencia, el capacitor se cargara mas rapido y la variable dara cero.
He armado el circuito requerido,pero se supone que el potenciometro al estar a su maximo en el LCD marque 255 y al minimo 0, pero al mover el potenciometro va de 0 hasta 255, esto sin haber girado el potenciometro ni a la mitad de su valor.
Haber si me pueden ayudar a que marque el 255 cuando este a su maxima resistencia.
Gracias de antemano.
Saludos.
En este ejemplo que adjunto en PICBASIC Se muestra el porcentaje de la posición del potenciometro.
Si quieres que mida de 000 a 255 solo debes omitir la fórmula de mi ejemplo,
y mostrar el valor directo de la variable. Por ejemplo: DEC3 B0
Espero te sirva de ayuda.

Suerte y hasta luego.
Archivos Adjuntos
Tipo de Archivo: rar 16F628A PBP_POT.rar (17,2 KB (Kilobytes), 233 visitas)
08/04/2012 #11


meneypro dijo: Ver Mensaje
---------- Actualizado después de 5 minutos ----------

Hola.

Ricbevi,no me habia dado cuenta que adjuntaste el circuito y el archivo hex,lo probe y funciono de maravilla.Me podrias decir cual software de programacion utilizas?
Sabes cual era el error en mi programacion?

Ipnavy con tu circuito la lectura es mas exacta pero tengo el mismo problema de que al estar a 41% el potenciometro el lcd ya marca 255.

Ahora una duda mas, como creen que se tenga que hacer para que en el LCD se muestren valores de 0 a 100 y no de 0 a 255.Me han dicho que con un calculo pero en realidad lo desconozco.


Gracias a ambos.
Uso como te dijeron Proton y a mi también me falla tú simulación disparándose después de la mitad la lectura a fondo de escala. Como ya te aclararon cambia Pot PORTB.0,255,dato por Pot PORTB.0,100,dato para tener una escala de 0 a 100 en vez de 0 a 255.
En mí simulación sacada de la ayuda del Proton el extremo del potencio metro no va a la alimentación ya que esto afectaría a forma en que mide la función POT y los valores o del potencio metro o del capacitor lo altere de 100nF a 75nF o el pote de 10K a 7K5 para mayor exactitud en la medición.

Saludos.

Ric.
12/04/2012 #12


Muchas gracias a todos por su ayuda.
20/07/2016 #13


Hola a todos buscando informacion sobre el tema me encontre con este post quisiera conectarle a este circuito un rele , que se active al llegar a determinado valor de lectura en el potenciomtero por ejemplo al llegar al 50% se active el rele saludos
20/07/2016 #14
Moderador

Avatar de D@rkbytes

¿Y cuál es el problema?
20/07/2016 #15


De los pines sobrante del pic utilizarlo para activar un rele en que parte del codigo pudiera insertar la linea de codigo para activar el rele cuando el poteciometro llegue a determinado valor leido o ejemplo 50% , veo que tu mismo lo agregaste , saludos
20/07/2016 #16

Avatar de ruben90

con una sentencia if lo logras,
Código:
if(valor_leído == valor) salida_pic = 1;
                    else salida_pic = 0;
20/07/2016 #17
Moderador

Avatar de D@rkbytes

Pues si se puede. Nada más tienes que hacer la comparación y actuar en consecuencia.

ruben90 dijo: Ver Mensaje
con una sentencia if lo logras,
Código:
if(valor_leído == valor) salida_pic = 1;
                    else salida_pic = 0;
Sería mejor hacer una histéresis por software para evitar una conmutación errática cuando la lectura esté en la transición.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.