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?
Ottimizzazione Resistenze
Moderatori:
PietroBaima,
Ianero
8 messaggi
• Pagina 1 di 1
2
voti
Qualcosa del tipo
http://en.wikipedia.org/wiki/Resistor_ladder
http://en.wikipedia.org/wiki/Resistor_ladder
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
0
voti
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
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
0
voti
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.
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.
0
voti
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?
0
voti
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
Se hai idee comunque fatti pure avanti
grazie
1
voti
Sisi infatti immaginavo ti servisse una cosa semplice! Allora un'altra strada potrebbe essere la seguente:
Ovviamente da dimensionare opportunamente. I valori di
e di
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
;
- Pulsante 1 premuto: misuri
;
- Pulsante 2 premuto: misuri
;
- Pulsante 1+2 premuti: misuri 0;
Se scegli ad esempio
e
, 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
, però dovrà anche essere maggiore della minima corrente di zener inversa
.
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à.
Ovviamente da dimensionare opportunamente. I valori di
e di
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
;- Pulsante 1 premuto: misuri
;- Pulsante 2 premuto: misuri
;- Pulsante 1+2 premuti: misuri 0;
Se scegli ad esempio
e
, 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
, però dovrà anche essere maggiore della minima corrente di zener inversa
. 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à.
1
voti
Grazie
gill90 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
fairyvilje (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
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
* 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
8 messaggi
• Pagina 1 di 1
Chi c’è in linea
Visitano il forum: Nessuno e 4 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)





