• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
oled con 16x2 problemi winstar display

Problemi con Display OLED Winstar 16x2
#1
Buongiorno al forum
Mi sto costruendo un network streamer Hi-Fi utilizzando un Raspy PI3 e un DAC HifiBerry PRO +. Il DAC è modello HAT, quindi semplicemente pluggandolo sul Raspy il sistema funziona. Ho installato MoodeAudio come software (fatto anche esperienze con Volumio ma alla fine lo preferisco) e tutto funziona ha meraviglia, connesso al mio amplificatore stereo e pescando i contenuti da Tidal e dalla mia libreria FLAC che risiede sul mio NAS casalingo (per chi non lo conoscesse Tidal è un servizio di musica in streaming a pagamento, simile a Spotify, ma fornendo audio lossless, quindi in qualità CD e oltre).

per rendere il tutto più "professionale" (ma soprattutto per puro divertimento), ho deciso di inscatolare le due boards in un case autocostruito in MDF, aggiungendo un pulsante con led per l'accensione e lo spegnimento, ed un display per visualizzare titolo canzone, album, autore e altre info.

   

Fatto già delle prove con un display LCD 16x2 azzurro , connesso con interfaccia I2C, e funziona molto bene. Usando un set di scripts Python (comodamente trovabili sul web), riesco a visualizzare sul display le info volute.

   

Ovviamente per accedere ai pins del Raspy, sul quale è piantato il DAC, ho dovuto saldare un connettore 20x2 sul DAC per "portare su" i pins.

Per motivi estetici per i quali non sto a dilungarmi, volevo però passare ad un display OLED, con sfondo nero e caratteri di testo bianchi, avente la stessa dimensione del LCD (il foro nel case non cambia ovviamente...), ma garantendo maggiore luminosità del testo e meno disturbo (lo sfondo azzurro dell'LCD "spara" veramente tanto).

Ho aquistato quindi un OLED a caratteri, sempre 80x36 come ingombro e ho provato a connetterlo.
Il display è arrivato "nudo", quindi ho saldato una strip maschio a 16 pins sullo stesso e ho provato a collegare il display.
   

Ovviamente per testarlo gli scripts sono diversi, il driver python per il display prevede di settare in un certo modo alcuni GPIO. Provato e testato.... gli scripts "girano", non danno errori (ho messo qua e là qualche print ("message") per stampare le info recuperate dal MPD e sono corrette), ma il display rimane desolatamente nero. Al contrario dell'LCD , che appena alimentato si accende, l'OLED avendo background nero anche da acceso non da segni di vita.
Ho provato a cambiare i GPIO, ovviamente cambiando la loro assegnazione nel codice di inizializzazione del display.
Ho verificato anche che i GPIO usati non fossero in conflitto con quelli utilizzati dal DAC, e anche lì tutto a posto...

Qualche idea?
Ho pensato che potrebbe esserci qualche saldatura sul display non perfetta. In effetti su qualche pin, lo stagno non copre interamente l'anellino intorno al foro, ma solo in parte minima, comunque garantendo un contatto fra pin e anellino....
Idem lo stesso problema potrebbe esserci per il connettore 20x2 saldato sul DAC...

Ho due ulteriori domande:

1 )C'e qualche script, tools, utlity per testare anzitutto se i GPIO, ma più in generale i 40 pins sono tutti funzionanti ( per una  una saldatura fatta male ad esempio)?

2) I GPIO sono tutti equivalenti? Mi spiego: nel codice Python del driver per il display, vengono assegnati 6 pins in questo modo:

OLED_DB4  = 25
OLED_DB5  = 24
OLED_DB6  = 23
OLED_DB7  = 22
OLED_RS =7
OLED_E =8

Mancano dalla lista i due pin per l'alimentazione VCC 5V e GND, e il pin 5 (R/W) che va messo anche lui a GND per evitare che il display mandi indietro dati al Raspy col rischio di bruciarlo).

