Autor Tema: leer un pin y desplazamiento de textos en lcd  (Leído 13035 veces)

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

Desconectado yuhe

  • PIC12
  • **
  • Mensajes: 76
leer un pin y desplazamiento de textos en lcd
« en: 18 de Agosto de 2007, 10:40:59 »
Hola amigos me dirijo de nuevo a usteds para realizaros dos preguntuas o mejor dicho dos dudas.
PRIMERA : como es para leer un pin que esta conectado a un encoder de un motor de dc para que cuando cuente ciertos pulsos me haga cambios de giros
SEGUNDA : como se hace para que los textos se desplacen por las lcd de derecha a izquierda o de izquierda a derecha etc
gracias amigos.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #1 en: 18 de Agosto de 2007, 11:15:57 »
Hola la primera puedes contar pulsos con COUNT o por ahi tambien con PULSIN, Sobre el desplazamiento puedes usar la instruccion LCDOT$FE, $1C  o bien la instruccion LCDOUT$FE, $18 dentro de un ciclo for para que se desplace

El sentido de desplazamiento no sabria decirte bien porque cuando uso LCDOUT$FE,$1C, en proteus va de izquierda a derecha, pero en la realidad con mi lcd va al reves de derecha a izquierda y viceversa con $18. Esto es si usas PBP
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado yuhe

  • PIC12
  • **
  • Mensajes: 76
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #2 en: 29 de Septiembre de 2008, 09:16:34 »
Hola navaismo ,me podrias poner un ejemplo? pues lo he estado intentado y no lo logro , te lo agradeceria un monto  gracias

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 664
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #3 en: 29 de Septiembre de 2008, 12:19:48 »
hola yube.

Aca te dejo un codigo hecho en proton ya funcionando.

Device = 16F84A  'ASIGNA EL TIPO DE PIC A USAR EN ESTE CASO PIC16F877A
                XTAL = 4  'INDICA QUE EL CRISTAL ES DE 4MHZ
Dim i As Byte
       
'...................................ASIGNACION DE PINES AL LCD.......................................................
        LCD_DTPIN = PORTB.4
        LCD_RSPIN = PORTB.0
        LCD_ENPIN = PORTB.2
        LCD_LINES = 2
        LCD_INTERFACE = 4
        Low PORTB.1
Repetir:
        For i = 1 To 16
        Print $fe,1
        Print At 1, i, "Astrocar"
        Print At 2, i, "Saludos"
        DelayMS 50
        Next i
        GoTo Repetir

Para esclarecer mas el caso aca te dejo la simulacion completa en proteus para que veas como desplaza el mensaje en la lcd
       
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #4 en: 29 de Septiembre de 2008, 14:58:01 »
Es bueno el ejemplo en Proton pero YUHE lo estaba haciendo en PBP y como sabes en PBP no podemos poner indices por eso se usa el $1C y el $18 que son comandos del LCD
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado yuhe

  • PIC12
  • **
  • Mensajes: 76
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #5 en: 29 de Septiembre de 2008, 18:19:06 »
ENTONCES ASTROCAR TU EJEMPLO EN PBP COMO SERIA??


Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #6 en: 29 de Septiembre de 2008, 18:25:30 »
FOR C=0 TO 22
LCDOUT $FE,$C0
lcdout $fe,$18, "Hellloooo!!!"  'Puedes cambiarlo por el $18 por $1C haber que pasa
PAUSE 600
NEXT C
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado yuhe

  • PIC12
  • **
  • Mensajes: 76
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #7 en: 29 de Septiembre de 2008, 19:26:41 »
gRACIAS NAVAISMO DE NUEVO   :o  YA ME DA VERGUENZA HASTA PREGUNTAR TANTO   PERO PODRIAS EXPLICARME  ESTE PROGRAMA? EL QUE ME AS PUESTO ANTES
ESQUE QUIERO ENTENDERLO LO MAS FACIL SERIA COPIARLO Y PUNTO PERO QUIERO ENTENDERLO  POR EJEMPLO PORQUE PONES ESTO  : FOR C=0 TO 22  Y LUEGO  LCDOUT $FE,$C0  Y PROMETO NO SER MAS PESADO GRACIAS  :P

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #8 en: 29 de Septiembre de 2008, 20:27:29 »
Hola no es pesades, siempre es bueno quedar claros con las dudas. BUeno aqui vamos:

