TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: alexcarrero en 10 de Mayo de 2008, 13:21:48
-
SALUDOS
estoy tratando de hacer con una lcd de 16x2 y un16f84 un tacometro para mi corsa
y no puedo hacer que me salgal las RPM como yo quiero .
estoy utilizando el comando COUNT para contar los pulsos, les voy a poster el codigo para que medigan que etoy haciendo mal
Define LOADER_USED 1
include "modedefs.bas"
define osc 4
DEFINE LCD_DREG PORTA ' Setea el port de datos LCD
DEFINE LCD_DBIT 0 ' Setea el bit de comienzo de datos (0 o 4) si el bus es de 4-bit
DEFINE LCD_RSREG PORTB ' Setea el port LCD Register Select
DEFINE LCD_RSBIT 4 ' Setea el bit LCD Register Select
DEFINE LCD_EREG PORTB ' Setea el port LCD Enable
DEFINE LCD_EBIT 5 ' Setea el bit LCD Enable
DEFINE LCD_BITS 4 ' Setea el tamaño del bus LCD (4 o 8 bits)
DEFINE LCD_LINES 2 ' Setea el numero de lineas en el LCD
TRISB = %00000000
contar var word
RPM var word
temperatura var word
contar = 0
LCDOUT $FE,$0
PAUSE 500
lcdout $FE,1, "HOLA"
LCDOUT $FE,$0
pause 1000
LCDOUT $FE,1, "RPM CORSA"
LCDOUT $FE,$C0
loop:
count 4, 1000, contar
rpm = (contar * 60)
lcdout $FE, $C0, DEC (RPM), "RPM"
goto loop
end
-
Saludos, bienvenido al foro! :-)
y no puedo hacer que me salgal las RPM como yo quiero .
Puedes especificar qué aparece en el display?
Lo has simulado en proteus? O lo estás montando directamente en físico?
Ok nos leemos! :mrgreen:
-
ok lo estoy simulando en proteus y me sale 255 asi varie las pulsaiones
de entrada sinpre me salen 255
-
Saludos! :-)
Bueno lo probé en proteus modificándole unos detallitos y funciona de lo lindo!
Estoy simulando los pulsos con la fuente "dpulse"... cambias la frecuencia y cambian las RPM en el display... :-/
Ahí te dejo el archivo de proteus, el .bas y el .hex...
Ok nos leemos! :mrgreen:
-
saludos
muchas gracias mi pana funciona muy bien solo tiene un detallito que a vezes le sale otra M por Ej. RPMM, pero tranquilo yo veo como lo resuelvo, lo que si tevoy a gradeser es quel postes el codigo por aqui para poder ver las fallas que tenia tu sabes mi meta es aprender.
muchas gracias por todo amigo nos vemos :lol:
-
Hola amigos!
Paque no te salga la M demas coloca
lcdout $FE, $C0, DEC4 (RPM), "RPM"
Y con eso resuelves
Saludos
-
SALUDOS
hola amigo, estoy montando en fisico el indicador de RPM pero no sale nada,
como es mi primer proyecto con LCD,
no se si yo devo colocarle o bajarle un DRIVE al PIC para la LCD de 16x2.
espero tu pronta respuesta
y muchas gracias por todo pana :)
-
yo tuve una expericia con un lcd talves sea tu caso , cuando le ponia el divisor de voltaje no me salia nada hasta que lo deje directo a tierra. saludos
-
Saludos! :-)
Pues creo que el problema era lo que te había mencionado de especificar el puerto la instrucción count...
Aquí te dejo el código que hice que funciona perfecto, no sale la doble m que tú mencionas...
Aunque creo que el código ya te lo había dejado en el .rar anterior...
Bueno de todos modos aquí está:
define osc 4
DEFINE LCD_DREG PORTA ' Setea el port de datos LCD
DEFINE LCD_DBIT 0 ' Setea el bit de comienzo de datos (0 o 4) si el bus es de 4-bit
DEFINE LCD_RSREG PORTB ' Setea el port LCD Register Select
DEFINE LCD_RSBIT 4 ' Setea el bit LCD Register Select
DEFINE LCD_EREG PORTB ' Setea el port LCD Enable
DEFINE LCD_EBIT 5 ' Setea el bit LCD Enable
DEFINE LCD_BITS 4 ' Setea el tamaño del bus LCD (4 o 8 bits)
DEFINE LCD_LINES 2 ' Setea el numero de lineas en el LCD
contar var WORD
RPM var WORD
TRISB = %00000000
TRISA = %00010000
PORTA=0
PORTB=0
pause 500
lcdout $FE,1
lcdout $FE,2
lcdout "HOLA"
pause 1000
lcdout $FE,1
lcdout $FE,2
lcdout " RPM CORSA "
loop: count PORTA.4, 1000, contar
rpm = contar * 60
lcdout $FE,$C0
lcdout #rpm," RPM"
goto loop
END
En cuanto a lo que mencionas de que no te funciona en físico, recuerda ajustar el contraste de la pantalla con el potenciómetro en Vee...
Pero para ayudarte... podría colocar el esquemático del circuito que estás montando? Recuerda también que RW debe ir a tierra...
Ok por ahora es todo, nos leemos! :mrgreen:
-
SALUDOS
ya lo hice funcinar en fisico lo monte en el protoboard y lo instale en mi corsa y funciona bien bien mejor dicho super bien ahora quisiera mostrar por la LCD la temperatura del motor que circuito me sirve para acondicionar la señal de entrada al PIC 16F877 o el 16F88. :-/
-
Saludos! Qué bien que terminaste tu proyecto de las RPM...
Sería bueno que abrieras otro hilo con el segundo proyecto, así otros podrán también verlo y ayudarte...
En lo que abras el hilo te respondo, pero deberías empezar por describir qué sensor de temperatura vas a usar...
Ok nos leemos! :mrgreen:
-
hola, una pregunta para Alex, ¿en donde conecto el circuito al corsa? :mrgreen:
-
hola en uno de los cables del sensor de posicion del sigbueñal en cualquiera de los dos te sirve
saludos
-
Me ayudan a modificar el programa para mi clio??con permiso de Alex por supuesto. Que tengo qeu hacer?
-
Me ayudan a modificar el programa para mi clio??con permiso de Alex por supuesto. Que tengo qeu hacer?
Como modo de broma si lo quieres para clio solo tienes que cambiar esta parte
lcdout " RPM CORSA "
por
lcdout " RPM CLIO "
Y LISTO
Saludos y estamos en contacto.
Atten. Alexander Santana.
Venezuela-Barcelona.
-
Es justamente lo que quiero hacer, pero quiero que me digan con que programa lo modifico, como lo compilo....Para como ir agarrandole la mano.
-
Me ayudan a modificar el programa para mi clio??con permiso de Alex por supuesto. Que tengo qeu hacer?
solo tienes que cambiar esta parte
lcdout " RPM CORSA "
por
lcdout " RPM CLIO "
Y LISTO
:D :D :D
Saludos Marcelo! Ese soft está compilado con el Pic Basic Pro, pero podrías usar cualquier compilador de basic y adaptar algunas expresiones.
Ok nos leemos! Exito con tu proyecto! :mrgreen:
-
Gracias. Ya veremos..
-
Che que bueno, el codigo, re sencillo...
Haberlo encontrado antes...
Yo como necesito hacer mas cosas con el PIC
- Tiene seis tareas a cumplir y un maximo de 200ms para cada una
y se habilitan segun se selecciona.
Use la estrategia de RCIN en Proton PIcBasic, bien a lo COBOL de los años 80!!)
Pero tuve que usar WORDs para metere el denominador de 60000. Un bajon.
Proba enviando esto antes de mostrar las RPM
print at X,Y, rep 32\16
Naturalmente X,Y es donde lo tengas que mostrar normalmente.