Pagina 1 di 3

Problema visualizzazione doppio display 7 segmenti

MessaggioInviato: 15 mar 2022, 18:18
da mazda
Buongiorno,

mi dareste una mano a risolvere questo problema di visualizzazione ?

In pratica, mi sono trovato un vecchio display doppio a 7 segmenti ad anodo comune con due shift register 74HC595.

https://aliexpressz.hu/5028035-thickbox_default/74hc595-2bit-2-szamjegyu-led-nixie-csoves-kijelzo-modul-33v-5v-digitalis-cso.jpg

e volevo iniziare a capire come pilotarlo ma ho qualche problema nella visualizzazione delle due cifre. Infatti, se per esempio provo a visualizzare il numero decimale 36, dopo l'avvio dello sketch vedo inizialmente blinkare velocemente il 3 su entrambi i digit, praticamente vedo 33, e subito dopo blinka solo il 3 sul digit2 di destra mentre il digit1 di sinistra rimane spento e del 6 nessuna traccia. Se faccio girare solo la parte di codice che riguarda la cifra 6, allora succede che inizialmente vedo il numero 66 e poi sul digit di destra si fissa il 6 mentre il digit di sinistra rimane sempre spento. Sicuramente sbaglierò la logica dello sketch e dei tempi, quella che adotto è quella di switchare da un digit all'altro tramite la digitalWrite di Arduino mantenendo una frequenza tale da poter vedere quasi fisse le due cifre, cioè cosi

1)spengo digit1 e digit2
2)preparo lo shift register
3)accendo digit1 e spengo digit2 + delay(5) ( cosi non dovrei vedere il 3 a sinistra ? )

4)spengo digit1 e digit2
5)preparo lo shift register
6)spengo digit1 e accendo digit2 + delay(5) ( e cosi non dovrei vedere il 6 a destra ? )
7) ricomincio da 1

Qui sotto, il codice di esempio, per visualizzare il numero decimale 36


Codice: Seleziona tutto
int clockPin = 7; //pin 11 on the 595, filo marrone (SCLK)
int latchPin = 8; //pin 12 on the 595 , filo blu   (RCLK)
int dataPin = 10 ; //pin 14 on the 595 , filo yellow (DATA

int digit1 = 11;
int digit2 = 12;



void setup()
{
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);

  pinMode(digit1, OUTPUT);
  pinMode(digit2, OUTPUT);
}

void loop()
{
  visual();                                           // procedura che visualizza un numero
}



void visual()

///////////////////////////////////////////////////// VISUALIZZARE 36
                                                   
{                                                   // per visualizzare 3
  digitalWrite(digit1, 0);digitalWrite(digit2, 0);  //spengo entrambi i digit
 
  digitalWrite(latchPin, HIGH);                     //metto 3 nello shift register
  shiftOut(dataPin, clockPin, MSBFIRST, 48);         
  digitalWrite(latchPin, LOW);                     

  digitalWrite(digit1, 1);                          // accendo digit1 che dovrebbe visualizzare il 3
  digitalWrite(digit2, 0);                          // spengo digit2 
 
  delay(500);                                       // ritardo lungo per vedere lentamente cosa visualizza


                                                      // per visualizzare 3
  digitalWrite(digit1, 0);digitalWrite(digit2, 0);    //spengo entrambi i digit
 
  digitalWrite(latchPin, HIGH);                       //metto 6 nello shift register
  shiftOut(dataPin, clockPin, MSBFIRST, 2);
  digitalWrite(latchPin, LOW);

  digitalWrite(digit1, 0);                            // spengo digit1
  digitalWrite(digit2, 1);                            // accendo digit1 che dovrebbe visualizzare il 6
   
  delay(500);                                         // ritardo lungo per vedere lentamente cosa visualizza

}



Per quanto riguarda l'hardware, per selezionare i due digit ho anche usato due transistor bc327 ma non cambiava niente e li ho tolti, qui la foto dei collegamenti

https://i.postimg.cc/13VdvVyN/a20xly.jpg

Grazie iOi

Re: Problema visualizzazione doppio display 7 segmenti

MessaggioInviato: 15 mar 2022, 18:41
da stefanopc
Ti suggerirei la lettura di un tutorial come questo.
https://www.zerbinati.eu/tutorial/74hc595-v1/
Ciao

Re: Problema visualizzazione doppio display 7 segmenti

MessaggioInviato: 15 mar 2022, 18:47
da IlGuru
Quel display ha un datasheet che spiega come farlo funzionare?

Re: Problema visualizzazione doppio display 7 segmenti

MessaggioInviato: 15 mar 2022, 19:04
da mazda
IlGuru ha scritto:Quel display ha un datasheet che spiega come farlo funzionare?


purtroppo non ho trovato niente, so solo che ha 10 pin di cui 2 sono gli anodi e gli altri 8 i segmenti, punto decimale compreso.

Re: Problema visualizzazione doppio display 7 segmenti

MessaggioInviato: 15 mar 2022, 19:17
da mazda
stefanopc ha scritto:Ti suggerirei la lettura di un tutorial come questo.
https://www.zerbinati.eu/tutorial/74hc595-v1/
Ciao


Credo di avere letto tutti i tutorial in italiano e in inglese del mondo, ecco perché sono qui :?
Ma ho fatto altri esperimenti che non ho descritto se non il post diventava lunghissimo però se hai individuato qualche mio errore banale, sarebbe sadico da parte tua non dirmelo ;-)

Re: Problema visualizzazione doppio display 7 segmenti

MessaggioInviato: 15 mar 2022, 19:19
da mazda
Riguardo all'immagine, avevo provato ad allegarla ma era troppo estesa e usciva dal riquadro, per questo ho rimandato ad un link.

Re: Problema visualizzazione doppio display 7 segmenti

MessaggioInviato: 15 mar 2022, 22:46
da Franco012
Ci sono delle limitazioni per quanto riguarda le dimensioni degli allegati.
Da questo articolo si rileva che:

"NOTA:
Prima di caricare un'immagine ritagliatela in modo che le dimensioni siano ragionevoli in base al contenuto che interessa.
[...]
Le limitazioni degli allegati-immagine sono:
  • il formato (sono permessi: *.jpg, *.gif,: il primo da preferire per le foto, il secondo per i disegni. E' permesso anche il formato *.png);
  • la dimensione dell'immagine: deve essere al massimo di 500 kB; ricordate ad ogni modo sempre di caricare immagini di peso ragionevole. Se è sufficiente come risoluzione un'immagine del peso di acune decine di kB, non inserirne una di alcune centinaia di kB.
  • il numero delle immagini per ogni messaggio: 3."

Re: Problema visualizzazione doppio display 7 segmenti

MessaggioInviato: 15 mar 2022, 23:22
da mazda
Hai ragione, scusa..di solito ridimensiono i pixel a prescindere, adesso ho solo ritagliato. Grazie!

Re: Problema visualizzazione doppio display 7 segmenti

MessaggioInviato: 15 mar 2022, 23:27
da mazda
Immagine

Re: Problema visualizzazione doppio display 7 segmenti

MessaggioInviato: 16 mar 2022, 1:58
da stefanopc
Ho trovato questo.

https://www.ardumotive.com/2-digit-7seg-display-en.html
Forse sarebbe meglio utilizzare dei connettori a pettine maschi e femmine invece di saldare i pin e infilare i fili nei connettori.

Ciao