IN COSTRUZIONE
Bene ecco un progetto per i veri appassionati di ritorno al futuro, in questa pagina cercherò di spiegare la mia idea e di come realizzarla , in breve per gli appassionati di ritorno al futuro costruirò il timer clock della mitica DeLorean DMC-12 come voi tutti sapete il display timer dove nel film si configurano le coordinate del tempo
dove siamo
dove eravamo
e dove andremo
ovviamente non viaggeremo nel tempo ma lo spirito e la mente faranno i loro bei bei viaggetti, io l’ho realizzato in una modalita un pò vintage cercando di richiamare la circuiteria del tempo dove possibile e un tempi moderni ovviamente non abbiamo schemi del display originale quindi dovremo giocare molto di fantasia sempre rispettando le idee del film, poi questo circuito lo allestirò veramente sul mio furgoncino, cosi da accenderlo tutte le volte che dovrò guidare e sentire la mia mente che vola nel tempo.
Il circuito sarà composto da ovviamente 3 moduli
Modulo Rosso DESTINATION TIME
in questo modulo faremo si che potremo settare un tempo di destinazione oppure con un pulsante il circuito master con un rtc a bordo per il timer clock faremo si che con più pulsanti potremo settare il tempo + 10 min + 10 min + 10 min ecc.
Il secondo circuito che costruiremo sarà il present time un clone come il primo ma con i display verdi questo circuito presentera il tempo corrente poi decideremo se continuerà a scorrere oppure sempre dal circuito master , decideremo se all’accensione presentera il tempo corrente e li resterà.
Il terzo circuito è il timpo di dove eravamo qui verra presentato l’ultima impostazione che abbiamo settato o allo spegnimento o …. poi strada facendo vedremo. ovviamente con tutti i display gialli
Bene questo progetto interessante sara composto come diagramma.
Bene ora cominciamo ad analizzare il circuito io l’ho creato con dei componenti che mi son stati regalati e ho deciso di usare quelli per comandare questi componenti ho deciso per i 3 moduli display di usare 2 pic 16f887.
Il primo microcontrollore comandera i display a 7 segmenti nellaprecisione i display dei minuti delle ore l’anno e il giorno , per i display 16 segmenti alphanumerici lo farà il secondo microcontrollore.
ora presento qui lo schema da ingrandire cliccandoci sopra e passiamo alla descrizione sia testuale che con video di spiegazione.
l’immagine per vederla meglio dovrete salvarla cosi da visualizzarla correttamente, comunque alleghero tutti gli schemi cosi se vorrete potrete realizzarlo anche voi.
qui il pcb da realizzare.
e qui il bom file
Questo flowchart riepilogativo descrive in breve e velocemente come è composto lo schema, abbiamo un circuito main e uno display, ingresso alimentazione 12/15 volt o comunemente il + batteria 12 volt.
Icprog per la programmazione dei due microcontroller, e due uscite comuni I2C per comunicare con la main board che darà le rispettive date da visualizzare , il primo pic a sinistra gestisce esclusivamente i 3 display alphanumerici da 16 segmenti, ha un refresh rapidissimo cosi da evitare qualsiasi flash dato che viene pilotato da singole uscite per tutti e 3 i display e in progressione acceso e spendo ogni display in sequenza , come se fosse un array driver , l’ottimizzazione che ho fatto è 1 microsecondo off e 5 microsecondi on , e direi che è decisamente stabile e pulito ben visibile , lo vedrete poi nei video.
Il secondo display gestisce i 2 MM74C912 che son dei IC di gestione display con un bus per selezionare quale display rendere attivo la modifica e che numero visualizzare , il primo MM74C912 a sinistra gestisce ” DAY YEARS ” e il secondo MM74C912 gestisce ” HOUR MIN ” si perchè il driver display gestisce fino a 6 display a 125 khz di frequenza.
I 2 MM54HC533 son dei buffer invertenti dato che mi serviva invertire l’uscita per pilotare i display che son riuscito a reperire.
Questo è lo schema ingressi uscite dell’IC
PIN 1 CE -> disabilita la scrittura / accesso degli address (se posto a 1 non cambiera mai nessuna cifra)
PIN 26-27-28 K1 K2 K3 Sono gli address (combinazione di scrittura del display selezionato usiamo il write per impostare che display stiamo selezionando)
PIN 8-16 OSE SOE sono le combinazione del refresh display /stop/ disable/ stanby (noi useremo sempre impostato a 0 sempre attivo il refresh)
PIN 3-4-5-6-7 Sono le combinazioni dei numeri da visualizzare a seconda di che address abbiamo selezionato
PIN 17-18-19-21-22-23-24-25 (Sono le uscite che andranno ai rispettivi segmenti di ogni display che sia 1 o 6
PIN 9-10-11-12-13-14 (Sono le uscite del comune dei display che noi andremo a pilorare un bc337 in serie ad un 327)
Come si può vedere dallo schema è abbastanza semplice ed intuitivo.
Come si puo notare l’uscita driver dei segmenti è NPN per questo motivo che ho dovuto aggiungere MM54HC533 per invertire dato che i miei display a 7 segmenti sono a catodo comune.
Allego alcune foto del progetto .































Dopo aver creato in laboratorio il circuito lo abbiamo fatto sviluppare a https://jlcpcb.com/ che con 25 € ho avuto 5 prototipi dopodichè ho avuto i pcb fatti perfettamente anche se il prototipo non è riuscito male , si vero i ponti sul lato componenti potevo farli molto meglio,,,,, colpa della birra.
E qui qualche video di spiegazione.
Ora passiamo alla sostanza qui allego datasheet schemi.
qui allego il file sorgente di progettazione fatto con kicad.
qui allego il file sorgente del modulo red fatto con flowcode 9
qui allego file sorgente del modulo green fatto con flowcode 9
qui allego file sorgente del modulo yellow fatto con flowcode 9
In sostanza la diverstita tra i firmware cambia solo l’id di ricezione dell’i2c.
Bene fin qui è stato molto emozionante ora passiamo alla parte della tastiera di comando che invierà i vari dati nel canale i2c e che i vari display con il loro id decodificheranno.
Premetto che la parte tastiera non è identica all’originale ho voluto mettere dei tasti funzionali quali on off dell’mp3 cosi da avere gli stessi suoni del film, ho messo un pulsante che ad ogni pressione effettuerà una lettua dell’orario ed aggiungerà + 10 min al display destination time cosi da avere una compartecipazione all’avventura. ed un pulsante che abilita o disabilita la lettura ogni 10 secondi dell’RTC modulo.
Qui il bom file
























Qui trovate i datasheet firmware e progetti fatti con kicad
Qui trovate lo schema del keypad time
Qui trovate il firmware del keypad time
Qui trovate gli mp3 da inserire nella sd card del lettore dfplayer
Questa è la mappatura dove vengono memorizati i dati nella eeprom
000 1 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -> A = memoria Sound 0 off 1 on
010 1 2 3 4 5 6 FF FF FF FF FF FF FF FF FF FF -> Red 1 = Anno | -> 2 = Mese | -> 3 = giorno | -> 4 = ore | -> 5 = minuti | -> 6 = secondi
020 1 2 3 4 5 6 FF FF FF FF FF FF FF FF FF FF -> Green 1 = Anno | -> 2 = Mese | -> 3 = giorno | -> 4 = ore | -> 5 = minuti | -> 6 = secondi
030 1 2 3 4 5 6 FF FF FF FF FF FF FF FF FF FF -> Yellow 1 = Anno | -> 2 = Mese | -> 3 = giorno | -> 4 = ore | -> 5 = minuti | -> 6 = secondi
040 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
050 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
060 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
070 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
080 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
090 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
100 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
110 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
120 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
130 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
140 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
150 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
160 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
170 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
qui la mapatura dei pin del microcontrollore
18f4685 config -> back to the future keypad
——————————————————————————————————————————————–
Porta pin info
Ra0 19 LED_RED Out led red
Ra1 20 LED_GREEN Out led green
Ra2 21 LED_YELLOW Out led yellow
Ra3 22 On_Off_Sound Button switch
Ra4 23 BTN White Button white command
Ra5 24
Rb0 8 BTN 1 KeyPad 1
Rb1 9 BTN 2 KeyPad 2
Rb2 10 CAN TX Can Bus
Rb3 11 CAN RX Can Bus
Rb4 14 BTN 3 KeyPad 3
Rb5 15 BTN 4 KeyPad 4
Rb6 16 Clk_prog Icprog
Rb7 17 Data_prog Icprog
Rc0 32 BTN 5 KeyPad 5
Rc1 35 BTN 6 KeyPad 6
Rc2 36 BTN 7 KeyPad 7
Rc3 37 SCK I2C SCL
Rc4 42 SDA I2c SDA
Rc5 43 BTN 8 KeyPad 8
Rc6 44 Tx DfPlayer_mini
Rc7 1 Rx Dfplayer_mini
Rd0 38 BTN Red Button red command
Rd1 39 BTN Green Button green command
Rd2 40 BTN Yellow Button yellow command
Rd3 41 Read rtc + send time (green display)
Rd4 2 Loop read rtc Button
Rd5 3 Set destination time + 10min
Rd6 4 BTN 9 KeyPad 9
Rd7 5 BTN 0 KeyPad 0
Re0 25
Re1 26
Re2 27
Re3 18 MCRL
Bene ora passiamo al contachilometri anche questo è molto simole all’originale anche se ho aggiunto delle opzioni con dei pulsanti per renderlo più interattivo per le nostre esigenze.
Qui il bom file