Ma come, un altro programma per calcolare componenti elettronici?
Mettiamola cosi', ultimamente mi sono imbattuto in un circuito nel quale occorreva usare una resistenza
da 240 ohm, valore standard della serie Exx ma assente dai cassetti dei recuperi.
Sembrava un valore critico in quanto inserito in un filtro audio piuttosto stretto.
Allora mi sono messo, bloc notes penna e calcolatrice, a calcolare due valori standard che, combinati
in serie o parallelo, dessero il risultato sperato.
Una discreta scocciatura.
Giorni dopo ho fatto una ricerca per un programmino che facesse il lavoro sopra descritto..
due ore perse, pubblicita' programmi shareware o da installare con tanto di setup.exe, data.cab...
Scatta la ribellione: ma perche' per una operazione banale abbiamo
bisogno di programmi da installare, registrazioni varie, oboli agli autori...
Ho deciso di scrivere qualche riga di codice partendo dalla mia "autodidattica" conoscenza
del visual basic 3, vecchio ma sufficiente allo scopo.
Evito di descrivere nei dettagli il sorgente, sia perche' un po' mi vergogno sia per invitare chi si
avvicina alla programmazione a interpretare il funzionamento dello stesso. In sostanza si provano tutte
le possibili combinazioni dei valori standard della serie E12, dei loro multipli e sottomultipli, sia in
serie che in parallelo, fino a trovare il compromesso migliore. Un lavoro immane da appioppare al nostro
computer !
Aggiungo comunque che ho badato esclusivamente al sodo: nessuna ottimizzazione degli algoritmi di
scelta dei valori, tanta forza bruta e matematica quanto basta.
Il calcolo impegna il mio pc per circa 3 secondi, uno spreco di potenza imbarazzante.
Il risultato di cotanta brutalità e' un eseguibile da 17 k
che, in coppia con la libreria di runtime VBrun300.dll, fa quello che serve.
Il programma cerca di raggiungere il valore desiderato calcolando le possibile coppie di componenti
serie/parallelo e mostra i dieci migliori risultati.
Il simbolo / / indica che i componenti vanno messi in parallelo, mentre --+-- indica che vanno messi
in serie; il dato percentuale indica lo scostamento tra il valore ottenuto e quello desiderato.
Come e' possibile notare non vengono eliminati i doppioni, cioe' ad esempio 10 // 6 e 6 // 10, ho
pensato ad una soluzione ma sarebbe un po' troppo complicata viste le premesse.
Allego libreria, sorgente ed eseguibile.
Non me ne vogliano i programmatori piu "esteti", so che su grix esiste gia' qualcosa di
simile ma manco a dirlo necessita di installazione, dell'ultimo service pack, del dot.net del pinc.pal
... insomma mi avete capito.
Ecco il file scaricabile: serpar.zip
Buon calcolo a tutti....
Aggiornamento
A seguito dei suggerimenti ricevuti ho apportato qualche piccola modifica:al programma.
In particolare ho aggiunto un controllo sull'input (vengono accettati solo valori numerici) e ho
eliminato i risultati doppi. Per quanto riguarda la tolleranza dei componenti... Non sono esattamente
un matematico -anzi- comunque direi che la precisione che si ottiene e', nel caso piu' sfavorevole,
pari a quella del componente con tolleranza maggiore. Vale a dire che usando componenti al 5% il
risultato avra' tolleranza pari o migliore al 5%. Se, come avviene in pratica, lo scostamento del
valore reale del componente rispetto a quello nominale e' casuale, potrebbe anche verificarsi una
sorta di compensazione grazie alla quale gli errori si eliminano.
praz2004 chiocciola libero punto it | ||