Go Down

Topic: Problema con LCD 20x4 [Solucionado] (Read 223 times) previous topic - next topic

SebasEC

Jul 27, 2017, 09:46 pm Last Edit: Jul 28, 2017, 01:33 am by SebasEC
Buenas a todos, ya busque por muchos lugares y no encuentro solución. Mi problema es que cuando conecto la pantalla lo único que sucede es lo de la siguiente imagen:



La pantalla esta conectada a una fuente externa, mientras que el arduino de momento funciona por usb ya que más adelante planeo alimentar todo con la fuente. También se está compartiendo el gnd de la fuente con el arduino.
El lcd tiene pines soldados por lo que la solución de "que hagan mal contacto los cables" me parece extraña aunque también podría ser, de momento quiero ver si puede ser otra cosa para no tener que desoldarlos y soldar directamente los cables. Agrego que los pines son de un equipo antiguo aunque dudo que ese sea un problema.
La conexión ya la realicé 2 veces y creo que esta todo correctamente conectado, el sketch que estoy utilizando es el de "Hello World" que proporciona el mismo programa de arduino.

surbyte

Y las conexiones, y el código utilizado?

SebasEC

Las conexiones:
 * LCD RS pin al pin digital 12
 * LCD Enable pin al pin digital  11
 * LCD D4 pin al pin digital 5
 * LCD D5 pin al pin digital 4
 * LCD D6 pin al pin digital 3
 * LCD D7 pin al pin digital 2
 * LCD R/W pin a tierra
 * LCD VSS pin a tierra
 * LCD VCC pin a 5V
 * LCD A a 5v con una resistencia de 220ohms
 * LCD R a tierra
 * LCD V0 al potenciometro de 10k

Simplificando sería así, pero alimentandolo desde una fuente externa (alimentandolo desde el arduino sucede lo mismo):



Por si es de utilidad el modelo del lcd es 2004A con el controlador st7066.
El codigo es este que es el ejemplo que proporciona la librería:

Code: [Select]


#include <LiquidCrystal.h>

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(20,4);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}

SebasEC

#3
Jul 27, 2017, 11:54 pm Last Edit: Jul 28, 2017, 12:07 am by SebasEC
Sinceramente no se que hice, lo único fue cambiar los pines que utiliza la librería y mover un poco los cables y empezó a funcionar perfectamente. No puedo creer que haya estado horas y horas y sea solo eso.
Ahora el problema es que solo me toma 2 de las 4 filas, aunque en el código especifico que son 20x4, y tambien pude observar que cuando pongo un texto largo escribe en la linea 1, sigue en la 3, despues en la 2 y por ultimo en la 4.
Como soluciono esto? Gracias

SebasEC

Ahora el problema es que solo me toma 2 de las 4 filas, aunque en el código especifico que son 20x4, y tambien pude observar que cuando pongo un texto largo escribe en la linea 1, sigue en la 3, despues en la 2 y por ultimo en la 4.
Como soluciono esto? Gracias
Logre solucionarlo haciendo uso de lcd.setCursor() para escribir en esas filas primero

surbyte

Mal contacto del protoboard... vaya a saber que no hacia buen contacto.
No son cosas para conectar a un protoboard. No para mi gusto! Siempre las cableo bien aun en prototipos.

SebasEC

Mal contacto del protoboard... vaya a saber que no hacia buen contacto.
No son cosas para conectar a un protoboard. No para mi gusto! Siempre las cableo bien aun en prototipos.

Si de momento es para probar que todo funcione, pero apenas pueda conecto lo mejor que pueda todos los cables, de momento hice funcionar 2 dht22, el rtc, y la pantalla, me faltan los relés y el esp8266 que seguro va a ser un infierno configurarlo jaja

Go Up