Come usare un display Oled 128x32 I2C con Arduino -
Вставка
- Опубліковано 28 січ 2025
- In questo video collegheremo un display oled i2c ad Arduino. Il display usa una connessione i2c e può essere controllato con le librerie fornite da adafruit. Video n.196 del corso Arduino in 100+ video.
Sorgenti, schemi e slide: github.com/zma...
Indice dei video:
www.zeppelinmak...
Puoi scaricare gratuitamente i miei libri:
"Il manuale di Arduino - gumroad.com/l/...
"Il cookbook di Arduino": gumroad.com/l/...
Altre informazioni e libri sul mio sito: www.zeppelinmaker.it
I sorgenti su github:
github.com/zma...
I tuoi tutorial sono sempre uno spettacolo!
Considerata la grande padronanza dei vari argomenti trattati e l'attitudine ad esporre il tutto con estrema chiarezza, ti vedrei bene come docente presso un Istituto Tecnico Industriale (sempre che non lo sia già!): i tanti ragazzi appassionati della materia ti seguirebbero con grandissimo entusiasmo
ho abbandonato l'insegnamento dopo un anno in un CFP.
@@zeppelinmakerÈ un vero peccato perché il livello medio di tanti Docenti è piuttosto scarso. Sto in questo mondo da oltre trent'anni e posso assicurarti che una persona come te potrebbe offrire un eccellente contributo nella formazione della generazione che potrebbe far spiccare un salto a questo Paese nei prossimi anni.
Io una domandina per il Concorso Docenti, la presenterei, almeno nella classe B015: ho visto il test dell'ultima prova scritta e lo supereresti ad occhi chiusi.
Avresti inoltre tutto il tempo per portare comunque avanti i tuoi tanti interessi tecnici!
Bruno ha ragione. Dovresti provare a insegnare in un istituto tecnico industriale.
Ciao Paolo, Oggi stavo per la prima volta usado questo piccolo display, ma con solo le librerie "SSD 1306" e "GFX" di Adafruit, mi dava errore nel caricamento non trovava "Adafruit_I2CDevice.h". Ho dovuto installare anche la libreria "Adaruit_BusIO", poi ha funzionato tutto. Giusto per... :-D
Ciao Paolo,
come sempre video utilissimo!
Ma un video su come creare dei menù con questo OLED e 3 tasti? Mi aiuterebbe un sacco!
Ottimo lavoro
Ciao, ottima idea, me lo segno.
mi accodo a questa petizione, magari anche con un encoder... grazie mile
Aspettavo con ansia un tutorial con i display Oled I2C, come sempre preziosi consigli. Spero anche in un futuro tutorial con display touch screen tipo: ELEGOO TFT Touch Screen o meglio ancora i TFT della Nextion che comunicano in seriale. Grazie Paolo :-D
eh... me lo dovrei procurare...
Hai ragione, costicchia un pò....
Ciao, sto sostituendo un monitor LCD rotto di un odometro di uno scooter. Come posso riconoscere il pezzo da sostituire? Vedo solo 11+11 pin di collegamento
Ciao . Ma come posso fare per usarne 2 uguali che hanno lo stesso indirizzo???
Ciao Paolo complimenti per i tuoi video, volevo chiederti se era possibile usare questo display grafico 128x32 con delle scritte in verticale, avrei la necessità di inserirlo in un frutto della bticino per indicarmi una temperatura. Grazie.
credo ci sia un parametro per l'orientamento... ruota di 90
ma vado a memoria
tipo: display.setRotation(2); //metti un int da 0 a 3
Provo e ti faccio sapere....grazie intanto....
ciao ,sai perchè si accende soloo dopo il reset su arduino 2 collegandolo ai pin 20 e 21?
ciao Paolo ho scritto il tuo codice e a questa riga mi da errore if (!display.begin(SSD1306_SWITCHCAPVCC 0x3C)){ ho confrontato col tuo e uguale grazie
anche a me... poi hai risolto?
Paolo... Sei grande grazie. Ma inserire grafica?
basta curiosare tra gli esempi forniti con la libreria
Ciao,grazie come sempre per il tuo contributo,ho provato a replicare con un Arduino NANO cinese ma non riesco a visualizzare nulla mentre con Arduino UNO funziona bene. ho collegato sda sul D4 e scl su D5 (parlo del nano) ma non funziona. mi sai dire dove sbaglio? grazie
ciao, ma ce un modo per far si che un testo "lungo" che non ci stia in una sola riga non sconfine nella seconda ma semplicemente la parte che non ci sta non venga stampata. Magari scorrerlo per leggerlo tutto? insomma, disattivare l'acapo automatico per intenderci
puo usare una funzione substring... così tagli il testo alla lunghezza del display. www.arduino.cc/reference/en/language/variables/data-types/string/functions/substring/
grande Paolo, e luiiiiii :-)
ti ho fatto anche il "promo"... ;-)
ciao, se l'indirizzo è 0x3c e non posso cambiarlo, non posso utilizzare due o più moduli OLED con lo stesso microcontrollore?
ua-cam.com/video/0fkE8j8p104/v-deo.html
Salve volevo chiedere se avevi in programma dei video sulla comunicazione tra 2 schede Arduino. Una cosa che non ho ancora trovato in giro é se due schede Arduino possono comunicare tramite i moduli Bluetooth hc06. Grazie e ancora complimenti per il corso
Ciao. Con la software serial si: ua-cam.com/video/mgcmJg_ptoA/v-deo.html
Con il bt sto facendo esperimenti ma è un problema perché il BT cinesi hanno un firmware incompleto ed è difficile farlo funzionare.
@@zeppelinmaker si quel video lo avevo visto, intendevo senza fili. Attendo allora qualche altra soluzione. Grazie
Complimenti, per hobby mi ha avvicinato alla programmazione. Volevo chiederLe se poteva aiutarmi o darmi qualche dritta per andare a pilotare 2 OLED 128x64 con la lettura di due sensori. Mi blocco al punto che caricando lo sketch vedo solo il display di sinistra.
Ho modificato fisicamente l'indirizzo spostando la R, dell'OLED, su 0x7A; lanciando I2C scanner rileva 0x3C e 0x3D. Ma poi nulla.
Potrei optare per un display più grande ma comunque ho la necessità di leggere una pressione, dentro ad un motore e la temperatura olio.
Intanto grazie
Ciao ! Io ho due OLED 128x32 su 0x3C....ovvio leggono entrambi i stessi dati avendo lo stesso indirizzo!!! Come hai fatto a modificare fisicamente l indirizzo di uno?
Ciao Paolo , non riesco a creare il simbolo dei gradi "°" su un display oled. Puoi aiutarmi?
display.print((char)247);display.print("C");
@@zeppelinmaker PERFETTO grazie già testato
[RISOLTO] vanno collegati su A4 e A5 grazie ciao
ottimo! Mi confondo spesso pure io
Ciao Paolo! Ottima spiegazione come sempre! Per caso hai in mente di spiegare il modulino Sint RDS Si4703? Grazie Fabio
ciao. Lo dovrei acquistare appositamente... se mi dovesse capitare ci penso.
Ciao, una cosa carina di questi display OLED, per lo meno il mio, è che funzionano anche a 3,3 V, mentre gli LCD1602 vogliono i 5V. Io quindi li accoppierei per comodità a un mkr1010, un promini o una lilypad.
I dont mean to be off topic but does any of you know of a tool to log back into an Instagram account?
I stupidly forgot the account password. I love any tricks you can give me
@Manuel Eliseo instablaster :)
@Royce Jaziel Thanks so much for your reply. I got to the site through google and Im trying it out atm.
Looks like it's gonna take quite some time so I will get back to you later when my account password hopefully is recovered.
@Royce Jaziel It did the trick and I finally got access to my account again. I'm so happy:D
Thanks so much you saved my account!
@Manuel Eliseo You are welcome :D
ciao, potresti fare un video dove spieghi come usare csharp.
Devo comandare un braccio robotico che utilizza il SSC 32u
Altro che un video serve... :-)
Ho provato il codice semplice per scrivere solo "Hello" su display i2c --> connesso e compilato correttamente --> caricato --> scheda e display oled fulminati...
Buona sera Paolo. Oggi ho ricevuto i 2 display OLED SSD1306 per provare tutti gli sketch che hai proposto ma purtroppo nessuno ha funzionato. Ho caricato tutte le librerie (WIRE - SSD 1306 - GFX) ed ho provato anche lo sketch di prova della libreriai ma nulla di fatto. Ho controllato più volte i collegamenti ma mI ritorna il messaggio : "errore durante la compilazione per la scheda Arduino" Le schede sono AZ-DELIVERY. Potrebbero essere guaste? Nel caso le ritorno indietro. Saluti
ma che errore esce?
@@zeppelinmaker Buongiorno Paolo. Il messaggio di errore era "ERRORE DURANTE LA COMPILAZIONE". Comunque ho risolto caricando la libreria U8GLAB come dal tuo video 355. Ho caricato lo scketch di prova e funziona. Adesso provo anche il tuo sketch del video 355. Per gli scketch degli altri video quali librerie caricare?
Le librerie Adafruit sono veramente le migliori in assoluto, l'unica cosa che cambierei nel codice appena mostrato è invece di
if(!display.begin(...)){while(true);}
Avrei messo while(!display.begin(...)) {}
In questo modo non si blocca definitivamente nel setup e appena il display viene riconosciuto esce dal while, cosa che altrimenti non accadrebbe.
Olá, sabe informar como se faz a função scroll deste display? Gracie
Hello. You have to program the scroll... moving the text. The libraries only provide basic writing/drawing functions
ho messo le 2 resistenze da 10k ma non funziona, senza invece sì. OLED 12864 128x64 IC2
Ciao Paolo, quando inserico un testo molto lungo il display stampa solo una parte.
Vorrei stampare una stringa più lunga che scorre in orrizzontale, hai qualche consiglio da darmi?
Ringrazio.
Nel senso che lo taglia perchè la scritta sconfina i limiti? O ti si taglia prima della fine dello schermo? Per il Ticker usa questa tecnica: ua-cam.com/video/MnKF3ts1PCE/v-deo.html
Si, taglia perchè sconfina, forse stringhe troppo lunghe non si possono usare.
Ho visualizzato molte lezioni di questo sito interessantissimo e, come molti, mi complimento.....ora mi trovo a voler visualizzare con display OLED 1306 alcuni dati che variano velocemente nel tempo (per esempio il conteggio dei giri di un motoriduttore) ma la lentezza di questi dispositivi mi sembra elevata rispetto agli LCD con i quali riesco a risolvere . Se potessi mantenere le indicazioni dei valori e far scrivere solo i valori stessi nei loro campi forse potrei velocizzare??? è fattibile??? Ho fatto mille tentativi ma non ho risolto il problema anche perchè ho visto che per cose se pur semplici, alcune righe, la memoria occupata arriva quasi al 50% tella memoria totale.......Ringrazio e saluto Silvano G. Ferrara
Dovresti usare un buffer in cui metti i dati e poi li visualizzi solo ogni tot ms.
@@zeppelinmaker Grazie per la risposta e per il consiglio, vedro come fare.........forse un processore piu veloce aiuterebbe o sbaglio
dipende dalla quantità dei dati e dalla velocità del segnale... con un buffer gestito bene si dovrebbe riuscire. Ma sono segnali musicali?? Se si... arduino UNO non basta...
Ordinati oggi perché ho capito che la matrice di led MAX7219 è troppo grossa.
ora devo cercarmi il video in cui spieghi come utilizzare più dispositivi I2C, nella fattispecie un RTC3231 ed uno di questi display
ua-cam.com/video/0fkE8j8p104/v-deo.html
@@zeppelinmaker Ciao Paolo, ho visto la tua risposta ma non è quello che cercavo.
Io dovrei collegare due oggetti diversi, un RTC DS3231 ed un display Oled. Se provo con I2Cscanner mi trova i vari indirizzi, che sono differenti. Usando le stesso circuito se ci carico lo sketch con cui provo l'Oled questo funziona, se invece provo il mio sketch con anche l'RTC invece non va, mi si ferma nell'inizializzazione del Display e credo sia un problema di indirizzi i2c ma non so come fare
@@ivandelgaudio ma se hanno indirizzi diversi non dovrebbero esserci problemi. Prova a mettere le res di pullup.
@@zeppelinmaker Ho provato sia con le resistenze di pullup sia mettendo l'RTC sui pin SDA ed SCL ed il display su A4 e A5 ma senza risultato.
Adesso ho provato le librerie U8g e funziona ma non riesco a far scrivere un messaggio preso da un'array di messaggi. In pratica dovrebbe scrivere varie informazioni che cambiano ogni tot secondi e le informazioni sono contenute in un array. Usando le Adafruit compilava senza problemi, con le u8g mi da errore
niente, i collegamenti fatti come da video ma non funziona assolutamente, neanche il file di esempio funziona il display nemmeno si accende, inoltre nel video prima consiglia due res di 10kohm ma nel successivo con la breadboard non sono presenti, non capisco e cmq nemmeno con le res funziona, accidenti ho provato in tutti i modi, come si fa a capire se un display è riotto? AGGIORNAMENTO il problema era che dopo aver fatto i collegamenti anche senza i res da 10kohm ( funziona in tutti e 2 i modi) e caricato lo sketch dovevo premere il tasto RESET dell'arduino, in questo modo tutto funziona, scusate.
W
Km i