Primero que nada quisiera decirte que le pierdas el miedo a los LCD's muchos dicen que si los tiempos que si el backlight etc. Los tiempos se refieren a la escritura entre mensaje y mensaje, a las intrucciones enviadas y son manejadas por el compilador, solo hay que poner una pausa de 1 segundo al inicio del programa para garantizar que se inicialice bien el LCD. El backlight es un LED que no todos los LCD's poseen para verlos con mayor claridad en el dia o en la noche genralmente basta con una resistencia de 100ohms a tierra en la terminal correspondiente para no quemarlo. Puede ser tratado com un PWM. La libreria para manejar los LCD es compatible con controladores tipo HITACHI 44780, quien es el que hace todas las operaciones, como sacar las letras, cambiar lineas limpiar etc.

Una conexion Tipica de un LCD es la siguiente con un 16f84 y usando PBP:


Vamos a empezar describiendo lo que es cada pin -los pines pueden cambiar con respecto al fabricante-

PIN1 --- VSS    --- Conexion a Tierra en nuestro sistema
PIN2 --- VDD    --- Conexion a VCC = 5V en nuestro Sistema
PIN3 --- VEE/Vo -- Sirve para controlar el Contraste del LCD, puede ser conectado a GND.
PIN4 --- RS      --- Una de las lineas de control del LCD
PIN5 --- R/W    --- Linea de control nos permite Leer o Escribir en el LCD. Puede ir a GND si solo escribes en el LCD

PIN6 --- E       --- Enable, Habilita el LCD
PIN7-14- Bus de datos- Cuando Usamos Interface a 8 bits se usan todos, cuando usamos interface a 4 bits se usan los ultimos 4.

PIN15* -- LED+ -- Anodo del Led backlight
PIN16* -- LED- -- Catodo del Led backlight

* En algunos LCD cambia, verifica el datasheet del LCD.

A grosso modo la comuicacion 8 bits es mas rapida que la de 4 bits, los tiempos son menores aunque conlleva a un uso mayor de pines.

Como habiamos comentado los LCD tienen un controlador interno, lo que hacemos es mandarle las instrucciones correspondientes para que despliegue texto, limpie y otras funciones. En el manual podras ver la tabla siguiente que posee los comandos mas usados.

Command              Operation
 
$FE, 1                  Clear display
$FE, 2                  Return home (beginning of first line)
$FE, $0C              Cursor off
$FE, $0E              Underline cursor on
$FE, $0F              Blinking cursor on
$FE, $10              Move cursor left one position
$FE, $14              Move cursor right one position
$FE, $C0              Move cursor to beginning of second line
$FE, $94              Move cursor to beginning of third line
$FE, $D4              Move cursor to beginning of fourth line

Como podras ver son comandos muy usados, de ahi que la mayoria usemos en nuestros programas. INvestigando por aqui encontre que los comandos:

$FE, $1C y $FE,$18 mueven el texto de izquierda a derecha o viceversa.

Tambien los LCDs poseen una memoria llamada CGRAM en la cual puedes escribir tus propios caracteres o simbolos por ejemplo este programa lo que hace muestra un simbolo similar al de Microchip en un LCD de 16x2 con ayuda de la CGRAM

Código: FreeBasic
  1. Pause 1000
  2.                
  3. '//////////////// Creacion del logo en 6 Partes ////////////////////
  4. lcdout $fe,1 ' limpias el LCD
  5. lcdout $fe,64 ' comienzas a escribir en la posicion 64 de la CGRAM
  6. LCDOUT 0 ,1 ,2, 4 ,14 ,15 ,31 ,0      'Caracter 1 -- Posicion 0
  7. LCDOUT 30 ,31 ,28, 12 ,12 ,6 ,2 ,0    'Caracter 2 -- Posicion 1
  8. LCDOUT 0 ,0 ,0, 16 ,0 ,8 ,8 ,0        'Caracter 3 -- Posicion 2
  9. LCDOUT 0 ,1 ,19, 15 ,7 ,3 ,1 ,0       'Caracter 4 -- Posicion 3
  10. LCDOUT 17 ,19 ,31, 31 ,31 ,31 ,31 ,0  'Caracter 5 -- Posicion 4
  11. LCDOUT 2 ,18 ,16, 28 ,24 ,16 ,0 ,0    'Caracter 6 -- Posicion 5
  12. LCDOUT $fe,1
  13.  
  14. main
  15. lcdout $fe,1,0,1,2    'Limpiamos y mostramos los 3 primeros caracteres
  16. lcdout $fe,$c0,3,4,5  'Saltamos a la segunda linea y mostramos los otros 3 caracteres
  17. pause 500
  18. goto main

Eso lo puedes hacer usando programas que estan aquien el foro para crear caracteres, bien de vuelat a lo que no interesa, sobre la duda del programa lo que hace es lo siguiente

