Parte 1/4
Introduzione
In un vecchio topic da me aperto (Come reperire fondi per certificazione scheda) ad un certo punto scrissi:
Diego67:
Se non trovassi il modo di far fruttare l'idea, visto che è possibile farlo con minime modifiche, adatterò la scheda in modo che non violi il punto 15 del regolamento e descriverò, se mi sarà concesso, il progetto nel forum nella speranza che tutto il lavoro fatto per arrivare all'oggetto finito possa almeno essere di aiuto/spunto a quanti ne avessero bisogno. Spero solamente che, in questa ipotesi, non ci sia qualcuno che con le giuste capacità e conoscenze non ne approfitti....
Come volevasi dimostrare non sono nato per essere un venditore e non ho grande spirito imprenditoriale. Nessuna delle ditte contattate tramite i form presenti sui rispettivi siti si è fatta viva. Forse ho sbagliato i destinatari o i canali utilizzati ma più probabilmente quanto loro proposto non ha destato alcun interesse e forse questo deriva dalla mia presunzione di aver creato qualcosa di utile. Mi trovo quindi, come promesso a suo tempo e prima di dimenticarmi tutto, a presentarvi il circuito da me progettato, costruito e testato.
Descrizione Hardware
Come visibile dalla foto si tratta di una schedina dotata di 8 ingressi ed 8 uscite gestite da un Esp32 Pico D4 ( rispetto al normale esp32 la versione Pico integra all’interno del chip anche la memoria flash e l’oscillatore ). Le uscite possono pilotare carichi sia in alternata ( 24V ) che in continua. Nel caso dell’alternata ho testato la scheda con dei fototriac ( AQH3213 max 1,2A ) mentre nel caso di uscite in continua l’ho provata con dei driver per mosfet FOD3182 capaci di pilotare correnti di picco di 3A. Ogni uscita è protetta da un fusibile zoccolato e da un varistore. Anche gli ingressi ( tutti opto isolati ) possono essere comandati sia in alternata che in continua e in modo indipendente l’uno dall’altro. Per l’alimentazione della scheda ho utilizzato un modulino da 5V 3W alimentandolo a 24V AC. ( Risulta utilizzato fuori range per la tensione di ingresso ma funziona ). Completa la dotazione di bordo un RTC con batteria tampone. Ho utilizzato un DS3231MZ versione 4+4 pin del più noto DS3231M e devo dire che, pur essendo stato acquistato in Cina, mi ha stupito per la precisione.
Ho voluto contenere le dimensioni della scheda a 10X10 in quanto si trattava del mio primo circuito in smd ed il mio primo stampato ordinato online. Ho cercato quindi di limitare al massimo le spese per non dover, in caso di mancato funzionamento, buttare al vento troppi soldi ( fino a 10X10 -> 5€ + trasporto per 10 circuiti; oltre quelle dimensioni si parte da 35€ + trasporto sempre per 10 stampati). Con mia sorpresa, a parte dei falsi contatti iniziali in alcuni ingressi provocati dal flussante non pulito bene e risolti con una bella lavata con alcol Isopropilico, tutto è funzionato regolarmente. Logicamente col senno di poi qualche variazione allo stampato l’avrei fatta ma per testarne il funzionamento può andar bene anche così.
Schema elettrico
Lo schema elettrico di seguito riportato può apparire complesso ma lo è solamente per la moltiplicazione x 8 di ogni stadio di ingresso ed uscita. Guardando un singolo stadio penso risulti abbastanza banali per chiunque. Una cosa che evidenzio è l’utilizzo per ogni stadio d’ingresso del fotoaccoppiatore LTV-354T ( sostituibile con PC364NJ0000F ). Entrambi hanno in ingresso due fotodiodi contrapposti e sono utilizzabili quindi anche con tensioni d’ingresso alternate senza costringere ad inserire un diodo esterno per proteggere il fotodiodo interno dalle tensioni inverse. E’ possibile inoltre, anche con tensioni continue, comandare gli ingressi in entrambi i versi cosa non fattibile con fotoaccoppiatori con un solo fotodiodo. Entrambi i fotoaccoppiatori citati hanno un CTR (Current Transfer Ratio) del 400% e quindi per far saturare il fototransistor di uscita basta una corrente sui fotodiodi maggiore di ¼ della corrente di collettore. Nell’ipotesi di saturazione del transistor la corrente sul diodo led in uscita (D11-D18) sarà inferiore ai 2 mA. Basterebbe quindi una corrente sui fotodiodi di 0,5 mA per farlo saturare. Per stare sul sicuro, mantenendo basse dissipazioni, ho dimensionato le resistenze per correnti di ingresso di circa 1mA. I Diodi led (D11-D18) oltre che per un’indicazione visiva del cambio stato in ingresso hanno il compito di mantenere la tensione agli ingressi dell’ESP32 entro i range prestabiliti. Ricordo che l’ESP32 viene alimentato con 3,3V. La presenza del led bianco fissa la tensione massima in ingresso dell’ESP a circa 2,5V che viene interpretata come un 1 logico dall’ESP. Con il fototransistor interdetto la resistenza da 10k in parallelo al led si occupa di scaricare il condensatore e di tenere basso l’ingresso dell’ESP. Il condensatore in parallelo a resistenza e led serve invece ad evitare che possibili disturbi sugli ingressi facciano recepire livelli alti agli ingressi dell’ESP. Il suo valore l’ho dimensionato in modo che venga recepita la variazione di stato di un ingresso quando questa dura almeno 200ms.
Passiamo ora allo stadio di uscita. Come già detto a seconda dell’utilizzo possono essere usati normali fotoaccopiattori , foto triac o driver isolati per mosfet. In ogni caso nel circuito da me proposto il fotodiodo all’ ingresso di uno di questi componenti si troverà in serie ad un led indicatore e ad una resistenza limitatrice. Perché la somma della tensione sul fotodiodo e di quella ai capi del diodo led indicatore non superasse la tensione di uscita massima dell’ESP32 ho dovuto scegliere un led rosso essendo, tra i vari colori, quello con la minor tensione ai suoi capi. Nonostante questo, il delta tra la tensione di uscita dall’ESP e la somma delle tensioni tra led e fotodiodo risulta minimo. Per questo il valore della resistenza limitatrice è di soli 24 Ohm.
Il blocchetto giallo nella parte bassa centrale dello schema elettrico è quello relativo all’ RTC. Nel mio caso, come detto nell’ introduzione, ho utilizzato il DS3231MZ che colloquia con l’ESP tramite I2C e che, in caso di mancanza di alimentazione esterna, viene tenuto in vita dalla batteria tampone presente sulla scheda. Attualmente Il posizionamento dell’RTC è sotto l’ESP32 e questo permetterebbe, oltre alle classiche funzioni, di avere una stima della temperatura del circuito utilizzando il sensore di temperatura interno all’RTC stesso. Per ora questa funzione di controllo non l’ho sfruttata nel software ma mi limito a fare una stampa della temperatura sul monitor seriale dell’Arduino IDE.
Il partitore resistivo formato da R10 ed R12 serve per tenere sotto controllo la tensione di alimentazione. La giunzione delle due resistenze viene collegata ad un ingresso dell’ESP configurato come ingresso analogico e quando la tensione da questo rilevata va sotto un certo limite viene eseguita una funzione di salvataggio dei dati dinamici in “EEProm”. Logicamente questo valore di controllo non può essere impostato troppo basso perché altrimenti il micro non avrebbe più energia per effettuare il salvataggio.
Continua.....