Si que he estado haciendo pruebas con el LCD en modo 4bits, e incluso le configure una entrada analogica con el lm35 y que me mostrara la señal por pantalla y además le puse un par de alarmas que en función de la temperatura me sacara los textos "Frio" y "calor", hasta ahí todo bien.
pero al querer controlar el LCD con menos cables fue cuando empezaron los problemas y todo lo que os he ido detallando.
Lo que voy a hacer es empezar de cer, desmontar el montaje y volverlo a montar, ya que tengo un lio de cables importante. Cuando consiga hacerlo funcionar, haré unos esquemas y un pequeño manual detallando los pasos para novatos como yo, y que sea más facil para ellos.
Pero lo que no encuentro en WIKI, son los esquemas de conexión y si los programas. ¿me puedes indicar donde se encuentran?
En la wiki no están como tal, están como enlaces externos a los que hicieron parte de la librería original. Aquí tienes los enlaces para que los veas. http://code.google.com/p/arduinoshiftreglcd/
Un saludo,
Pues por el momento me doy por vencido, no he sido capaz de hacer funcionar el display con el 74HC595, encima al estar tan obcecado en lo que hacia, he conectado al al revés la alimentación del LCD, y me he fundido el USB del arduino, no reconociendolo el PC, así que por el momento me toca dejarlo aparcado hasta que me llegue otro. =(
Encima he estado probando con el IDE 0.22, con IDE 1.0 y sus librerias y me he vuelto loco con WProgram.h y Arduino.h, que no tenia forma de cargarlas, error tras error.
buenas, yo probe hace 2 dias el montaje sobre un lcd 16x2 con la libreria de FM y un shifter 74HC595, y tras un par de errores de con los cables, me ha funcionado, he seguido el esquema de la pagina de que han comentado antes:
Este es el esquema que yo seguí, hasta que sufrí el percance, pero no conseguía nada en el display, únicamente encendía el primer espacio y se quedaba ahí esperando.
Pero espero poder continuar probando, he perdido una batalla, pero no la guerra, a ver si llega el nuevo arduino y sigo con las pruebas.
Este es el archivo que descargue y he intentado hacerlo funcionar con el esquema que tú expones.
void setup() {
// set up the LCD's number of rows and columns:
lcd.begin(MAXCOLUMNS, MAXLINES);
// 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); //lcd.setCursor(column, row);
// print the number of seconds since reset:
lcd.print(millis()/1000);
}
Y me dice esto al compilar:
Error compiling
In file included from C:\arduino-1.0\libraries\LiquidCrystal/LiquidCrystal_SR.h:81,
from sketch_feb15a.cpp:1:
C:\arduino-1.0\libraries\LiquidCrystal/LCD.h: In function 'void waitUsec(uint16_t)':
C:\arduino-1.0\libraries\LiquidCrystal/LCD.h:64: error: 'delayMicroseconds' was not declared in this scope
No se como interpretarlo, y veo que cuando pongo : #include <LiquidCrystal_SR.h>, la libreria no se me pone en rojo como las otras.
Siento que soy un poco pesado y me disculpo pero no se como continuar.
Esto es lo que sale cuando añado #include <Arduino.h>
Error compiling
sketch_feb15a.cpp:2:21: error: Arduino.h: No such file or directory
In file included from C:\arduino-0022\libraries\LiquidCrystal/LiquidCrystal_SR.h:81,
from sketch_feb15a.cpp:3:
C:\arduino-0022\libraries\LiquidCrystal/LCD.h: In function 'void waitUsec(uint16_t)':
C:\arduino-0022\libraries\LiquidCrystal/LCD.h:64: error: 'delayMicroseconds' was not declared in this scope
Es curioso, nadie ha reportado ningún tipo de problema.
Básicamente lo que te está diciendo el error es que no encuentra delayMicroseconds que es una función estándar arduino.
Por lo tanto es posible que algo no esté bien instalado en tu entorno Arduino.
Haz una simple prueba:
Modifica tu programa para que en el setup haga: delayMicroseconds (10);
Por otro lado, utiliza los ejemplos que vienen con la librería, estos están probados por mucha gente y sin problemas.
Cuando pongo los ejemplos, veo que la libreria no se me activa en rojo, como si no la encontrara. Y cuando ejecuto:
delayMicroseconds (10); no tengo ningún problema, lo reconoce sin problemas.
Seguiré probando. Lo que voy a hacer es desinstalar todo y partir de cero, y así veo si sucede lo mismo. Esta tarde cuando llegue a casa lo pruebo.
Hola, he visto un pequeño error que entro en la version 1.0.7 de la libreria que explica el problema que has visto. He subido un parche este fin de semana, versión 1.0.7.1 que esta en la zona de descarga. A ver si soluciona el problema.
Para arreglarlo sin parche se puede poner #include <Arduino.h> en el sketch, pero lo he arreglado a nivel de librería.
Gracias por probar la librería y disculpa las molestias.
Por cierto, el fin de semana que viene publicaré la version 1.2.0, mas rápida y con una implementacion mas elegante y algunos métodos extendidos adicionales.
Gracias a ti por la ayuda prestada, y probaré la nueva versión para ver que tal, pero aunque soy nuevo en esto, creo que se trata de compartir experiencias y ayudarnos.
En lo que pueda, lo voy a intentar.
Estoy un poco liado por el trabajo, pero a ver si puedo seguir probando cosas. Ya os cuento.
Al final y tras hacer un número infinito de pruebas con todo tipo de librerias, he conseguido hacer funcionar el Display con tres hilos que era lo que me había propuesto.
fm, con tus librerias no he sido capaz, pero seguramente haré algo mal, pero no te preocupes que no lo dejo ahí, y continuaré hasta que consiga que funcione, si es que a tí te vale para tu experiencia. Lo que a mi no se me carga es: #include <I2CIO.h> #include <LCD.h> #include <LiquidCrystal.h> #include <LiquidCrystal_I2C.h> #include <LiquidCrystal_SR.h> #include <LiquidCrystal_SR_LCD3.h>
Ninguna de ellas se me pone en rojo, como que está bien cargada, las utilizo con IDE 1.0 y no he sido capaz. Y con el IDE 0.22: #include <FastIO.h> #include <I2CIO.h> #include <LCD.h> #include <LiquidCrystal.h> #include <LiquidCrystal_I2C.h> #include <LiquidCrystal_SR.h> #include <LiquidCrystal_SR_LCD3.h>
Las que están en rojo son las que cargo correctamente.
Así que tras hacer diferentes pruebas y no ser capaz, descargue la libreria: #include <ShiftRegLCD.h>
Y con esta librería si que he sido capaz de poder hacer funcionar el display en las dos líneas y con las mismas funciones que cuando utilizaba el display sin 74HC595.
He utilizado los esquemas de la página que pusimos el link en anteriores post y funcionó.
Si alguien necesita algo, que lo pregunte. fm gracias por todo y ya te iré informando de las pruebas que haga con tus librerias.
Pues es muy raro, muy raro porque la librería la está usando mucha gente sin hacer ningún tipo de modificaciones en el código. Vamos que la mayor parte de la gente, reemplaza el directorio de "libraries/LiquidCrystal" de su distribución Arduino y lo reemplazan por esta y no les ha dado ningún problema.