BV4218 I2C LCD controller

Ho da poco ricevuto questo modulo, il BV4218 prodotto da ByVac.

come spesso mi accade, compro la roba prima di accertarmi accuratamente che esista documentazione e librerie usabili da arduino! Avevo visto qualcosa e credevo fosse sufficiente, ma così non è stato!

ecco il modulo: BV4218

nella pagina è presente un link ad una libreria che non funziona

in rete ho trovato altre librerie, che non funzionano! sto provando esempi stupidi, ma non vanno!

qualcuno di voi conosce o ha usato questi moduli e può darmi una mano?

grazie!!!

Non sara' un problema di Address ?

Hai provato a fare una scansione del bus I2C

http://todbot.com/blog/2009/11/29/i2cscanner-pde-arduino-as-i2c-bus-scanner/

z3us, per favore dacci la possibilitá di aiutarti.

1) che versione di IDE usi? La libreria non funziona con la versione 1,0 ma funziona con la versione 023? 2) quale sketch usi 3) quali mesaggi di errore escono oppure descrivi nei particolari i sintomi.

Ciao Uwe

Se usi IDE1.0 ho trovato il problema.

Nel file ByVacLCD_h si trova
#include <WProgram.h>

quello deve essere cambiato con

#include “Arduino.h”

vedi http://arduino.cc/en/Main/ReleaseNotes

Ciao Uwe

scusa Uwe,
dovevo stare davanti al pc ieri ma poi sono andato via.

allora, aggiungiamo informazioni!

il modulo è nuovo, non sono ancora riuscito a farlo funzionare!
uso 023 come IDE, ma ho anche a disposizione 1.0!
compilando un programma di esempio preso su internet mi dà il seguente errore:

#include <Wire .h>
#include <ByVacLCD .h>
// declare the object – address in the data sheet is 0×42 but you
// need to divide this by two to get the ‘normal’ 7 bit I2C address
// – the low order bit is added on by Wire.
// this declaration is for 4 rows of 20 characters.
ByVacLCD bv = ByVacLCD(0×21,4,20);

void setup()
{
bv.init();
bv.print(“Hello World”);
}

void loop()
{
bv.setCursor(1,0);
bv.print(millis());
}

errore:

sketch_apr29a.cpp:1:19: error: Wire .h: No such file or directory
sketch_apr29a.cpp:2:23: error: ByVacLCD .h: No such file or directory
sketch_apr29a:6: error: stray '\' in program
sketch_apr29a:11: error: stray '\' in program
sketch_apr29a:11: error: stray '\' in program
sketch_apr29a:6: error: 'ByVacLCD' does not name a type
sketch_apr29a.cpp: In function 'void setup()':
sketch_apr29a:10: error: 'bv' was not declared in this scope
sketch_apr29a:11: error: 'u201cHello' was not declared in this scope
sketch_apr29a.cpp: In function 'void loop()':
sketch_apr29a:16: error: 'bv' was not declared in this scope

rilascia lo stesso errore sia con IDE 023 che con 1.

la libreria aggiunta proviene da qui: Link

nel pdf risulta l’indirizzo I2C 0x42!!!

L’IDE ti sta dicendo che non trova la libreria.
Dove l’hai scompattata?

ho aggiunto la libreria in

…\Arduino\libraries\ByVacLCD

ho un sacco di librerie, di solito copiando la cartella funziona.

in più, ho anche provato a richiamarla tramite:

sketch => import library => ByVacLCD e spunta regolarmente:

#include <ByVacLCD.h>

dici che nonostante ciò non la riconosce?

Lo so che sono rompiballe, cattivo a farti vedere il problema in questo modo cosí brutale senza dirlo con una certa gentilezza e empatia:

Togli i spazi prima del punto in:

#include <Wire .h>
#include <ByVacLCD .h>

Ciao Uwe

uwefed:
Lo so che sono rompiballe, cattivo a farti vedere il problema in questo modo cosí brutale senza dirlo con una certa gentilezza e empatia:

Togli i spazi prima del punto in:

#include <Wire .h>

#include <ByVacLCD .h>




Ciao Uwe

+1

leo72:

uwefed:
Lo so che sono rompiballe, cattivo a farti vedere il problema in questo modo cosí brutale senza dirlo con una certa gentilezza e empatia:

Togli i spazi prima del punto in:

#include <Wire .h>

#include <ByVacLCD .h>




Ciao Uwe

+1

+1 al suggerimento, ma mi dissocio da Leo riguardo il:

Lo so che sono rompiballe, cattivo a farti vedere il problema in questo modo cosí brutale

, ma quando mai!
-1 (così azzero Leo) :grin:

Ora a fare gli occhi alle pulci... :sweat_smile: il "+1" era per lo spazio nel nome, non certo per l'autodefinizione "rompiballe".... :sweat_smile: :sweat_smile:

Grande Uwe! non mi ero accorto degli spazi!

MA.......Continua a dare l'errore anche senza!

e a questo punto che faccio?

Se hai una sfera di cristallo in alternativa al codice e la lista dei errori puoi mandarmi anche quella. Ciao Uwe

uwefed: Se hai una sfera d cristallo in alternativa al codice e la lista dei errori puoi mandarmi anche quella. Ciao Uwe

:stuck_out_tongue_closed_eyes:

ahahaha vi farò diventare matti io, lo so! e Uwe mi odierà fino al 21/12/2012!!!

non ho scritto dettagli perche la situazione non era cambiata, cioè:

Codice:

#include <Wire.h>
#include <ByVacLCD.h>
// declare the object – address in the data sheet is 0×42 but you
// need to divide this by two to get the ‘normal’ 7 bit I2C address
// – the low order bit is added on by Wire.
// this declaration is for 4 rows of 20 characters.
ByVacLCD bv = ByVacLCD(0×21,4,20);

void setup()
{
bv.init();
bv.print(“Hello World”);
}

void loop()
{
bv.setCursor(1,0);
bv.print(millis());
}

ed errore:

sketch_apr30a:6: error: stray '\' in program
sketch_apr30a:11: error: stray '\' in program
sketch_apr30a:11: error: stray '\' in program
sketch_apr30a:6: error: expected primary-expression before '(' token
sketch_apr30a:6: error: expected `)' before 'u00d721'
sketch_apr30a.cpp: In function 'void setup()':
sketch_apr30a:11: error: 'u201cHello' was not declared in this scope

la libreria usata ve l’ho segnalata prima. posta nella giusta cartella.vi faccio una foto!

sembra come se nella libreria mancasse qualcosa, un parametro o che! ho dato un’occhiata, ma non sono riuscito a vedere nulla di insolito!

e scusate ancora per prima!

--> http://www.practicalmaker.com/library/arduino-byvac-bv4218-complete-library Li indica di inizializzare anche tre variabili globali.

int keypushed;
int keymap;
int addr;
Attento ad una cosa. L'IDE dice:

[code]
sketch_apr30a:11: error: 'u201cHello' was not declared in this scope

ed il tuo sketch è:

#include <Wire.h>
(...)
void setup()
{
bv.init();
bv.print(“Hello World”);
}
(...)

Noto delle virgolette strane, non sono regolari come queste: "
Difatti ti segnala un errore di unicode u201c (e poi Hello). Che caratteri stai usando? Hai ricopiato quello sketch da internet, vero?[/code]

allora, quello sketch è copiato dalla rete, ma.....se nel mio sketch del vespacomputerduino aggiungo la libreria, e sostituisco la classica libreria LCD con questa, mi ridà lo stesso errore, segnalandomi con una riga gialla ByVacLCD lcd = ByVacLCD (0x21, 4, 20);

provo a cambiare quelle virgolette!

vediamo!

ma può darsi che questo errore di formattazione si trovi all'interno della libreria?

Leo, ci hai azzeccato tu stavolta!

c'entravano le virgolette e non solo!

prima di tutto, non mi ero accorto che il testo Hello dentro le virgolette di prima non era Blu come al solito, cambiandole ha cambiato colore, indice che il compilatore lo ha rilevato come Print()! ho poi tentato di riscrivere la riga:

ByVacLCD dv = ByVacLCD (0x21, 4, 20);

e ha compilato! forse vi era qualcosa di formattato male pure il quella riga che non si vedeva!

grazie dell'aiuto!

al momento sono a lavoro e provo solo a compilare da remoto con il VNC, non appena torno a casa provo sul campo con il modulo! spero funzioni!

è interessante sapete? oltre a controllare il display, può spegnerlo e accenderlo, sia solo la retro che per intero. ha alcune funzioni in più della LiquidCrystal e sul modulo sono presenti degli ingressi ai quali è possibile collegare una tastiera a matrice 3x4. il modulo stesso memorizza i tasti premuti, fino a 16 di fila, che poi possono essere letti dal I2C e poi resettati. ha pure un pin di interrupt, ma anocra non mi è chiaro come funzioni e a cosa serva!

se và, sarebbe ottimo per "remotizzare" il display del mio Vespacomputerduino. potrei così mettere l'elettronica nel sotto-sella e l'LCD con i tasti del menù sullo sterzo passando solo 4 fili, alimentazione e I2C. volevo addirittura usare un normale cavo USB e mettere due prese ai due lati!

Nello Scooterputer (http://www.janspace.com/b2evolution/arduino.php/2010/06/26/scooterputer) è stato utilizzato un cavo Ethernet. Devi solo cercarti due connettori femmina per le board.