Cuando me meti a ver como se movian los textos en un LCD al poner el comando $1C o $18 no veia que pasaba si lo hacia o no, quizas no es la mejor forma pero solo asi yo pude conseguir ver el barrido metiendo el FOR por eso:

Código: FreeBasic
  1. FOR C=0 TO 22 ' Barremos 22 caracteres o mas segun el codigo original
  2. LCDOUT $FE,$C0 ' AQui me pase a la segunda linea porque queria que saliera ahi
  3. lcdout $fe,$18, "Hellloooo!!!"  'Puedes cambiarlo por el $18 por $1C haber que pasa
  4. PAUSE 600 'Pausa para ver el mensaje con calma
  5. NEXT C ' siguiente C

La mejor manera seria hacerlo como en Proton o en MKB pero PBP no permite indices o nunca encontre como pero esa es una forma de verlos.

Si bien no es dificl usar un LCD te recomiendo que verifiques siempre el PINOUT de tu LCD para verificar que este bien conectado porque suelen descomponerse muy rapido.

Espero te sirva Saludos.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado yuhe

  • PIC12
  • **
  • Mensajes: 76
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #9 en: 30 de Septiembre de 2008, 08:42:23 »
OLE OLE  OLE Y OLE algo asin era loq ue yo queria una explicacion desde 0 muchisimas gracias navaismo muchisimas gracias   eso es exactamente lo que queria y algo asin es lo que tambien necesito para la analogica  que me expliquen como as hecho con los lcd ( si pudieras explicarmelo) .
si algun dia navaismo vienes por jerez de la frontera llamame que te invitare a un vinito fino la ina y a un autentico gazpacho andaluz :-/ :-/

posdata: me podrias hacer un minitutorial como el que has hecho para el lcd pero para analogica??  :) gracias de nuevo y lo dicho cuando vengas por jerez de la frontera (andalucia) contacta conmigo
un abrazo amigos :)

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #10 en: 30 de Septiembre de 2008, 15:26:25 »
De nada YUHE, con lo del Vino pues vaya que lo veo dificil soy de Mexico, y para viajar a España tendria que vender parte de mi vida jajaja.

Con respecto a lo que me pides, a que te refieres con la parte analogica? a querer mostrar variables medidas del ADC interno del PIC? porque no entendi muy bien.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado yuhe

  • PIC12
  • **
  • Mensajes: 76
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #11 en: 30 de Septiembre de 2008, 19:26:58 »
pues seria   saber trabajar con los comparadores porejemplo del 16f628 o los del 12f675 etc a eso me refiero saber algo de programacion analogica , por ejemplo para poder medir una bateria de 12v (haciendo un divisor de tencion porsupuesto) y que cuando este bajo pues lo ponga en carga o de un aviso nose  :-/

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #12 en: 30 de Septiembre de 2008, 19:37:51 »
Hasta ahora no he trabajdo con los comparadores de los PICs solo con los ADC's imagino debe ser similar para informacion de los ADC's busca aqui en el subforo un post de MARIO esta muy bien explicado una vez que lo leas comentanos tus dudas.

Y ya pudiste hechar andar el LCD y desplazar Texto?
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado yuhe

  • PIC12
  • **
  • Mensajes: 76
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #13 en: 30 de Septiembre de 2008, 20:13:56 »
Si ya logro desplazar mensages de izquierda a dercha y al reves pero  me surge una cosa , nose porque pero se me corta la frase y se pasa a la otra linea ¿porque? ¿cuantos caracteres puedo poner por linea ?  como ago para que no se corte o se junte las frases? :?
haaaaaa!!!! otra coas aque te refieres cuando dices esto:        FOR C=0 TO 22 ' Barremos 22 caracteres o mas segun el codigo original   ¿¿¿¿que borramos 22 caracteres???
« Última modificación: 30 de Septiembre de 2008, 21:34:00 por yuhe »

Desconectado CoreMain

  • PIC10
  • *
  • Mensajes: 26
Re: leer un pin y desplazamiento de textos en lcd
« Respuesta #14 en: 04 de Agosto de 2009, 11:52:36 »
Citar
...Eso lo puedes hacer usando programas que estan aquien el foro para crear caracteres...

Hola, gracias por la información, y me preguntaba, qué programa especificamente usas para crear caracteres personalizados, es decir como generas:

LCDOUT 0 ,1 ,2, 4 ,14 ,15 ,31 ,0      'Caracter 1 -- Posicion 0

Gracias!
_______________________________
Over the Hills and Far Away...


 

anything