Buon sera a tutti. Ho bisogno del vostro aiuto.
Ho collegato i programmi di 4 strumenti (prelevati dalla rete). che presentano i loro dati e li visualizza correttamente su di un display LCD I2C e su un display OLED SSD1306.
Ma.... ci sono 2 problemi sul solo display OLED.
Il primo è che le scritte presentate sono un po' più grandi del solito, ma quello che più disturba è che si notano molto i pixel.
Il secondo problema solo sul display OLED, è che nel rinfrescare i valori letti, quest'ultimi vengono scritti sopra la presentazione precedente senza che questi primi valori siano stati cancellati.
Come si può immaginare la lettura del nuovo dato risulta impossibile.
Come si può risolvere questi problemi?
Grazie a chi vorrà aiutarmi.
Gestione display OLED
Moderatori: MassimoB, WALTERmwp, xyz
0
voti
ti rispondo in merito a quel poco che so. non ho grande esperienza in merito.
per quanto riguarda i caratteri grossi e squdrettati, penso possa essere una differente risoluzione tra gli schermi, se viene inviato il carattere come byte, (se lo schermo non ha un suo sistema di scrittura del font), questo carattere sarà grafico con una sua risoluzione che può dfferire da quella dello schermo.
per la gestione del refresh, suppongo che siano diversi i segnali di controllo tra i due schermi, quindi non viene eseguito correttamente.
io mi studierei i segnali di controllo dei due schermi, da qua risalirei ad i segnali che vado ad inviare al OLED correggendo gli errori di refresh.
saluti.
per quanto riguarda i caratteri grossi e squdrettati, penso possa essere una differente risoluzione tra gli schermi, se viene inviato il carattere come byte, (se lo schermo non ha un suo sistema di scrittura del font), questo carattere sarà grafico con una sua risoluzione che può dfferire da quella dello schermo.
per la gestione del refresh, suppongo che siano diversi i segnali di controllo tra i due schermi, quindi non viene eseguito correttamente.
io mi studierei i segnali di controllo dei due schermi, da qua risalirei ad i segnali che vado ad inviare al OLED correggendo gli errori di refresh.
saluti.
-
lelerelele
4.192 3 7 9 - Master
- Messaggi: 4832
- Iscritto il: 8 giu 2011, 8:57
- Località: Reggio Emilia
0
voti
è difficile aiutarti senza avere un riferimento di:
Ma cosi a sensazione è una questione di librerie, avendole prese online non sai cosa fanno
- uC utilizzato
- librerie utilizzate
- modello dello schermo e risoluzione
- codice programma utilizzato
Ma cosi a sensazione è una questione di librerie, avendole prese online non sai cosa fanno
0
voti
Vorrei inserire due foto per capire meglio il difetto nella visualizzazione del display ma non sono riuscito a farlo.
Come si fa?
Le foto hanno un limite di MB?
Grazie.
Come si fa?
Le foto hanno un limite di MB?
Grazie.
0
voti
Nella finestra di risposta, apri il tab invia allegato, scegli il file da li, e lo carichi ... ci sono limiti ma se li superi te lo dice, anche i formati permessi non sono tutti quelli esistenti, ma jpg e png li dovrebbe accettare senza problemi.
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
-
Etemenanki
7.123 3 6 10 - Master
- Messaggi: 4487
- Iscritto il: 2 apr 2021, 23:42
- Località: Dalle parti di un grande lago ... :)
0
voti
Le foto si inseriscono con l'opzione "Invia allegato" sotto il box di scrittura del messaggio
C'è un buon tutorial per gestire dimensioni ed altro:
https://www.electroyou.it/donj/wiki/gui ... a#Immagini
C'è un buon tutorial per gestire dimensioni ed altro:
https://www.electroyou.it/donj/wiki/gui ... a#Immagini
1
voti
Ecco le foto che visualizza i difetti del display OLED.
Ho dovuto ridurre il peso delle foto.
Ho dovuto ridurre il peso delle foto.
0
voti
Potrebbe dipendere anche dal tipo di font, oltre che dalla libreria usata ... tempo fa ho fatto un logger usando un'oled da 1.3 pollici, e la libreria SSD1306Ascii (https://github.com/greiman/SSD1306Ascii , se ti serve solo testo e' molto piu semplice e funzionale del mattone adafruit) ed il suo font 10x15 per avere lettere grandi (ma dispone di parecchi altri font), e ne e' uscita questa roba qui: https://imgur.com/RRVX2FQ (ovviamente se usi un font piu piccolo le linee non sono spesse due pixel come qui, ma una sola, per cui potrebbero apparire piu puntinate, devi provare i vari font finche' trovi quello che va bene a te' )
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
-
Etemenanki
7.123 3 6 10 - Master
- Messaggi: 4487
- Iscritto il: 2 apr 2021, 23:42
- Località: Dalle parti di un grande lago ... :)
0
voti
Grazie per l'attenzione al mio problema.
Come avrete già capito, non ho dimestichezza con Arduino e soprattutto nel gestire le librerie.
Sembra che nel display i punti in verticale dei caratteri siano scritti uno si e uno no.
Allego la parte iniziale del mio sketch, c'è qualcosa che non va?
Con altri sketch copiati dalla rete e lo stesso display, i caratteri sono "normali".
Sarei grato se mi si indica come procedere per l'eventuale modifica del programma.
Grazie.
Ecco la parte iniziale del mio sketch.
// 8-A - Strumento grotta con OLED SSD1306 del 22.04.2024
// Nel programma sono usati:
// Arduino Nano
// Display OLED SSD1306
// Sensori: Metro: HY-SRF05 – Inclinometro: GY-521 – Bussola: GY-271 - Temperatura: DHT22
// *******************************************************************
// Display OLED
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#define OLED_ADDR 0x3C
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT);
Come avrete già capito, non ho dimestichezza con Arduino e soprattutto nel gestire le librerie.
Sembra che nel display i punti in verticale dei caratteri siano scritti uno si e uno no.
Allego la parte iniziale del mio sketch, c'è qualcosa che non va?
Con altri sketch copiati dalla rete e lo stesso display, i caratteri sono "normali".
Sarei grato se mi si indica come procedere per l'eventuale modifica del programma.
Grazie.
Ecco la parte iniziale del mio sketch.
// 8-A - Strumento grotta con OLED SSD1306 del 22.04.2024
// Nel programma sono usati:
// Arduino Nano
// Display OLED SSD1306
// Sensori: Metro: HY-SRF05 – Inclinometro: GY-521 – Bussola: GY-271 - Temperatura: DHT22
// *******************************************************************
// Display OLED
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#define OLED_ADDR 0x3C
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT);
0
voti
Ciao @Saverio15.
Senza leggere il codice che ha prodotto la libreria è difficile indovinare.
Certo, se qualcuno l'avesse già usata magari ci darebbe delle conferme(o smentite).
Faccio tre ipotesi, campate per aria:
i) il codice usa quei caratteri quindi non puoi farci nulla;
ii) il codice prevede la parametrizzazione della dimensione dei caratteri basandosi solo sulle define SCREEN_WIDTH e SCREEN_HEIGHT; poco probabile, brutta cosa, ma non impossibile vista l'assenza d'altre definizioni(fai un tentativo modificandole) a meno che tu non ne abbia scordata qualcuna.
iii) per i caratteri illeggibili(tipo 51), se il difetto non si presenta sempre nello stesso punto, si potrebbe pensare ad un problema nella gestione degli eventuali errori sul bus i2c(però gli altri nodi sembrerebbero esenti); anche in tal caso non puoi farci niente se non cercare la controprova scollegando qualcosa dal bus.
Prendi queste ipotesi per quel che valgono.
Saluti
Senza leggere il codice che ha prodotto la libreria è difficile indovinare.
Certo, se qualcuno l'avesse già usata magari ci darebbe delle conferme(o smentite).
Faccio tre ipotesi, campate per aria:
i) il codice usa quei caratteri quindi non puoi farci nulla;
ii) il codice prevede la parametrizzazione della dimensione dei caratteri basandosi solo sulle define SCREEN_WIDTH e SCREEN_HEIGHT; poco probabile, brutta cosa, ma non impossibile vista l'assenza d'altre definizioni(fai un tentativo modificandole) a meno che tu non ne abbia scordata qualcuna.
iii) per i caratteri illeggibili(tipo 51), se il difetto non si presenta sempre nello stesso punto, si potrebbe pensare ad un problema nella gestione degli eventuali errori sul bus i2c(però gli altri nodi sembrerebbero esenti); anche in tal caso non puoi farci niente se non cercare la controprova scollegando qualcosa dal bus.
Prendi queste ipotesi per quel che valgono.
Saluti
W - U.H.F.
-
WALTERmwp
29,4k 4 8 13 - G.Master EY
- Messaggi: 8736
- Iscritto il: 17 lug 2010, 18:42
- Località: le 4 del mattino
Chi c’è in linea
Visitano il forum: Nessuno e 2 ospiti