Autor Tema: Ayuda con LCD  (Leído 2014 veces)

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

Desconectado emmmr

  • PIC10
  • *
  • Mensajes: 4
Ayuda con LCD
« en: 05 de Diciembre de 2016, 21:30:05 »
Hola, quisiera pedirles su ayuda. Hice un programa con LCD que muestra carácteres, lo hice sin libreria. Ahora mi duda es como haria lo mismo pero con variables(voltaje, temperatura,etc).

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Ayuda con LCD
« Respuesta #1 en: 05 de Diciembre de 2016, 22:52:44 »
Normalmente vas a tener que convertir el numero a BCD. Lo voy a explicar con enteros.

Supongamos que tenes esto:

Variable = 183;

Si quisiera mostrar 183 en el LCD, deberia tener los caracteres '1' , '8' y '3'.
Si observas simplemente separamos unidades, decenas y centenas. Esto podria hacerlo de distintas formas, una es con restas sucesivas, la otra es con divisiones o modulos.

Si resto a variable de 100 en 100, hasta que sea menor a 100 y aumento en 1 cada vez que ocurra eso a una variable llamada centenas. Obtendria que centenas es igual a 1.
Eso me deja con el valor 83, si resto de 10 en 10 ahora. Podria hacerlo 8 veces. si incremento decenas, eso me queda en 8. Y el resto que es 3 son las unidades

Ahora esos son numeros, expresados en hexadecimal seria asi:

centenas = 0x1
decenas = 0x8
unidades = 0x3

Pero el LCD utiliza caracteres ASCII. Si buscas en google "ASCII Table" y abris una imagen te vas a dar cuenta que un '1' es igual a 0x31, un '9' es igual a 0x39
Por lo tanto si le sumo 0x30 a lo anterior me queda:

centenas = 0x31 = '1'
decenas = 0x38 = '8'
unidades = 0x33 = '3'

Ahora solo me resta enviarlo 1 por 1 al LCD, primero las centenas luego las decenas y finalmente las unidades.

De esa forma podes mostrar en un LCD tus variables. Para valores con coma se podria hacer algo parecido. Pero ya es mas complejo por su exponente.

Desconectado emmmr

  • PIC10
  • *
  • Mensajes: 4
Re:Ayuda con LCD
« Respuesta #2 en: 05 de Diciembre de 2016, 23:39:07 »
Gracias por la respuesta, entiendo tu respuesta. Lo que yo quiero realizar es un voltímetro, entonces no conocería el valor hasta una vez medido. En este caso como expreso el valor en el LCD.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Ayuda con LCD
« Respuesta #3 en: 05 de Diciembre de 2016, 23:49:34 »
Gracias por la respuesta, entiendo tu respuesta. Lo que yo quiero realizar es un voltímetro, entonces no conocería el valor hasta una vez medido. En este caso como expreso el valor en el LCD.

Por eso mismo, te estoy diciendo que tenes que crear una funcion que tome el valor calculado y lo pase a ASCII que seria la forma de representarlo y poder verlo en el LCD. Si pensas en solo darle 1 decimal, lo cual es suficiente para la mayoria de las cosas, podes aplicar el mismo metodo. Sabiendo el maximo que puede llegar suponente maximo es 300, resto de 100 en 100, luego de 10 en 10, luego de 1 en 1, luego de 0.1 en 0.1 y asi obtengo el valor que deseo.

Desconectado emmmr

  • PIC10
  • *
  • Mensajes: 4
Re:Ayuda con LCD
« Respuesta #4 en: 06 de Diciembre de 2016, 00:25:40 »
Gracias lo voy a intentar


 

anything