Pagina 1 di 1

Ottimizzazione Resistenze

MessaggioInviato: 19 giu 2014, 15:07
da Russell
Allora, il problema è il seguente.
Devo semplicemente gestire con un ingresso analogico di Arduino due pulsanti contemporamente per risparmiare un po' di pin.
Ora una delle soluzioni classiche è quelle di usare il seguente circuito



Dove la Vi è quella letta dall'ingresso analogico di cui parlavo.
* Se nessun pulsante è premuto Vi = Vo.
* Se si preme il primo interruttore Vi/Vo = R1/(R1+Rp).
* Se si preme il secondo interruttore Vi/Vo = R2/(R2+Rp).
* Infine devo prevedere che "la scimmia" prema entrambi i pulsanti (leggero' una Vi minore degli altri 3 casi)

Lo scopo è trovare la migliore relazione tra R1 R2 e Rp per avere la migliore separazione possibile tra i 4 casi.

L'idealità (a mio avviso) sarebbe avere 100% 66% 33% 0% ... ma non è possibile [soprattutto lo 0%] !

Andando un po' per tentativi mi ritengo abbastanza soddisfatto di aver trovato questa relazione
R1=2
R2=4
Rp=3
Che mi da', nei 4 casi, Vi/Vo = 100% 57% 40% e 31%
Quindi metterei le soglie per i riconoscimenti dei 3 casi ad 80% 50% e 35%... funziona me non è il massimo

Senza ammattirvi con dimostrazioni complicate, sapete trovare soluzioni migliori in termini di massimizzazione delle distanze tra i valori, in modo da irrobustire le soglie, magari con una equispaziatura maggiore tra i valori?

Re: Ottimizzazione Resistenze

MessaggioInviato: 19 giu 2014, 15:18
da fairyvilje

Re: Ottimizzazione Resistenze

MessaggioInviato: 19 giu 2014, 15:48
da Russell
In pratica quel metodo mi dovrebbe portare a mettere
R1=3
R2=2
Rp=2

Ma in questo caso vedo che i valori nei vari casi sono: 100% 60% 50% 38%
... mi sembra sia peggio cosi', i 3 valori distano mediamente solo il 10% tra di loro
sbaglio?

Edit: no scusa, sono stato frettoloso, in pratica è cambiato un po' il circuito, devo reimpostare le formule, ho bisogno di piu' tempo

Re: Ottimizzazione Resistenze

MessaggioInviato: 19 giu 2014, 16:30
da Russell
Ok, sembra che con questa configurazione i valori in effetti siano ben equispaziati

0% 25% 50% e 75%



Mi studio un po' la matematica che c'è dietro e cerco di vedere se riesco ad alzare il 75% un po', portandomi dietro gli altri valori.

Sono un po' insicuro su quei resistori in alto, che per non farli interferire troppo con la rete sottostante ho piazzato ad un valore abbastanza innocuo di R/10... si accettano suggerimenti.

Re: Ottimizzazione Resistenze

MessaggioInviato: 19 giu 2014, 17:29
da gill90
Il problema è che quando premi entrambi i pulsanti attivi il percorso comune a entrambi, con la conseguenza che devi unire gli effetti che ciò comporta. poiché non hai priorità di pulsanti, devi per forza fare una rete parallela (con una rete "seriale" daresti maggiore priorità ad uno dei due pulsanti), ma facendo una rete parallela, alla pressione contemporanea di entrambi i pulsanti, devi per forza scontrarti con l'interazione dei contributi delle resistenze, e la parallellizzazione in questo caso riduce di molto il range. Devi per forza usare solo componenti passivi?

Re: Ottimizzazione Resistenze

MessaggioInviato: 19 giu 2014, 17:42
da Russell
gill90 ha scritto:Devi per forza usare solo componenti passivi?


No, ma se l'implementazione resta semplice sarebbe meglio.
Alla fine per 2 pulsanti implementare una rete con degli operazionali non mi sembra il caso, restare su banali resistenze sembra sia comunque sufficiente a trovare un buon compromesso.

gill90 ha scritto:Il problema è che quando premi entrambi i pulsanti attivi il percorso comune a entrambi ...


Si lo so, è gia' tutto stato calcolato nei precedenti esempi, le analisi sono state fatte consideranto l'intera maglia e il suo comportamenteo seriale/parallelo

Domani, se ho tempo, vedo di fare quello che ho promesso nel precedente post, ovvero provare ad ottimizzare la rete cercando di ottenere qualcosa di piu' vicino a 0% 33% 66% 100%
Alla luce dell' ottimo suggeriemento di Foto Utentefairyvilje ho ripreso in considerazione la possibilità di poterci andare almeno un po' piu' vicino di quanto facessi all'inizio.

Se hai idee comunque fatti pure avanti
grazie :mrgreen:

Re: Ottimizzazione Resistenze

MessaggioInviato: 19 giu 2014, 18:52
da gill90
Sisi infatti immaginavo ti servisse una cosa semplice! Allora un'altra strada potrebbe essere la seguente:



Ovviamente da dimensionare opportunamente. I valori di V_{z1} e di V_{z2} devono essere scelti in maniera che la loro somma sia il più possibile vicina a 5V (ovviamente non proprio coincidente). In sostanza nei 4 casi avrai:

- Nessun pulsante premuto: misuri V_{z1}+V_{z2};
- Pulsante 1 premuto: misuri V_{z2};
- Pulsante 2 premuto: misuri V_{z1};
- Pulsante 1+2 premuti: misuri 0;

Se scegli ad esempio V_{z1}=1.5V e V_{z1}=3.3V, otterrai come 4 valori 0V, 1.5V, 3.3V e 4.8V. Mi pare che il valore 1.5V non esista, però puoi cavartela anche con 2 diodi comuni (4148) in serie. Ovviamente il problema è dimensionare opportunamente R per garantire una corrente il più bassa possibile, che sarà massima quando sono premuti entrambi i pulsanti e vale \frac{5}{R}, però dovrà anche essere maggiore della minima corrente di zener inversa (\frac{5-(V_{z1}+V_{z2})}{R}>I_z).
Questa è solo un'idea, volendo si può anche perfezionare, ma utilizzi comunque solo componenti passivi e, visto che i diodi costano quasi come le resistenze, alla fine siamo lì come costo e complessità.

Re: Ottimizzazione Resistenze

MessaggioInviato: 20 giu 2014, 10:04
da Russell
Grazie Foto Utentegill90 del suggerimento
anche quella è una tecnica interessante
non mi sono messo a fare valutazioni numeriche ma credo che la resistenza in serie agli zener porti una caduta di tensione non trascurabile, tanto da riportarmi lontano da un caso ideale... soprattutto anche in ottica di cercare di ridurre i consumi il piu' possibile: ovvero di avere basse correnti a riposo e operativamente ... vabbè, potrei sbagliare, ci dovrei ragionare un po'.

Avevo un'oretta di tempo, e nel frattempo, seguendo la dritta di Foto Utentefairyvilje (Resistor ladder) ho fatto un paio di modifiche e ho trovato un risultato molto soddisfacente (che a questo punto credo che implementerò):

* Se nessun tasto è premuto Vi/Vo = 0%, e non ci sono affatto consumi di corrente (ottima cosa)
* Se viene premuto solo il pulsante Sw1 allora Vi/Vo è circa il 35% (molto vicino all'idealità di 33%)
* Se viene premuto solo il pulsante Sw2 allora Vi/Vo è circa il 67% (molto vicino all'idealità di 66%)
* Se vengono premuti entrambi i pulsanti allora Vi/Vo è circa 97% (molto vicino all'idealità di 100%)
( in piu' con alimentazione Vo=5V, in quest'ultima situazione, che è la piu' dispendiosa, si ha un consumo di corrente di 1mA ... negli altri casi circa la metà)

Mettere le soglie per distinguere i 3 casi sara' una passeggiata!

Lascio lo schema aggironato, casomai fosse utile a qualcuno in futuro