Ahaha! Giusto! grazie mille!
Comunque una 10 ohm in parallelo all'alimentazione fa 0,5A, quindi il limite dell'USB, davvero il rischio era minimo o nullo; comunque sapendo che il potenziometro in genere è un 10K forse era più consona una prova con 5k.
Giusto per non fare sembrare questo mio post inutile ti dò una dritta: il potenziometro puoi usarlo come semplice resistenza variabile invece che come trimmer, colleghi il pin del contrasto al centrale del potenziometro, ed uno qualsiasi dei laterali a GND, vedrai che ti funziona benissimo lo stesso, senza "coinvolgere" il positivo.
Ok provo come hai detto tu! Solo una cosa: come facevo a sapere che il trimmer restituiva il gnd anziché il positivo?
SUBSEA:
Ok provo come hai detto tu! Solo una cosa: come facevo a sapere che il trimmer restituiva il gnd anziché il positivo?
Forse non ho capito bene, un trimmer è come una doppia resistenza variabile con un capo in comune, in pratica è un partitore variabile; sul centrale, in base alla posizione del perno, ti trovi una tensione che va da 0V a 5V.
Il sitema che ti ho suggerito io funziona perché tutti i nuoci LCD il riferimento positivo lo hanno già interno, quindi non devi fare altro che aggiungere una resistenza tra il pin del contrasto e GND, devi usare un potenziometro perché non sai qual è il valore ma una volta trovatolo, se non ti serve variarlo, nessuno ti imedisce di togliere il potenziometro e mettere una R fissa, del valore che misurerai sul potenzimetro.
Capito! Gtazie ancora! Comunque intendevo perchè il capo comune conduceva il negativo invece del positivo.
Altro problema: come mai non mi va più in là di 8 caratteri? Mi spiego meglio, lui arriva all' ottavo carattere, non va oltre. questo è lo schema:
/*
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 1);
lcd.print("hello, world!");
}
void loop() {
lcd.setCursor(0, 1);
lcd.print(millis()/1000);
}
in poche parole mi appaiono solo "hello wo"
Prova a mettere:
lcd.setCursor(0,0);
avevo già provato, ma non cambia nulla... Comincio a credere di aver un display sfigato!
SUBSEA:
avevo già provato, ma non cambia nulla... Comincio a credere di aver un display sfigato!
Avresti una foto? magari non è un 16x2 ma è un 8x4 con due linee affiancate
e poi perche' scrivi
lcd.begin(16, 1);
se e' un 16x2
Ecco è proprio questo il problema. Io ho detto che era 16×2, ma io vedo solo un layer.
lcd.begin(16, 1);
per quanto ne so la numerazione delle righe va da 1 a 4 con valori da 0 a 3, quindi dovrebbe essere corretto. E comunque al massimo non funzionerebbe la seconda riga non la seconda metà della prima riga
In poche parole l ho pagato la metà che uno su eBay e quindi ho metà caratteri
SUBSEA:
In poche parole l ho pagato la metà che uno su eBay e quindi ho metà caratteri
Non scherziamo, vediamo invece di farlo funzionare, poi tutto può essere, ma era un privato o un Venditore? nel secondo caso hai diritto alla sostituzione, ma prima di fare figurimm è meglio ricontrollare tutto. Prendiamo l'Hello World originale, dove effettivamente il comando "16,2" sembra dare ragione a brunello, ma io ho usato 20,3 per un LCD 20 caratteri per quattro righe:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("hello, world!");
}
void loop() {
lcd.setCursor(0, 1);
lcd.print(millis()/1000);
}
quindi l'unica differenza sta nel 16,2 per cui prova a rimetterlo così e vediamo che succede.
L'altra problematica in genere sono i collegamenti, l'errore di inversione di qualche pin o proprio di uso di un altro pin, o i contatti, in quantp molti di noi pensano che gli elettroni, essendo leggerissimi, possono viaggiare nell'aria e far funzionare i componenti anche senza il contatto fisico, ergo: puoi postare una bella foto nitida dei collegamenti tra Arduino e LCD?
I collegamenti sono esatti e ho provato in tutti i metodi, ma si ferma davvero ad 8 caratteri. In questi giorni provo a comprarne un altro e vedere se ha lo stesso problema. Intanto sapete altre possibili soluzioni?
Sì, la numerazione parte da 0 ma per quanto riguarda l'indicizzazione (es. posizionare il cursore). Quando fai un Lcd.begin() devi passare il numero di righe e colonne di cui è effettivamente composto il display: quindi per un 20x4 devi scrivere Lcd.begin(20,4).
Nello sketch del modulo display dell'HV io ho usato 20,3 (ho controllato ora) eppure tutto funziona regolarmente
Ma con begin si deve passare la dimensione del display, non gli indici delle righe e delle colonne.
Non so perché ti funziona ma in teoria non va bene. Io uso (20,4) con un display 20x4 appunto.
Ma... oggi provo con 16, 0 poi vi dico ma sono scettico