Se scoprissi che ad esempio il GPIO 22 (connesso al pin 14 del Display che deve portare il DB7) on funziona, potrei assegnare un altro GPIO in modo del tutto equivalente? Ovviamente un GPIO non usato dal DAC altrimenti andrei in conflitto.
Scrivendo quindi qualcosa tipo OLED_DB7 =  12

Oppure , per come è fatto il display, il DB7 DEVE assolutamente essere collegato al GPIO22?

 grazie e scusate per la lungaggine!

Andrea
Risposta
#2
ciao
non ho capito alcune cose: il display OLED, ha interfaccia SPI? Se sì, hai abilitato SPI nella configurazione del RaspberryPi?

le tue domande:
1) come può un software testare dei pin di uscita senza collegare dell' hardware a tali pin per verificare se effettivamente funzionano?
2) i pin sono equivalenti se usi quelli programmabili, se usi quelli dedicati a qualche interfaccia/protocollo, no.
vedi qui il pinout per chiarirti le idee.
i numeri dei pin che indichi, fanno riferimento a quale tipo di numerazione dei pin? Ve ne solo almeno 3, quella BCM, quella della scheda e quella wiringPi..
Risposta
#3
Allora, ieri sera ho fatto qualche passo in avanti.
Ho tolto il DAC HAT, e ho connesso i cavetti dal display direttamente al Raspy... e funziona! O meglio, funziona ma ogni tanto ha qualche effetto strano, quello si probabilmente dovuto a saldatura non perfetta sui suoi 16 pins.

   

   

Funziona anche il pulsante con led di accensione e spegnimento.

La mia conclusione è che il connettore saldato sul DAC per  "portare su" i GPIO del raspy sottostante non funziona bene, anche qui colpa di saldature non OK. Probabilmente ho avuto "fortuna" nei mie esperimenti precedenti col display LCD con interfaccia I2C, eveidentemente invece i pin SCD e SCL, gli unici 2 necessari insieme a quelli dell'alimentazione, sono saldati bene...

Il numero fa riferimento alla BCM.
Per rispondere alla tua domanda 1, dovrei quindi provare i GPIO uno ad uno con una breadboard e un classico led + resistenza? O c'e qualcosa di ancora + semplice?

grazie!
Andrea
Risposta
#4
Le saldature non sono il massimo e ok, ma è a rischio il contatto elettrico? (a tal proposito, ne approfitto per consigliare a chiunque sia alle prime esperienze con la saldatura su schede elettroniche, di non usare il RaspberryPi come "banco prova", è delicato, ed è facile danneggiarlo anche solo apportando calore eccessivo. Impratichitevi su schede guaste, serve un saldatore da 30/40w, non di più, con punta fine a matita, non piatta, e stagno di qualità.
Scaldare il piedino, e mettete lo stagno sulla piazzola. Solo quando avrà raggiunto la temperatura ideale, si scioglierà, occupando tutto il rame scoperto e il piedino. Le saldature devono essere lucide, e poco più di un velo, le "palline" indicano troppo stagno e temperature non adeguate della piazzola.
Risposta
#5
E ora... FUNZIONAA!

Allora: fatto la verifica di continuità elettrica sul DAC usando i due connettori femmina 20x2 (l'uno quello suo che si usa per pluggarlo sul raspi, e l'altro che ho saldato io). Su 40 pins solo 2 non davano corrente, e di sfiga erano proprio 2 utilizzati per il collegamento del display. Ho cambiato il driver assegnando per questo compito altri 2 GPIO che erano liberi.

Idem per il connettore maschio 16 pin saldato sul display. Ho tolto lo stagno e risaldato in modo più preciso 3 dei 16 pins... (uno era il pin E, l'altro il DB5) ed ora funziona tutto magnificamente!

Per le prove sto lanciando lo script direttamente dalla console, poi quando stabilizzato il codice (gira bene, ma voglio cambiare un pò quanto visualizzato nei vari stati del demone MPD), lo renderò lanciabile automaticamente allo startup.
 
   

Nell'immagine il display al lavoro con a fianco il pulsante led per accensione/spegnimento del raspi.

ciao
Andrea


Allegati Anteprime
   
Risposta
  


Vai al forum:


Navigazione:
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect