I due schemi sono due versioni del display, catodo comune in alto, anodo comune in basso. Presumo che tu abbia la versione catodica comune.
Collegare i segmenti A..G, DP tramite resistori serie 8 a 8 pin I / O del microcontrollore. Spostando un perno in alto si accenderà quel LED sulla cifra selezionata. Per selezionare una delle 4 cifre si abbassa il catodo comune corrispondente tramite un transistor NPN, che si guida nuovamente da un pin I / O tramite un resistore.
Se la tensione di alimentazione è 5 V e si utilizzano LED rossi, è possibile utilizzare resistori da 150 Ω anziché 330. Ridurre anche i valori della resistenza di base del transistor a 2,2 kΩ e utilizzare ad esempio BC337 s per i transistor.
Per guidare il display completo, devi prima abbassare il pin 12 guidando il suo transistor con un livello alto e impostare gli I / O per i segmenti di quella cifra. Qualche tempo dopo si disattiva il pin 12 e i segmenti, si accende 9 e di nuovo i segmenti per la seconda cifra. E così via. Se si passa da una cifra all'altra in meno di 2,5 ms, l'intero display passa a 10 ms o 100 Hz, il che è sufficiente per evitare lo sfarfallio evidente.
Puoi usare il driver Maxim, come il MAX7219 , ma è Damn Expensive ™: 12,80 dollari in 1 secondo su Digikey. La cosa positiva è che si occupa del multiplexing per te, quindi devi solo caricarlo con i dati del segmento per le 4 cifre. Ha anche il controllo della luminosità del software.
Ho controllato la scheda tecnica PIC16F690 e, a differenza di altri microcontrollori, i suoi I / O non sembrano essere in grado di generare 20 mA (il che è deludente). Quindi avrai bisogno di transistor anche sulla porta 2:
R1 era uno dei resistori sulla porta 2. Quindi si inseriscono Q1 e R2 tra loro e lo si ripete per ciascuno degli 8 segmenti. Attenzione, Q2 è un PNP! Funzionerà qualsiasi transistor PNP generico.