# Orologio con TM1637

**URL:** <https://forum.arduino.cc/t/orologio-con-tm1637/1193571>\
**Category:** Hardware\
**Created:** [November 26, 2023, 8:08am UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571 "2023-11-26T08:08:11Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![Datman](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/datman/32/219519_2.png) [@Datman](https://forum.arduino.cc/u/Datman)\
**Post date:** [November 27, 2023, 1:58pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/22 "2023-11-27T13:58:19Z")

</div>

Di solito con tube o bit intendono digit... ☹

---

<div class="post-metadata">

**Author:** ![Salvorhardin](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/salvorhardin/32/469189_2.png) [@Salvorhardin](https://forum.arduino.cc/u/Salvorhardin)\
**Post date:** [November 27, 2023, 2:00pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/23 "2023-11-27T14:00:52Z")

</div>

Lo credevo anch'io  
Poi la ho confrontata con quella segnalata da Guglielmo  
Dovio io ho N-tubes li c'è N-channel

Altri dati sono palesemente 'strampalati'

La ho cestinata

---

<div class="post-metadata">

**Author:** ![Datman](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/datman/32/219519_2.png) [@Datman](https://forum.arduino.cc/u/Datman)\
**Post date:** [November 27, 2023, 2:02pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/24 "2023-11-27T14:02:57Z")

</div>

Allora per loro i "tubes" non sono i display (tubi nixie), ma i mosfet (tubi termoionici)!  
Su, un po' di fantasia... 😁  
'Sti cinesi... ☹

---

<div class="post-metadata">

**Author:** ![maurizio53](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurizio53/32/973992_2.png) [@maurizio53](https://forum.arduino.cc/u/maurizio53)\
**Post date:** [November 27, 2023, 5:10pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/25 "2023-11-27T17:10:54Z")

</div>

Eccolo qua, da notare che i led blu assorbono di più..............  
Buona serata a tutti

 ![display di prova2](https://europe1.discourse-cdn.com/arduino/original/4X/e/c/2/ec2bee37a5e59a6c8469f81e759c8eee2d451778.jpeg)

---

<div class="post-metadata">

**Author:** ![Maurotec](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurotec/32/213982_2.png) [@Maurotec](https://forum.arduino.cc/u/Maurotec)\
**Post date:** [November 28, 2023, 12:22am UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/26 "2023-11-28T00:22:49Z")

</div>

Nel datasheet Cinese c'è un diagramma che non è presente in quello Inglese.

 ![TM1637-plex](https://europe1.discourse-cdn.com/arduino/original/4X/f/7/0/f704e2381b6ee758462053a60df4d30daa993a74.png)

GR1÷GR6 sono le uscite dei digit ognuna da connettere all'anodo comune, nel caso di @maurizio53 userà solo GR1÷GR4 (penso). Però G5 e G6 commutano comunque per cui prendono 2 tempi più l'ultimo dove c'è il keyscan e quindi per 3 tempi tutto il display risulta spento. Dopo i keyscan GR1 va alto (-5V-2) e DIG1 si accende mostrando i segmenti SG1÷SG8, GR1 va low e tocca a GR2 ecc.

Ci sono istanti in cui sia GR1÷GR6 che SG1÷SG8 sono ad alta impedenza. Collegando questi a degli ingressi digitali risulteranno flottanti, cioè senza riferimento.

La d.d.p tra GR1 e GND è determinante se vogliamo usare degli invertitori in logica TTL, mentre se usiamo dei normali bjt c'è ampio margine per polarizzarli.  
Il bjt ha il collettore caricato da R10K, il collettore connesso ad un mosfet p-channel. Drain è Source saranno a bassa impedenza quando sul gate ci sono circa 0V. Per avere 0V sul gate il bjt-n è a bassa impedenza e l'emettitore è connesso a gnd. Per i segmenti es SG1 si trova a 0.3V (quasi GND), quando spento va in alta impedenza per cui se ci collego un inverter mi servirà una pull-up.  
Quando SG1 e LOW l'uscita dell'inverter è HIGH e posso pilotale bjt-n.

Servirebbe uno schema, ma per adesso vi deve bastare questo su cui ragionare.

Ciao.

---

<div class="post-metadata">

**Author:** ![Maurotec](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurotec/32/213982_2.png) [@Maurotec](https://forum.arduino.cc/u/Maurotec)\
**Post date:** [November 28, 2023, 1:50pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/27 "2023-11-28T13:50:36Z")

</div>

![anodedriver](https://europe1.discourse-cdn.com/arduino/original/4X/1/6/5/165abc6bc6f54976210dcff186d8ffa74ccae8fe.png)

4 di questi circuiti per controllare gli anodi 1,2,3 e 4.  
Il generatore GR1 approssima il comportamento del pin GRID1, quando questo va in alta impedenza R3 fissa il livello 0. Quando il digit deve essere alimentato su GRID1 ci sarà circa 3V (o meno) Q1 va in conduzione C-E bassa impedenza, al gate ci sono circa 0V e M1 passa in conduzione S-D sono a bassa impedenza sul suo Drain ci sono 12V.

Ib = 0uA ÷ 200uA  
Ic = 0uA ÷ 600uA (R2=22k)  
Ic = 0uA ÷ 1.8mA (R2=6.8k)

M1= può essere qualunque mosfet p-channel anche serie IRF.

Sul simulatore funziona.

Ciao.

---

<div class="post-metadata">

**Author:** ![maurizio53](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurizio53/32/973992_2.png) [@maurizio53](https://forum.arduino.cc/u/maurizio53)\
**Post date:** [November 29, 2023, 12:13pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/28 "2023-11-29T12:13:05Z")

</div>

Grazie Maurotec  
appena effettuata la cosa ti aggiornerò.  
Buona giornata

---

<div class="post-metadata">

**Author:** ![Maurotec](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurotec/32/213982_2.png) [@Maurotec](https://forum.arduino.cc/u/Maurotec)\
**Post date:** [November 29, 2023, 1:43pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/29 "2023-11-29T13:43:14Z")

</div>

Manca il circuito per i segmenti che così a spanne potrebbe essere composto da 2 bjt. Un pnp (BC557) e un npn BC817-40 (BC639-40). Ogni BC817 è capace in teoria di communtare 1Amper, ma a te ne bastano 0.1Amper.

Ok fa una cosa per volta testa il circuito degli anodi e poi vediamo di accomodare i driver per i segmenti.

PS: "credo" che se cambiassi il tuo display da anodo comune a catodo comune si potrebbe eliminare un bjt, ma non ho verificato.

Ciao.

---

<div class="post-metadata">

**Author:** ![maurizio53](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurizio53/32/973992_2.png) [@maurizio53](https://forum.arduino.cc/u/maurizio53)\
**Post date:** [November 29, 2023, 2:14pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/30 "2023-11-29T14:14:08Z")

</div>

Grazie Maurotec.  
Ma invece di impazzire per "instradare" le uscite del TM 1637 faccio una domanda magari stupida: le uscite Clk e Io che vanno al TM1637 non riesco a pilotarmi un bel contatore tipo HCF4518 e seguenti SN 7447 come si faceva "una volta"?

---

<div class="post-metadata">

**Author:** ![Maurotec](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurotec/32/213982_2.png) [@Maurotec](https://forum.arduino.cc/u/Maurotec)\
**Post date:** [November 29, 2023, 2:35pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/31 "2023-11-29T14:35:20Z")

</div>

Questo non lo so, potrebbe essere pure fattibile ma serve un chip che dialoghi secondo questo protocollo simile a i2c. In ogni caso ti serve il buffer di corrente per ogni digit e per ogni segmento. Il buffer degli anodi devo potere erogare la corrente di ogni segmento moltiplicata il numero di segmenti, cioè 0.1A x 8 = 0.8A.  
a 12V. In teoria avendo già pronti i buffer questi li si può anche collegare ad arduino e in questo caso lo sketch dovrà fare il multiplex inclusa la gestione della luminosità.

Ora non saprei con HCF e 7447 si riesce a fare il multiplex?

Ciao.

---

<div class="post-metadata">

**Author:** ![maurizio53](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurizio53/32/973992_2.png) [@maurizio53](https://forum.arduino.cc/u/maurizio53)\
**Post date:** [December 2, 2023, 4:51pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/32 "2023-12-02T16:51:37Z")

</div>

buonasera Maurotec  
testato 1 parte, anodi della cifra unità di ore che ha anche insieme il segmento h che corrisponde ai 2 punti centrali che scandiscono i secondi. Si accende ma rimane fisso e non lampeggia.  
Ho pilotato il segmento con un 2N222.  
Non impazzire, mi sembra un'impresa titanica.  
Ciao Maurizio

---

<div class="post-metadata">

**Author:** ![maurizio53](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurizio53/32/973992_2.png) [@maurizio53](https://forum.arduino.cc/u/maurizio53)\
**Post date:** [December 2, 2023, 4:54pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/33 "2023-12-02T16:54:06Z")

</div>

Ho anche provato questo pari pari e con i trasistor invertiti ma non va  
Etemenanki:  
E' uno schema di principio, tanto i vari rami sono tutti uguali ... per il tipo di transistor, dipende da quanti led per segmento vuoi usare e dal tipo di strip che vuoi usare ...

 ![ESEMPIO-DRV-TM1637.png](https://europe1.discourse-cdn.com/arduino/original/4X/f/6/1/f6123393bdbcee3ea21f172d2ecab35ce310d8f2.png)

---

<div class="post-metadata">

**Author:** ![maurizio53](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurizio53/32/973992_2.png) [@maurizio53](https://forum.arduino.cc/u/maurizio53)\
**Post date:** [December 2, 2023, 4:54pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/34 "2023-12-02T16:54:49Z")

</div>

Cambierò sistema 😪 😍 😍 😍

---

<div class="post-metadata">

**Author:** ![Maurotec](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurotec/32/213982_2.png) [@Maurotec](https://forum.arduino.cc/u/Maurotec)\
**Post date:** [December 2, 2023, 5:24pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/35 "2023-12-02T17:24:33Z")

</div>

> [@maurizio53](#):
>
> Non impazzire, mi sembra un'impresa titanica.

A me non sembra affatto titanica, per me è chiaro come funziona e che circuito devo usare, ma non sono al posto tuo a fare il lavoro di trasportare il lavoro teorica alla pratica.

PS: quel circuito di principio non può funzionare.

Ciao.

---

<div class="post-metadata">

**Author:** ![C1P8](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/c1p8/32/276321_2.png) [@C1P8](https://forum.arduino.cc/u/C1P8)\
**Post date:** [December 2, 2023, 7:26pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/36 "2023-12-02T19:26:29Z")

</div>

Quel circuito è sbagliato e pericoloso  
per cominciare presuppone che le uscite di segmanto possano "assorbire" corrente, ma il datasheet non ne parla (mi sembra)  
poi collega un transistor PNP con emettitore a 12 V e base al massimo a 5, quel transistor è sempre in conduzione (e non escludo che abbia fatto danni)

quindi io ti direi di provare che il TM1637 vada ancora, rimontadolo come era in origine

e dopo devi provare (o trovare info) se le uscite corrent source possono anche fare da sink e viceversa  
dopo ne parliamo, se vuoi

---

<div class="post-metadata">

**Author:** ![Maurotec](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurotec/32/213982_2.png) [@Maurotec](https://forum.arduino.cc/u/Maurotec)\
**Post date:** [December 2, 2023, 7:55pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/37 "2023-12-02T19:55:08Z")

</div>

> [@maurizio53](#):
>
> Ho pilotato il segmento con un 2N222.

In che modo lo hai collegato, intanto è un NPN e non basta, serve un PNP e un NPN. Comunque per sperimentare il circuito proposto non serve il 2N222 su i segmenti, uno di questi lo colleghi direttamente a GND.

Il lampeggio è fatto sugli 8-bit dei segmenti, per questo non lampeggia.

Se vuoi andare avanti posta nel dettaglio lo schema che hai usato per i driver di cifre, con le sigle dei componenti. Io ho usato un mosfet ma se hai un bjt PNP magari un darlington con guadagno elevato posta la sigla che ci metto 10 minuti.

Letto e compreso quanto detto da @C1P8 confermo che oltre a non potere funzionare nella teoria, se messo in pratica c'è il rischio di guasto. Ma che senso ha provare un circuito che nella teoria non può funzionare?  
Nessun senso.

Ciao.

---

<div class="post-metadata">

**Author:** ![Ducembarr](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ducembarr/32/469596_2.png) [@Ducembarr](https://forum.arduino.cc/u/Ducembarr)\
**Post date:** [December 2, 2023, 8:09pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/38 "2023-12-02T20:09:36Z")

</div>

Il tm1637 ha le uscite open drain  
Chiaro che usandolo come se avesse uscite cmos non va nulla

Forse pulluppando i sink e puldownando i source e usandoli per comandare una coppia di mos di potenza qualcosa si può fare

Però bisogna usare display rovesci  
Se gli originali sono ad anodo comune servono a catodo comune  
O viceversa

Per lo OP  
Smetti di fare prove incontrollate e testa tutti i componenti che hai usato, ma tutti tutti  
Perchè il rischio di danni è alto

Aggiungo

L'idea di usare dei contatori bcd e delle decodifiche è "roba fetida"  
Significa anche non aer capito come funziona la comunicazione tra arduino e tm  
Lascia stare idee del genere, tantovale usare direttamente arduino 7+4 13 pin e te la cavi

---

<div class="post-metadata">

**Author:** ![maurizio53](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurizio53/32/973992_2.png) [@maurizio53](https://forum.arduino.cc/u/maurizio53)\
**Post date:** [December 2, 2023, 10:59pm UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/39 "2023-12-02T22:59:42Z")

</div>

Ringrazio per le risposte  
ammetto la mia ignoranza e mi cospargo il capo di cenere.  
Ricontrollato tutto, funziona perfettamente (POST 25) fintantoche è così lo IOT33 ce la fa a pilotare i led...................  
Buona notte a tutti 😀 😀

---

<div class="post-metadata">

**Author:** ![maurizio53](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurizio53/32/973992_2.png) [@maurizio53](https://forum.arduino.cc/u/maurizio53)\
**Post date:** [December 3, 2023, 11:17am UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/40 "2023-12-03T11:17:33Z")

</div>

Buongiorno a tutti  
Maurotec ho fatto i compiti come hai detto.  
Risultato i led stanno accesi e non cambia niente anche se metto a massa uno qualsiasi dei segmenti  
Ciaoooooo

 ![2](https://europe1.discourse-cdn.com/arduino/original/4X/1/e/d/1edc0e6d8bf4c9c5e1c664a34ffa22d9cb0d5c08.jpeg)  
 ![1](https://europe1.discourse-cdn.com/arduino/original/4X/b/0/9/b09c0fc63b2a95d8745b03d206a87388aabcb5d4.jpeg)  
 ![3](https://europe1.discourse-cdn.com/arduino/original/4X/f/6/8/f682b72d1281d43bec637275f13195634f2610e2.jpeg)

---

<div class="post-metadata">

**Author:** ![maurizio53](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maurizio53/32/973992_2.png) [@maurizio53](https://forum.arduino.cc/u/maurizio53)\
**Post date:** [December 3, 2023, 11:18am UTC](https://forum.arduino.cc/t/orologio-con-tm1637/1193571/41 "2023-12-03T11:18:49Z")

</div>

Basetta fatta con Kicad e controllata al millimetro

[Previous page](https://forum.arduino.cc/t/orologio-con-tm1637/1193571.md?page=1)

[Next page](https://forum.arduino.cc/t/orologio-con-tm1637/1193571.md?page=3)
