Problemas con LyquidCristal

Hola de nuevo foro.

Regreso de nuevo con el problema de conectar un LCD 16x2 por SPI mediante un 74HC595. En este caso he ido pies de plomo poniendo atención a que hacia y que podia fallar. La cosa es sencilla. El ejemplo LCD con la definición por un solo pin de entrada no compila. Por lo que descarto problemas de hardware y conexiones. Aún actualizando la libreria 1.0.4 y con la versión arduino 1.6.7 no compila.

Si con arduino 1.6.7 sigo el tutorial Arduino Playground - LiquidCrystal Library tampoco puedo compilar. Se os ocurre alguna idea sencilla?

No te vayas a versiones tan actuales, prueba con una 1.6.0 y no mas de la 1.6.4
Supongo que usas este ejemplo y librería no?
Download here: LiquidCrystal_1.zip

Voy a probarlo porqué me estoy volviendo loco.

Probé con la serie clássica Arduino 00x y la Arduino 1.0.x pero ambos funcionan con una java 6.0 ...
También probé con la Nightly...

Vamos por pasos. Probaste el LCD usando la conexión standard? En paralelo de 4 bits?
Sabes si funciona el LCD?
Lo alimentaste bien?
Giraste el control de contraste para ver los caracteres? Que valor de potenciómetro usas?
Verificaste con el tester/multímetro las tensiones importantes?
VCC, GND, en los pines que estan fijos. La tensión que entrega el potenciómetro?

El lcd en su versión 4 bits funciona bien.

Y probé varios 74HC595.

Pero es que el problema es que no compila el ejemplo

#include <SPI.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(10);

void setup() {
  lcd.begin(16, 2);
  lcd.print("hello, world!");
}

void loop() {
}

Eso es lo que me esta volviendo loco.

Opcions de compilat canviades, re-compilant tot
HelloWorld.ino:5:21: error: no matching function for call to 'LiquidCrystal::LiquidCrystal(int)'
HelloWorld.ino:5:21: note: candidates are:
In file included from HelloWorld.ino:3:0:
/Users/xorsch/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.h:55:3: note: LiquidCrystal::LiquidCrystal(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)
   LiquidCrystal(uint8_t rs, uint8_t enable,
   ^
/Users/xorsch/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.h:55:3: note:   candidate expects 6 arguments, 1 provided
/Users/xorsch/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.h:53:3: note: LiquidCrystal::LiquidCrystal(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)
   LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
   ^
/Users/xorsch/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.h:53:3: note:   candidate expects 7 arguments, 1 provided
/Users/xorsch/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.h:50:3: note: LiquidCrystal::LiquidCrystal(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)
   LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
   ^
/Users/xorsch/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.h:50:3: note:   candidate expects 11 arguments, 1 provided
/Users/xorsch/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.h:47:3: note: LiquidCrystal::LiquidCrystal(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)
   LiquidCrystal(uint8_t rs, uint8_t enable,
   ^
/Users/xorsch/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.h:47:3: note:   candidate expects 10 arguments, 1 provided
/Users/xorsch/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.h:45:7: note: LiquidCrystal::LiquidCrystal(const LiquidCrystal&)
 class LiquidCrystal : public Print {
       ^
/Users/xorsch/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.h:45:7: note:   no known conversion for argument 1 from 'int' to 'const LiquidCrystal&'
Error compilant.

El problema parece ser la librería. Miré que estaba en LiquidCrystal_1.zip y aparece esto para tu caso

LiquidCrystal::LiquidCrystal(uint8_t ssPin) //SPI  ##############################
{
  initSPI(ssPin);
  //shiftRegister pins 1,2,3,4,5,6,7 represent rs, rw, enable, d4-7 in that order
  //but we are not using RW so RW it's zero or 255
  init(1, 1, 255, 3, 0, 0, 0, 0, 4, 5, 6, 7);   
}

De modo que si no la instalas en lugar de la que viene por defecto, no lo va a reconocer.
No he mirado mi librería. Ahora lo hago y te confirmo si 1.6.0 tiene esta parte de código o no.
Bueno, yo tengo dos librerías, una que modificó a otra. La que tengo ahora tiene soporte para I2C, la anterior no lo tenía.
Pero no tiene este soporte para comandarla vía SPI.
Asi que ve a libraries y cambia el nombre de tu librería LiquidCrystal a LiquidCrystal.old
y luego instala esta nueva.

Surbyte no sé como darte las gracias por tu apoyo. Realmente creo que el tema es más sencillo y no sé por dónde solucionarlo. Te cuento un poco.

He añadido la classe LiquidCrystal dentro del .ino. y compila y funciona. Y ahora vamos al qué.

Añado que estoy en un OSX Capitan con arduino 1.6.1 usando el código de la libreria sin modificar que e indicado arriba en el primer comentario. Ahora al tema. Me he fijado que por algún motivo si elimino y borro la librería de la carpeta "libraries" siguen apareciendo y compilando los programas de ejemplo de dicha libreria, de lo que deduzco que de alguna manera la app de arduino no gestiona correctamente las librerias. Con todo ello al hacer modificaciones en las librerias abria y cerraba la app arduino por si las moscas.

En conclusión.

  • Esquemático Hardware OK.
  • Código de la libreria en el del proyecto OK
  • Gestión de la libreria KO.

¿La solución? Pues supongo que algún fichero temporal pero no los del directorio Arduino15.

pd: No pondré solucionado porqué no lo está. Pero creo que hemos mutado o redirigido el problema. En este caso seria borrar archivos temporales de arduino en OSX

Y porque no armas un windows virtual y corres el IDE en tu MAC?

Lo hice pero tuve problemas en la comunicación FTDI y no entraba el arduino.

Pruebo de nuevo a ver si hay suerte. Sólo por lo que has llegado a molestarte.

Bueno al parecer con un windows 7 corriendo dentro VirtualBox, Arduino IDE 1.6.7 y la librería LiquidCrystal_1 compila.

Conclusión. ¿Problema de Arduino al gestionar su bibliotecas?

Posiblemente. Ahora no se si lo dices desde el ambiente Win7 virtual o desde MAC?
A mi la versión 1.6.7 no me gusta. Vivo respondiendo muchos fallos, pero como no son propios no puedo afirmarlos.
Con la 1.6.4 no he tenido problemas. Eso si puedo afirmarlo.

Mi sistema operativo es OS X y los problemas eran y son con el Arduino IDE de éste.

Con el de windows sobre virtual box tenía el problena de subir el sketch a arduino. Pues tenía el inconveniente con los puertos y eso es otra batalla aunque me temo que no es cosa ni de VB ni de Win sinó de puertos quemados.

Desgraciadamente para mí empecé con arduino allá del 2010/11 y en los últimos 2/3 años apenas lo he usado.