Alcuni appassionati mi hanno segnalato che uno dei display LCD più utilizzati con Arduino ha sigla ACM1602B della zettler ( XIAMEN ZETTLER ELECTRONIC CO ) e fonito nello starter kit con Arduino Rev 3.
Inizialmente ho provato a dare a tutti quelli che mi hanno scritto delle dritte leggendo il datasheet, ma dalle risposte ho compreso che non erano sufficenti o differiva qualcosa tra la teoria del datasheet e il display vero e proprio.
Ho chiesto a robot-domestici di inviarmi uno di questi kit contenenti il display in questione e devo dire che sono stati più che pronti a contribuire per aiutare tutti voi appassionati.
Ricevuto il kit mi sono procurato uno strip di pin da saldare al display:
Il video non mostra solo le saldature da eseguire ma anche come collegare il display LCD ad Arduino.
Ti mostro la piedinatura riportata sul foglio di iscruzioni (datasheet) allegato al kit:
Pin | Utilizzo |
– | BL – |
+ | BL + |
14 | DB7 |
13 | DB6 |
12 | DB5 |
11 | DB4 |
10 | DB3 |
9 | DB2 |
8 | DB1 |
7 | DB0 |
6 | E (Enable) |
5 | R/W (modalità di funzionamento Read / Write) |
4 | RS |
3 | V0 (Contrasto) |
2 | VDD (+5v) |
1 | VSS ( Gnd) |
e la foto dei collegamenti che devi eseguire:
avrai capito anche tu quale sia la differenza, il datasheet mostra una sequenza dei pin da 1 a 14 e poi i successivi due per la retro illuminazione, nella realtà i pin per la retroilluminazione son i primi due a destra, invertiti rispetto al datasheet, e poi si parte con il pin 1 e non con il 14.
Spegato l’arcano puoi collegare l’LCD facilmente al tuo Arduino seguendo la foto, partendo da destra il primo pin puoi collegarlo al positivo +5v, il secondo al polo negativo.
il pin 1 è da collegare a massa ( GND );
il pin 2 all’alimentazione VDD (+5v);
il pin 3 va collegato al cursore del potenziometro da 10KΩ i cui estremi devi collegarli uno al polo positivo ed uno al polo negativo;
il pin 4 è il pin RS che devi collegare al pin 12 di Arduino;
il pin 5 definisce se la modalità di funzionamento deve essere di lettura o scrittura, lo colleghi a massa ( GND ) per metterlo in modalità scrittura ( write );
il pin 6 abilita il funzionamento del display, va collegato al pin 11 di Arduino;
i pin 11-14 sono i pin del segnale Data 4,5,6 e 7 e vanno collegati rispettivamente ai pin 5,4,3 e 2 di Arduino, ovviamente puoi collegare sia questi che i pin 4 e 6 del display ad altri pin di Arduino se il tuo progetto ti costringe a non poter utilizzare quelli suggeriti, tale modifica devi variarla anche nello sketch di esempio quando inizializzi l’oggetto LCD.
Riporto per completezza l’esempio “Hello World” dell’IDE Arduino, la descrizione dello sketch puoi leggerla in un mio precedente articolo, ecco l’esempio:
#include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // 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); }
Buon divertimento con il tuo ACM1602B !!!
92 commenti
1 ping
Vai al modulo dei commenti
Ciao, grazie innanzitutto per il tutorial.
Ho un problema. Collegandolo come nel video, si illumina lo schermo, ma non compare nessuna scritta.
Sia nella configurazione 4 bit che 8 bit.
Non sembrano esserci errori nel codice ( è uguale al tuo).
Qualche suggerimento?
Grazie ancora.
Ciao
Autore
Ciao Antonio,
hai verificato che il potenziometro per la regolazione del contrasto sia connesso in modo corretto e che ruotandolo non cambi nulla?
Mauro
Sì, in realtà non avevo a disposizione un potenziometro, quindi ho collegato quel pin con un partitore di tensione tra 5 V e massa di due resistenze uguali. In effetti la regolazione del contrasto sembra funzionare (spostando il pin a massa si annerisce una riga). Non vedo visualizzate però le stringhe che passo con arduino.
In realtà il display mi è stato venduto separatamente dal kit, poichè non avevano in stock il kit con display.
Può darsi che altre forniture ( o altre marche) producano lo stesso display con pedinatura diversa? (e che mi abbiano rifilato proprio quello?)
Autore
Ciao Antonio,
abbiamo trovato il problema, senza potenziometro non puoi regolare il contrasto.
Collegandolo a massa ottieni il contrasto massimo, tutta la riga nera, collegandolo al positivo ottieni riga bianca.
Se proprio non riesci a procurartene uno prova a leggere altri articoli in cui c’è un display, tipo il TriggrT, vedrai come collegare un transistor e regolare in PWM il contrasto.
Mauro
Ciao Mauro,
come capirai sono ai primi passi con Arduino e il tuo sito è quanto di meglio un principiante come me può augurarsi di trovare; per questo ti ringrazio moltissimo. Sono alle prese da alcune ore con il collegamento del Display LCD ad Arduino (sketch “hello world”) e dopo molti tentativi seguendo il datasheet del modello del display ( nel mio caso il WINSTAR WH1602B che ho visto usare anche da altri per Arduino e che ha un datasheet “apparentemente”identico a quello dell’ ACB1602B) arrivo allo stesso risultato di molti che si rivolgono a te per aiuto: display acceso, potenziomentro funzionante che ruotato fa evidenziare sul display la riga delle matrici scure dei caratteri (fila di 16 rettangoli neri). La domanda che ti rivolgo è se nella tua esperienza hai mai trattato con questo modello di Display LCD e se per questo, come nel caso del ACB1602B, presenta differenze tra il datasheet e la piedinatura reale, perchè nel mio caso il tuo schema della foto dei collegamenti non sembra funzionare.
Ti ringrazio moltissimo per il supporto.
Autore
Ciao Bruno,
purtroppo non possiedo un display WINSTAR WH1602B, ma se guardi il datasheet potrai capire subito se differiscono i pin.
Da quello che scrivi sembra proprio un problema di pin e non del display perché il potenziometro regola correttamente il contrasto.
Mauro
Ciao Mauro,
grazie infinite anche per quest’altro tuo utilissimo tutorial.
Avrei bisogno nuovamente del tuo aiuto.
Vorrei sapere se sapresti come visualizzare sul display il valore della velocità di rotazione imposta ad un motorino passo passo tramite un potenziometro connesso come da te suggerito su un altro tuo tutorial.
Grazie, saluti
Leandro
Autore
Ciao Leandro,
non ho chiaro cosa vuoi memorizzare, la velocità angolare?
il valore impostato dal potenziometro?
Mauro
No Mauro, non intendevo memorizzare ma visualizzare a display la velocità lineare del laser di un sistema di lettua CD mosso dal motorino passo passo; alla fine ho risolto il problema effettuando una conversione tra numero dei passi al secondo e velocità lineare con una semplice proporzione matematica e passando alla funzione lcd.print() la variabile cui avevo assegnato questo valore.
Adesso però mi è sorto un nuovo problema…quando visualizzo a display velocità via via decrescenti, le ultime cifre non vengono cancellate…come si potrebbe effettuare il “refresh” quando visualizzo un nuovo valore? Non so se sono riuscito a spiegarmi bene…
Grazie comunque per la tua solita celerità e disponibilità nelle risposte!!
Autore
Ciao Leandro,
la soluzione che hai utilizzato è la medesima che ti avrei suggerito compreso il problema, ottima intuizione.
Per il refresh del display ci sono diverse tecniche, le trovi negli articoli dedicati ai Display LCD.
Mauro
salve , dove posso acquistare questo display LCD ACM1602B grazie .
Autore
Ciao Ibrahm,
io acquisto di solito da http://www.robot-domestici.it e mi trovo bene.
Mauro
Ciao Mauro,
innanzitutto grazie per tutti i tutorial e le spiegazioni che metti a disposizione. Io mi sto avvicinando da poco al fantastico mondo di Arduino, ma ho incontrato un problema proprio con l’interfacciamento con questo display. Mi pare di aver seguito fedelmente le tue indicazioni di montaggio, ma il risultato è che ho i display acceso, ma nessun carattere visualizzato. Ho anche provato a regolare il potenziomentro, ma il risultato non cambia. cosa potrebbe essere? Grazie!
Autore
Ciao Andrea,
sei certo che la piedi natura del tuo display sia la medesima indicata?
Ti invito a controllare in quanto mi è già capitato di trovare dei display con la medesima sigla ma i contatti differenti perchè di produttori diversi.
Di solito il problema che hai può dipendere dal pin di contrasto che non coincide con quello del mio LCD e quindi pensi di regolari ma stai inviando comandi differenti.
Mauro
Ciao Mauro, complimentoni per il lavoro che svolgi. Ho da poco acquistato il kit di arduino in cina. Insieme c’è anche uno schermo lcd la marca è TM162a-3 V2.0. Ho fatto tutti i collegamenti per 5 volte ma il risultato è sempre lo stesso: schermo illuminato che funziona con il potenziometro, ma non leggo nulla solo, al variare del potenziometro qualche pixel bianco. Sono disperato spero che non sia rotto. Grazie per l’aiuto. Andrea
Autore
Ciao Andrea,
Acquistare prodotti cinesi quando l’idea é italiana ritengo che sia un offesa alla nostra creatività.
La mia non é una guerra al prodotto cinese ma un dare a Cesare quel che é di Cesare.
La prima arduino che ho acquistato era cinese non sapevo che arduino fosse un prodotto italiano, e forse anche per riparare a questo errore ho iniziato a scrivere questo Blog, una sorta di espiazione.
Da quando so che é un prodotto italiano e che ci sono molti prodotti di manifattura italiana cerco di preferirli.
Riconosco valido e acquisto il prodotto estero, cinese, giapponese, americano, koreano quando é originale ossia inventato nel paese di vendita e non esiste un prodotto di pari caratteristiche di produzione italiana.
Sfogo a parte per il tuo LCD prova a guardare la piedi natura indicata sul foglio del produttore, che ti avranno inviato, spesso si tratta di pin invertiti rispetto alla versione che ho io.
Mauro
Grazie mille per la risposta. Purtroppo ho scoperto da poco anch’io che Arduino è italiano. Se lo avrei saputo fin da subito avrei sicuramente acquistato in italia. Ma questo mi serve per fare esperienza visto che troppi arduini dovrò acquistare. Andrea
Ciao Mauro,
ritorno con una richiesta.
Ho acquistato uno starter kit e mi hanno fornito un display Winstar WH1602B.
Ho caricato un primo programma di prova da me realizzato che fa apparire una scritta un carattere alla volta, tanto per prender pratica, e tutto funziona perfettamente.
Solo un piccolo dubbio… sulla retroilluminazione.
Per il mio primo test ho collegato i pin 15 e 16 alle uscite +5 V e GND di Arduino (in pratica gli stessi ai quali ho collegato il potenziometro per regolare il contrasto) ed il display si illumina benissimo.. ma il mio dubbio è su questo collegamento. Assorbirà troppa corrente col rischio di danneggiare Arduino? E poi, anche ammettendo di collegare questi due pin del display ad una tensione di 5V presa da un alimentatore esterno, se la retroilluminazione è a LED non ci vorrebbe un resistore per limitare la corrente? A questo punto potrei collegare un potenziometro da 1 k con un resistore da 20 in serie al cursore ed avere una regolazione anche della luminosità oltre che del contrasto.
Purtroppo anche altri tutorial presenti in rete, oltre ad essere come al solito ben lontani dalla chiarezza dei tuoi tutorial, trascurano totalmente l’argomento o si contraddicono, ho letto cose che variano fra “collegate ai + 5V di Arduino” a “nooo si brucia tutto, ci vuole un transistor” (addirittura!!!!).
Anche il datasheet è poco di aiuto, riporta diversi assorbimenti di corrente a seconda che sia edge o matrix ma senza spiegare come si fa a sapere come sia il proprio modello.
Sarebbe gradito, su questo tema della retroilluminazione, un tuo…. illuminante parere.
Autore
Ciao Paolo,
non sono riuscito a trovare il datasheet di questo display, e come mi dici non sai capire se sia Matrix o Edge per cui anche trovando lo non potremmo stabilire quali dati leggere.
Io per regola ti consiglio di evitare il passaggio di alimentazione per i pin di Arduino, non tanto perché si possa bruciare quanto per la corrente erogata.
Nei miei tutorial troverai che uso i 5v di arduino per alimentare display, servo, motori, ecc.. è solo perché i miei sono esperimenti che durano picchi minuti e devono essere facilmente replicabili.
Se iniziassi a mostrare alimentazione esterna, circuiti di regolazione ecc… solo per provare un display scoraggerei tutti gli appassionati che non possono comprare un laboratorio per un test di un display.
Trovi sul blog degli articoli dedicati a schede di alimentazione molto valide.
Sulla questione resistenze, controlla sul datasheet, ma sono quasi certo che le abbia al suo interno, facilitandoti il compito di alimentarlo.
Mauro
Grazie per la risposta.
Il datasheet, purtroppo, fa riferimento sia al matrix che all’edge… comunque vedo che mi confermi che è meglio alimentare il display e la sua retroilluminazione da una fonte esterna.
Per il resistore della retroilluminazione, credo sia abbastanza semplice scoprire se è integrato o meno con un paio di misure.
Ecco cosa farò.
Ricaverò dall’alimentazione esterna che adopererò per Arduino (9 V) una tensione di 5 V mediante un LM317 o un 7805 (dipende da quale mi ritroverò nei cassettini) ed userò questa per l’alimentazione del display e per la retroilluminazione che a questo punto renderò regolabile con un trimmer ed una eventuale resistenza in serie di una ventina di ohm per prudenza (nel caso il resistore integrato sia assente).
Quando avrò fatto tutto, ti invierò lo schema così se vorrai potrai inserirlo nel tuo tutorial.
Autore
Ciao Paolo,
ottimo.
Attendo il tuo schema, foto e ciò che vorrai raccontare del tuo esperimento.
Mauro
Ciao mauro,
ho fatto un semplice circuito con un potenziomentro e un sensore di flessione (il sensore regola la rotazione del servo) per calibrare il tutto ho utilizzato il monitor del seriale da pc …..mi piacerebbe poter visualizzarealmeno i gradi del servo su un display (lo stesso del tutorial) oppure ancora meglio l’uscita del seriale stesso.
grazie in anticipo e grazie mille per aver condiviso le tue conoscenze con noi comuni mortali!
ok risolto! arrivarci da soli è una grande soddisfazione!
Autore
Ciao Orlando,
ne ero certo e condivido la tua soddisfazione ogni volta che riesco in un nuovo progetto.
Sempre valido l’invito a pubblicare il tuo progetto se vorrai.
Mauro
Autore
Ciao orlando,
sono anche io un “comune mortale” provo e riprovo e sono certo che ce la farai anche tu.
poi hai a disposizione Internet che il miglior alleato che io conosca.
Mauro
Ciao Mauro
ho appena finito un progetto di un sensore di parcheggio con arduino, prima di far partire il programma e visualizzare la distanza su un display lcd 16×2 ecc. volevo chiederti come fare ( se possibile ) comparire una specie di presentazione con nome, cognome e istituto ecc. per alcuni secondi, dopo di che far partire il programma e visualizzare la distanza e tutto il resto. Grazie
Autore
Ciao Jacopo,
sei sicuramente bravissimo se sei riuscito a fare tutto da solo.
Per il tuo dubbio io proverei a mettere nella sezione setup() una serie di linee che scrivano sul display le informazioni che vuoi visualizare prima di eseguire il loop() intervallandole con un delay.
Mi piacerebbe ricevere via email ( casella info del blog ) le foto e lo sketch che hai realizzato.
Mauro
Certamente, questo progetto è la tesina che ho realizzato per l’esame di maturità di quest’anno e sto aggiungendo gli ultimi ritocchi, appena riesco ti mando foto e sketch, grazie per l’aiuto provo e ti faccio sapere !
Autore
Ottimo Jacopo
Ciao, ho collegato tutto a dovere (spero), mi si illumina e credo che il display scrivi in cinese … nel senso cho ho delle righe con punti interrogativi, underscore, rettangoli neri ed un altro simbolo orientale ….
mica c’è bisogno di settare qualcosa ?
Thanks
Autore
Ciao Luigi,
se il display é lo stesso dell’articolo non devi impostare nulla.
Il fenomeno e osservi potrebbe essere dovuto ad un errore di connessione dei pin DATA.
Mauro
Ciao Mauro complimenti x il sito
Sono un po’ in difficoltà e penso che tu sia l’unico che possa aiutarmi
ho acquistato un arduino uno e display keypad shield 16×2
Avendo un display LCD shield si innesta tranquillamente alla scheda arduino uno,dando alimentazione il display si accende e il potenziometro regola il contrasto
Ma non riesco a visualizzare nessuna scritta sul display
Stessa identica cosa me la con un display sempre 16×2 ho saldato i pin e collegato i vari cablaggi
Anche collegando il software non riesco a concludere niente
Ti ringrazio
A presto
Autore
Ciao Giuliano,
prova ad usare lo sketch presentato nell’articolo dedicato alla KeyPad LCD, ce ne sono diversi sul Blog.
Mauro
ciao Mauro
ho un problema col la scrittura da kaypad a lcd, come faccio a scrivere numeri interi sul lcd, sn riuscito a farli scrivere 2 contemporaniamente pero a me mi serve scrivere per esempio 134
ti ringrazio in anticipo
Autore
Ciao Valon,
sul blog trovi alcuni sketch dedicati alla KeyPad LCD che puoi consultare.
La scrittura sul display la puoi eseguire nello stesso modo in cui la fai sul display mostrato in questo sketch, non varia se vuoi scrivere 1,2,3,4,5,6,7,8,9…16 caratteri
Mauro
grazie della risposta, ho un progetto che devo aprire un uscita e aspettare quel numero che gli scrivo quello e il mio problema
Autore
Ciao Valon,
non ho capito cosa intendi realizzare e come coinvolge la Keypad LCD.
Mauro
esempio : scrivo col kay pad 145, accendo il led per 145 secondi, il led deve rimanere acceso per qualsiasi numero io scriva sul LCD con kaypad
Autore
Ciao Valon,
ok, ora mi é più chiaro casa vuoi realizzare con la Keypad.
Mauro
mi potresti aiutare con un piccolo pezzo ? cmq complimenti per il lavoro che fai appena avro un po di soldi faro una donazione per mandare avanti il tuo lavoro, ciao grazie
Autore
Ciao Valon,
il progetto mi sembra realizzabile con poche righe di codice, io partirei con dividere i blocchi logici:
1. impostazione del numero
2. accensione del led
3. attesa del tempo di pausa
4. spengo il led
Per impostare il valore puoi usare una variabile int;
Alla pressione del pulsante RIGHT della keypad incrementi il suo valore di 1;
Alla pressione del pulsante LEFT della keypad decrementi il suo valore di 1;
Alla pressione del pulsante SELECT della keypad passi alla blocco 2,3 e 4;
Mauro
ciao Mauro
Io ho lo stesso tuo display LCD ACM1602B, sul programma non ci sono errori, e per i collegamenti ho eseguito i tuoi, ma sul display non mi compare nulla come mai ?
Autore
Ciao Cristiano,
il display si accende? Ruotando il potenziometro compaiono dei quadrati neri in corrispondenza dei caratteri?
Mauro
Ciao, io ho il tuo stesso LCD, ho collegato tutto come fai vedere nel tutorial, ma non appare niente sullo schermo. Io non uso il potenziometro, puo dipendere da quello?
Autore
Ciao Andre,
potrebbe, il potenziometro regola il contrasto.
Mauro
Salve,
avrei bisogno di un aiuto, non riesco a capire come mai non funziona un LCD I2C seriale che ho appena acquistato lo collego ad ARDUINO UNO tra GND 5V SDA su A4 ed SLC su A5, scarico il codice esempio ma non visualizza nulla dove sbaglio ? indirizzo 0x27 di seguito le copio il codice.
Autore
Ciao Giovanni,
nei miei articoli c’è scritto chiaramente di non pubblicare codice nei commenti illeggibile, ti chiedo di rispettare questa regola.
Per il display seriale ho da pochi giorni scritto un articolo a riguardo e so che non tutte le librerie I2C sono uguali.
Io ho dovuto utilizzare quella del produttore del monitor seriale xchè le altre trovate in internet non hanno funzionato.
Mauro
Buongiorno Mauro , volevo chiederti se lcd e la scheda data logger ( mi riferisco a quella con SD e orologio insieme ) possono convivere ; mi sembra che per il loro funzionamento utilizzano alcuni pin in comune ( in particolare i pin compresi dal 10 al 13 mi sembra di aver capito ) . Per quanto riguarda invece , i pin dal 2 al 5 nel tuo articolo spieghi che si possono cambiare senza problemi ( variando lo sketch ) . Grazie .
Autore
Ciao Nicola,
le due RTC shield che ho io non hanno la SDCard integrata.
Il progetto Datalogger usa sia una shield SDCard sia una shield RTC e che io ricordi non usano gli stessi pin.
Di solito la RTC utilizza i pin A4 ed A5 ossia SDA ed SCL e non i pin 10-13 che sono usati per la comunicazione ICSP.
Mauro
Salve Mauro,
Prima di tutto vorrei ringraziarti per tutti i tutorial che ci offri, poi avrei qualcosa da chiederti…ho appena comprato questo LCD: http://www.robot-italy.com/it/16×2-lcd-display-green.html
Sul datasheet c’è scritto: GDM1602K
Ho fatto tutti i collegamenti come i tuoi per ben 17 volte e si illumina tutto, (anche con potenziometro da 10Kohm) ma i caratteri non vengono printati….se aumento al max il potenziometro si vede solo la prima riga tutta di quadratini neri; ora non vorrei che fosse perchè non ho saldato i pin all’lcd ma solo appoggiati con delle femm/maschio che arrivano alla bread, se puoi darmi una risposta mi faresti un grosso piacere.
Autore
Ciao Jack,
prova a verificare il datasheet che il venditore ti ha inviato, a volte è solo la posizione dei pin a differire da LCD ad LCD e causa gli effetti che rilevi.
Mauro
Grazie Mauro…ho provato a vedere e si avevo invertito un pin, poi si leggevano caratteri strani ma mi è bastato staccare e collegare l’alimentazione e ora va perfettamente…Grazie di cuore Mauro
Autore
Bene jack
Buonasera Mauro….non sapendo dove chiedertelo te lo chiedo qui:
Mi sono ritirato questo per provare un po come funziona:
http://www.robot-italy.com/it/standalone-toggle-capacitive-touch-sensor-breakout-at42qt1012.html
Ora vorrei chiederti se potresti spiegarmi un po tu come potrei iniziare (anche accendere e spegnere un led) perche ho provato e non ci riesco…cercato su internet nulla su questo sensore….mi potresti dare una mano ?
Autore
Ciao Jack,
non ho avuto modo di provare questo sensore e senza un test sul campo mi è complesso risponderti.
Potresti regalarmene uno con cui scrivere degli articoli?
Mauro
Ciao Mauro,
essendo un ragazzo di 15 anni, non ho possibilità economiche (dato che ho deciso di “automantenermi” su questi oggetti) di regalartene uno, anche se sarei molto felice di farlo; in ogni caso, se me ne capiterà un’altro sotto mano ti scriverò.
P.S: ho un’altro problema con l’LCD…ho fatto un Termometro con TMP36 e potenziometro che printa la temperatura sull’LCD. Ora: ho fatto tutti i collegamenti bene, il termometro printa bene sul seriale ma ho sempre lo stesso problema di contrasto dei caratteri dell’lcd…che se aumento di colpo il potenziometro di intravedono e un’attimo dopo scompaiono ritornando dei rettangolini neri…ho cercato ovunque, cambiando anche potenziometro ma niente.
Sapresti aiutarmi ?
Autore
Ciao Jack,
è ovvio che la tua giovane età non ti consente di far fronte a spese extra, comprendo.
Tuttavia è pur vero che hai tante possibilità di documentarti su internet e di certo sei nell’età migliore per iniziare con arduino e con i sensori per cui ti incoraggio a continuare e studiare sempre di più questo sistema che può darti tante soddisfazioni.
Il comportamento del tuo LCD è anomalo, sembra legato al contrasto del potenziometro che puoi sostituire se ne hai un’altro.
Tuttavia non escludo che possa trattarsi anche di un difetto dell’LCD in quanto se giri lentamente il potenzimetro dovresti prima o dopo vedere i caratteri e non solo per pochi secondi.
Mauro
Ciao Mauro, come si fa a fare un menu su arduino da pubblicare su arduino ? vorrei fare un menu per cambiare la visualizzazione della temperatura su lcd.
Autore
Ciao Giacomo, i menù sono complessi da realizzare ma non impossibili. Io ne ho realizzato un tipo nel progetto del Dolly che puoi usare per iniziare a scrivere il tuo.
Ciao Mauro, non sono molto esperto, ho basi di elettronica (al secondo superiore addirittura creammo un processore, faceva due operazioni in croce, ma funzionava), ma sono passati tanti anni, in compenso però nella vita sono un programmatore :); Ho un dubbio: tu dici che “il pin 3 va collegato al cursore del potenziometro da 10KΩ i cui estremi devi collegarli uno al polo positivo ed uno al polo negativo;”, bene, io ho acquistato un 67WR10K della BI Technologies e collegando il pin 3 ai 5V, il numero 1 a GND ed il 2 al pin3 dell’lcd, sullo schermo non appare nulla, si è risolto tutto eliminando il pin 1 che era a GND; Ho capito io male a leggere le istruzioni, oppure non ho capito il funzionamento del potenziometro?
Ti ringrazio
Autore
Ciao Fabio,
non conosco il tipo di potenziometro che hai tu, potrebbe essere differente come schema di connessione da quello che ho usato io e questo spiegherebbe il malfunzionamento.
Considera che un potenziometro standard per funzionare in modo corretto deve essere collegato completamente e non solo con 2 pin, forse il tuo è differente.
Boh, non so che dirti, l’ho collegato in tutti i modi possibili ed immaginabili, ma funziona solo come ti ho descritto su.
Vabbè a parte questo, volevo chiederti una cosa, anche se qui probabilmente non c’entra un bel nulla, avrei bisogno di erogare 12V da arduino; premesso ciò e non volendo andare contro il primo principio della termodinamica, ho letto da qualche parte che per qualche strano marchingegno (scusa ma ho lasciato troppo presto l’università) in piccole quantità si possono generare volt o ampere; esiste una shield che fa questo (tipo driver per motori) od un qualche tutorial su questo tuo bel sito?
Ti ringrazio per avermi risposto.
Ti auguro il meglio
Autore
Ciao Fabio,
ho scritto un articolo in cui ho trattato le potenze erogabili da arduino.
Esistono dei circuiti in grado di erogare da 3,7v di una LiPo i 5v necessari ad alimentare arduino, per voltaggi superiori non so.
Formulata in questo modo mi è difficile comprendere cosa tu voglia realizzare e di conseguenza aiutarti.
Ti suggerisco di cercare nel blog argomenti simili al tuo problema e commentarli.
Salve Mauro,
in una applicazione con lcd usando la classica libreria standard, ho riscontrato alcuni problemi:
se visualizzo un contatore, quando passa dalle unita’ alle decine incrementando sul display il posto delle unita’ lascia il posto alle decine traslando verso destra ,
mentre quando decresce dalle decine alle unita’ fa’ la stessa cosa verso sinistra, ma mantenendo visualizzato 0 alla sua destra es.
12,11,10,90,80…. e cosi’ via
sbaglio qualcosa nel programma ?
grazie per il tuo tempo
Mirco
Autore
Ciao Mirco,
non sbagli nulla in quanto la posizione del cursore è gestita in automatico dalla libreria, ti consiglio di pulire il display o di usare la tecnica del sprintf() per evitare questo problema.
Trovi molti miei articoli in cui la utilizzo con grande efficacia.
Buongiorno.
Meglio premettere che sono un neofita completo su arduino. Non ho alcuna idea di come funziona e a dire il vero le varie ‘lezioni’ e le varie istruzioni sono, per me, piuttosto ostiche. Ora ho comprato un kit su ebay a poco prezzo e mi è arrivato da pochi giorni. Il primo problema è saltato immediatamente fuori: l’arduino comprato si chiama in verità Dcduino. Ma, io che sono furbissimo, fortunatamente avevo già comprato una scheda originale, una vera arduino uno in attesa che venisse la voglia di sperimentare.
Perché dico questo? Perché preso da sacro furore e con tanta voglia di provare a vedere se (almeno) il tutto funzionasse, ho scaricato da arduino.cc il programma. Ovviamente con il kit non funziona: mi dice che mancano driver su Mac della seriale. Primo accidente tirato contro i muri. Allora (come detto sono furbissimo) ho tirato fuori dal cassetto il primo arduino UNO acquistato precedentemente. Per farla breve sono riuscito a sfiorare la nomination all’oscar con il mio led che si accendeva e spegneva. Deo gratias.
Dopo aver atteso la fine degli applausi, mi è venuta voglia di vedere qualcosa sul display. Sul quale, collegato e verificato più e più volte nei contatti, mi accingo a vedere se riesco a dire la famosa frase (era di Marlene Dietrech?) ‘Hello mondo’.
Niente. Nisba. Niet. Nè Hello né altro.
Allora guardo le istruzioni…
Ora nel rileggere il listato (copiato e incollato, quindi senza errori) mi accorgo che esiste un comando:
#include
Nella mia elementare conoscenza di questo mondo, ciò dovrebbe dire che esiste una libreria da caricare chiamata LiquidCristal.h che presumo vada a dover essere caricata prima o con il programma che fa funzionare il display.
Ora i problemi sono due: dove trovo tale libreria (se la mia ipotesi della libreria è vera?). In rete non c’è.
Il secondo dilemma è per me insormontabile: avendo due schede tra loro differenti, come posso caricare i driver seriali di DcDuino? E se li carico (e poi li scelgo dopo aver collegato alla usb il rispettivo arduino/dcduino) rimangono nel programma senza conflitti?Cioè, si allunga unicamente l’elenco di tali driver?
Inoltre mi chiedo se devo disinstallare ogni volta il programma per arduino e installare quello per Dcduino ogni volta che ne collego uno di loro?
Mi pare di aver bene evidenziata la mia confusione, ma d’altronde chi si è incaricato di spiegare come fare a far funzionare il povero processorino, non si degna di dire le cose più elementari, che per carità sono luminose e chiare per tutti, ma non per coloro che come me, sono all’inizio, che siamo come pagine bianche da riempire.
Se ha voglia di darmi risposta le sarò ultra grato. Non posso assicurarle di pagarle la pizza ma nel remoto caso che l’Italia si risollevi dal fondo nel quale è precipitata, posso sempre contemplare di farle avere una semplice quattrostagioni ristretta ma di forma tondeggiante e colorata.
la ringrazio
Renato L.
Autore
Ciao Renato,
il tuo commento è molto divertente, anche se lungo 🙂
Premetto che di cloni arduino ne esistono tantissimi ed io uso e conosco solo quelli ufficiali prodotti da arduino o dai partner certificati.
La premessa escude DCDuino del quale ho letto per la prima volta oggi, nel tuo commento.
In merito alla libreria LiquidCristal è inclusa nell’IDE arduino, il programma che hai scaricato per programmare arduino, per cui a parte l’include non devi far nulla.
A naso ti direi che il tuo display è differente da quello da me utilizzato e probabilmente anche da quello di molti kit in circolazione, dovrai verficare quali pin sono compatibili con lo schema dei cablaggi e sistemarli sul tuo display. Solitamente i produttori di LCD rilasciano lo schema dei collegamenti dei display, se non lo fanno puoi procedere per tentativi cercando su internet schemi simili al tuo display.
In generale consiglio a tutti, sopratutto a chi inizia, di acquistare solo materiale da produttori certificati che rilasciano on-line la documentazione dei kit e dei componenti per evitare di ritrovarsi con dell’ottimo materiale inutilizzabile.
Bonjour
Je suis très intéressé par le solar tracker de votre vidéo comment puis-je obtenir la documentation générale pour sa réalisation s’il vous plait?
Cordialement
Autore
Bonjour René, vous pouvez obtenir la documentation en lisant l’article sur le solar tracker.
Ciao,
Anzitutto complimenti per tutte le ottime guide da te svolte.
Vorrei chiederti la seguente perplessità
Ho bisogno di pilotare un display 16×2 e fino li tutto ok
Il problema è che devo mostrare dei dati con lunghezza variabile e vorrei farlo senza pulire completamente lcd.clear(); ad ogni scrittura in quanto mi da fastidio quel flash che lo schermo compie ad ogni pulizia completa (pensiamolo per dati aggiornati ogni 100ms)
Come posso fare ?
Avevo pensato ad una sostituzione dei caratteri con dei spazzi ogni qual volta la stringa cambia ma mi sembra una soluzione un po’ complicata, possibile che non ci sia già una libreria o una funzione che riesca a mantenere il display pulito
Ciao e grazie!
Autore
Ciao Luigi,
puoi inserire i commenti in un solo articolo, se è l’articolo errato, purché sia chiara la richiesta, provvedo io a spostarla sull’articolo corretto.
Per il display LCD puoi usare sprintf() come faccio in alcuni articoli come il dolly, datalogger, ecc..
ok,
grazie per la risposta 😉
Ciao Mauro, compimenti per la spiegazione, conosci la libreria MENWIZ, per gestire e creare dei menù su arduinio, visualizzabili su display?? Se magari ti andrebbe di fare una guida te ne sarei molto grato.
Autore
Ciao Davide,
non la conoscevo, sembra interessante ma dovrei studiarla perché non mi sembra di aver trovato una wiki dell’autore.
Se fai degli esperimenti e ti va di pubblicarli sono a disposizione.
Ciao Mauro,
ti faccio anche io i complimenti per tutte le conoscenze che metti a disposizione, sono guide davvero utili!
Mi unisco alla richiesta di Davide, visto che non si trova in rete una guida per MENWIZ (ma solo il materiale messo al disposizione dallo sviluppatore), potresti farla tu? A me in particolare servirebbe per gestire un menù per una centralina irrigazione un po’ più complicato di quello della tua guida poiché vorrei inserire diversi programmi di irrigazione, sono abbastanza nuovo del mondo di Arduino e gestire i menù col display LCD non sembra per niente facile. Poi penso che una libreria del genere si possa utilizzare in decine di progetti diversi!
Saluti e grazie per la disponibilità!
Marco
Autore
Ciao Marco,
siccome sei già il secondo a formulare la richiesta proverò a fare una guida a chiusura dei miei progetti, che non sono pochi 🙂
In ogni caso resto dell’idea che l’approccio più semplice alla gestione dei menu sia senza una libreria ma scrivendo le voci di menu in un array e usando gli indici per la visualizzazione. Comprendere questa semplice tecnica rende decisamente più semplice l’approccio a qualsiasi altro metodo.
Va bene, allora proverò ad applicarmi! È possibile che in effetti per menù base sia più semplice come dici tu, piuttosto che imparare ad usare una libreria…però sai essendocene tante per gestire i menù (MENWIZ è solo un esempio), mi chiedevo come mai non si trovino guide decenti che ne spieghino l’uso.
Ti ringrazio nuovamente per il lavoro che fai per tutti!
Autore
Ciao Marco,
spesso gli autori delle librerie scrivono la documentazione supponendo che chi utilizza le loro opere sia esperto almeno quanto loro.
Se esistono altre librerie per gestire i menu, io le ignoro, puoi verificare se qualcuna di essa sia correlata da un maggior numero di esempi e una documentazione più chiara
Ciao Mauro
Sono un neofita di arduino . Sto seguendo il corso base on-line ed ho provato a collegare il display contenuto nello starter kit V2 originale ARDUINO. Il modello del display è un 1602A. Ho già verificato le pinature ed adeguate come suggerito nel tutorial. Scaricando su ARDUINO lo sketch “HELLO WORD” il display si accende ed in modo ciclico, ogni 4-5 sec, varia la luminosità. Inoltre si notano alcuni pixel nella seconda riga, quasi fosse un disturbo. La cosa per me più strana, però, è che togliendo l’alimentazione (+5V e GND) continua la variazione di luminosità ma non si nota più alcun pixel. Questa ciclicità Da cosa può dipendere?
Grazie e complimenti per il sito
Ciao
Paolo
Autore
Ciao Paolo,
il modello di display utilizzato in questo tutorial è il 1602B e non il tuo, controlla sul manuale incluso nel kit la corretta piedinatura del modello 1602A
Ciao Mauro
Il problema sta nella piedinatura. Il data sheet del 1602A è corretto e non necessita di essere modificato come su indicato.
Grazie mille
ciao
Paolo
Autore
Ciao Paolo,
non ho compreso cosa tu abbia scritto ma se hai risolto a me va bene 🙂
Buongiorno Mauro, io sto usano l’lcd marchiato LCM1602C che era nel kit di arduino, funziona lo stesso seguendo questa guida, mi chiedevo come mai però funziona solo se uso i pin di arduino 5-4-3-2 , ho provato ad esempio utilizzando i 7-6-5-4 ma non funziona. Grazie mille. Ottimo Blog. Ciao.
Autore
Ciao Luca,
tra la prima serie di pin e la seconda non ci sono differenze fondamentali su arduino per cui potrebbe dipendere dal tuo collegamento, dal software, che devi adeguare cambiando i pin dati, o da qualche altra shield/sensore che interferisce con l’LCD
Ciao mauro , ho eseguito il progetto n° 11 dello starter kit, controllando i collegamenti ad uno ad uno, ma c’è la retroilluminazione e compare una barra superiore, quella inferiore nisba, oltretutto, nessun messaggio. ho usato quello in dotazione, ovvero lcd-LCM1602C. Secondo te è guasto?
Grazie anticipatamente ciao
Roberto
Autore
Ciao Roberto,
purtroppo non conosco l’esercizio di cui scrivi, non so a memoria tutti gli esercizi del manuale dello starter kit, posso di certo dirti che situazioni come quelle che verifichi sul tuo display possono derivare da un errato collegamento, magari il modello incluso nel tuo starter-kit è differente da quello descritto nel libro e varia qualche connessione.
ciao mauro io ho dei problemi con il caricamento del file dopo la verifica dello sketch, mi dice trovata libreria non valida e non ho idea di come ovviare a questo problema.
Tieni presente che io uso un display lcd standard i2c e ho scaricato l’apposita libreria.
Autore
Ciao Davide,
questo articolo è riferito a Display che non sono I2C, prova a leggere gli articoli dedicati a quel tipo di display: troverai lunghe discussioni sulle librerie e sulle loro applicazioni.
Il primo stepper e conoscere il chip di controllo i2c, l’indirizzo i2c e le modalità di connessione del display.
Ciao Mauro, sono alle prime armi con la programmazione di Arduino, ho realizzato un commutatore di antenna per radioamatori che con un selettore a 4 posizioni dove riesco a cambiare il tipo di antenna tramite dei relè 12v . Al momento riesco a visualizzare il tipo di antenna tramite dei diodi led che si accendono in base al numero del pin del selettore . Per renderlo più figo vorrei inserire all’interno Arduino con un Display display 16×2 e fare in modo che quando cambio posizione mi scriva il tipo di antenna. Purtroppo essendo alle prime armi non sò come fare con lo Sketch. Mi potresti aiutare te ne sarei grato….GRAZIE
Autore
Ciao Lino,
certamente la soluzione al tuo problema la conosci, è più semplice di quello che hai gestito fino ad ora.
Non devi far altro che impostare una differente frase o testo per ogni led e quando accendi il led X usi i comandi di print per visualizzare sul display il testo corrispondente.
ritieni utile equipaggiare il fancoil skudo con il controllo LCD più sistema Modbus a bordo con sonda temperatura e a che serve , inoltre se detto meccanismo potrebbe creare problemi di gestione , grazie antonio
Autore
Ciao Antonio,
perdonami ma non ho capito cosa vuoi realizzare e cosa non è chiaro di questo articolo.
[…] seguire le istruzioni per collegare l’LCD riportate in questo articolo, se preferisci ti ho realizzato uno schema dei collegamenti completo con Fritzing in cui non è […]