libreria shift register

ciao a tutti, sto testando per la prima volta lo shift register M74HC595B1, per far funzionare un display 16x2. ovviamente ho bisogno di una libreria dedicata, ma purtroppo quelle che ho trovato hanno sempre degli errori di compilazione.. qualcuno ha gia avuto a che fare con questo shift register? qualcuno sa consigliari qualche libreria che sa per certo che non ha problemi?

Erik86: ... ovviamente ho bisogno di una libreria dedicata, ma purtroppo quelle che ho trovato hanno sempre degli errori di compilazione.. ...

Se magari ci dicessi anche CHE errori di compilazione forse potremmo capire dove è il problema ... ;)

Guglielmo

Magari anche quale libreria usi e quale versione di IDE.

intanto grazie per la tempestività… :slight_smile: :slight_smile: :slight_smile:

questo è il link da dove ho scaricato la libreria:

e questo è quello che succede se faccio la verifica dello sketch:

Immagine.bmp (2.93 MB)

Avevi letto questo?
http://forum.arduino.cc/index.php/topic,34841.0.html

Purtroppo (ne sono quasi sicuro) @pelletta usa (o usava) ancora l’IDE vecchio.
L’estensione per Arduino ora è .ino, quell’esempio ha estensione .pde perciò non è molto nuovo.

... brutta cosa la pigrizia ...

Se avessi letto TUTTO il link che mi hai indicato, avresti visto che lo stesso identico problema era segnalato anche da un'altro utente e ... poche righe sotto c'era la soluzone.

Per l'esattezza, il post che segnala il problema è questo : http://cjparish.blogspot.ch/2010/01/controlling-lcd-display-with-shift.html?showComment=1325397856412#c3485097045321438777 , mentre la soluzione la trovi poco sotto : http://cjparish.blogspot.ch/2010/01/controlling-lcd-display-with-shift.html?showComment=1327509380615#c7327384200590044578.

In pratica, devi aprire sia il .h che il .cpp ... poi nel .h devi modificare la riga 116 togliendo il void e mettendo size_t :

virtual size_t write(uint8_t);

... nel .cpp devi invece modificare la riga 252 sempre togliendo il void e mettendo il size_t :

inline size_t ShiftLCD::write(uint8_t value) {

quindi la linea 6 togliendo Wprogram.h e mettendo Arduino.h :

#include "Arduino.h"

... e tutto viene compilato correttamente ]:D

Guglielmo

nid69ita:

L’estensione per Arduino ora è .ino, quell’esempio ha estensione .pde perciò non è molto nuovo.

Nid,
non c’entra nulla, occorrono due piccole modifiche, indicate in quel link, nel .h e nel .cpp per aggiornarli … tutto qui :wink:

Guglielmo

@Guglielmo, non mi hai inteso. Il fatto che una libreria abbia gli esempi ancora come .pde e non .ino è facilmente una indicazione di una libreria non nuova, non aggiornata rispetto a IDE 1.0.x (almeno credo) :grin:

Comunque esiste anche un’altra libreria molto completa:
https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home

Qui il download della versione 1.2.1
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

Io l’ho sempre usata come I2C oppure in parallelo, ma da quello che dice nel wiki, è anche pensata per un shiftregister (libreria con nome _S_R). Perciò non l’ho provata come SR.

nid69ita: @Guglielmo, non mi hai inteso. Il fatto che una libreria abbia gli esempi ancora come .pde e non .ino è facilmente una indicazione di una libreria non nuova, non aggiornata rispetto a IDE 1.0.x (almeno credo) :grin: ...

Emm ... Nid, io neanche sono andato a guardare nella cartella degli esempi ... dall'IDE sono andato in File -> Esempi -> ShiftLCD -> HelloWorld e ... ho fatto le prove da li. Come vedi l'IDE è abbastanza furbo da accettare ancora sia i .ino che i .pde (... dato che effettivamente, nella cartella esempi, ci sono dei pde) :grin: :grin: :grin:

Il problema è che la gente deve leggere tutto l'articolo ed i relativi commenti prima di dire "non funziona" perché ... magari li trova anche la soluzione ]:D

Guglielmo

=( Ragazzi nn litigate..è tutta colpa mia..il dubbio di andare a modificare lo script mi era venuto ma nn trovavo la riga In causa.. =(

Cmq grazie guglielmo funzia tutto.. :) :)

Devo dire che oggi ho imparato ben due cose, essere meno pigro quando sono alla ricerca di qualcosa di nuovo. E a controllare e sistemare le librerie.. Grazie ancora ragazzi

Erik86: Ragazzi nn litigate.. ...

Tranquillo, non stiamo assolutamente litigando, è solo uno scambio di indicazioni sulle possibili soluzioni :grin:

E ... sono contento che hai imparato qualche cosa e che ora tutto ti funziona ... ;)

Guglielmo