Ciao a tutti, vorrei collegare tre interruttori ad arduino in un solo pin in ingresso per controllarci tre diversi dispositivi. Ho eseguito il collegamento abbinando ad ogni interruttore una resistenza diversa (10 - 15 - 20kOhm mi sembra) e mettendone una in serie a tutti gli interruttori da 10kOhm. Ogni volta che si innesca un'interruttore essendo collegati in parallelo ho un valore di resistenza sempre diverso che va dai 15kOhm ai 50kOhm. Ho cosi collegato il tutto su arduino (pin analog 4 e +5Vcc) e avviato lo sketch che mi permette i vedere sulla seriale i valori in ingresso al pin dove sono collegati gli interruttori e ho notato che i valori non sono stabili ma oscillano di qualche valore e anche cambiando combinazione di interruttori si trovano tutti tra 700 e 800 rendendo inutile ogni utilizzo.
La parte hardware non dovrebbe essere sbagliata, quindi credo sia un problema di arduino, secondo voi cosa potrebbe essere?
Collegare tre interruttori in un unico pin?
38 messaggi
• Pagina 1 di 4 • 1, 2, 3, 4
0
voti
-

dadothebest
24 2 7 - Frequentatore

- Messaggi: 229
- Iscritto il: 25 nov 2013, 17:13
- Località: Ascoli Piceno
0
voti
Schema (ovviamente in fidocadj)? Attivi un solo interruttore per volta o hai tutte le 8 combinazioni possibili?
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
0
voti
Spiego lo schema che è molto semplice. Ogni interruttore è formato da due morsetti: il primo morsetto di ogni interruttore è collegato tra loro, mentre il secondo ha una resistenza di un valore diverso collegata in serie e ogni capo è collegato insieme. Quindi ho un morsetto (con i tre interruttori in parallelo) che collego a +Vcc e un altro morsetto (con le 3 resistenze in parallelo) che collego all'ingresso analogico di arduino inserendoci una resistenza in serie.
In questo modo per ogni combinazione di interruttori aperto-chiuso ho uno specifico valore di resistenza.
Se non sono stato chiaro riporto lo schema disegnato su fidocadj
In questo modo per ogni combinazione di interruttori aperto-chiuso ho uno specifico valore di resistenza.
Se non sono stato chiaro riporto lo schema disegnato su fidocadj
-

dadothebest
24 2 7 - Frequentatore

- Messaggi: 229
- Iscritto il: 25 nov 2013, 17:13
- Località: Ascoli Piceno
0
voti
dadothebest ha scritto:Se non sono stato chiaro riporto lo schema disegnato su fidocadj
offro io ..
I circuiti sono controcorrente. Seguono sempre la massa
-Per rispondere utilizza il tasto [RISPONDI] e non il tasto [CITA], grazie.-
-Per rispondere utilizza il tasto [RISPONDI] e non il tasto [CITA], grazie.-
0
voti
Comincerei a provare la tensione sul pin analog4 col tester, se il valore sia quello previsto per ciascun comando. Poi se le letture digitali, sia pure sballate, siano almeno ripetibili. Quanti bit ha lo ADC? A questo punto guarda il programma, io non conosco Arduino ma se non va ci deve essere l'errore.
0
voti
dadothebest ha scritto: ...ogni interruttore una resistenza diversa (10 - 15 - 20kOhm mi sembra) e mettendone una in serie a tutti gli interruttori da 10kOhm. Ogni volta che si innesca un'interruttore essendo collegati in parallelo ho un valore di resistenza sempre diverso che va dai 15kOhm ai 50kOhm...
Con i valori citati e se lo schema è quello che ha dedotto

"Non farei mai parte di un club che accettasse la mia iscrizione" (G. Marx)
-

claudiocedrone
21,3k 4 7 9 - Master EY

- Messaggi: 15299
- Iscritto il: 18 gen 2012, 13:36
0
voti
Se lo schema è quello il risultato è sempre di portare a +5V l'ingresso analogico, cambia solo la resistenza in serie.
Così dovrebbe andare meglio
Così dovrebbe andare meglio
1
voti
no, lo schema non si spiega se si può evitare di farlo, lo dovresti disegnare, a maggior ragione se è semplice, e non fare il pigro, almeno tu non abbia difficoltà d'altro genere.dadothebest ha scritto:Spiego lo schema che è molto semplice (...)
Quindi leggi subito qui, se poi hai problemi puoi sempre chiedere.
Saluti
W - U.H.F.
-

WALTERmwp
30,2k 4 8 13 - G.Master EY

- Messaggi: 8981
- Iscritto il: 17 lug 2010, 18:42
- Località: le 4 del mattino
2
voti
Non capisco lo schema dell'OP.
Se il pin è configurato come ingresso analogico, allora l'impedenza di ingresso deve essere trascurabile rispetto a 10kOhm, che significa che quello schema non potrà mai funzionare senza un inseguitore di tensione.
Inoltre, cosa più rilevante, il pin collegato all'ingresso andrebbe collegato a GND e l'ingresso andrebbe preso nel punto intermedio fra le resistenze.
Anche facendo così, comunque, il circuito non funziona molto bene, perché il coefficiente di partizione alpha segue una legge del tipo
, dove
è la legge con la quale varia la resistenza equivalente del ramo "di sopra" in funzione dello stato degli interruttori (gli interruttori sono SW1,SW2,SW3) e R è la resistenza connessa a GND.
Questo è importante perché significa che la tensione di uscita è non lineare in funzione dello stato degli interruttori e quindi diventerai facile preda del rumore.
Per esempio, se metti le R in serie agli interruttori seguendo la regola R,2R,4R, avendo il convertitore A/D di Arduino 12 bit, dovresti ottenere questi valori digitali, in funzione dello stato degli interruttori:
facendo il rapporto incrementale del vettore ottengo:
Come previsto fra gli ultimi due c'è un salto di soli 149 valori. Come progetto fa abbastanza pena, considerando che fra i primi due ce ne sono 819. Inoltre non sfrutti tutta la dinamica dell'ADC.
Naturalmente non puoi usare uno switch (nel software intendo) per vedere quale valore digitale ti arriva, perché non ti arriverà mai davvero il valore che ti ho calcolato, perché c'è il rumore e la tolleranza delle resistenze. Dovresti fare un rilevatore a scarto quadratico medio o perlomeno, per farla brutale, controllare quale valore della mia tabella è più vicino al valore letto.
Se, però, come ti è stato chiesto, gli interruttori si dovessero chiudere uno alla volta, allora sarebbe diverso.
Ciao,
Pietro
Se il pin è configurato come ingresso analogico, allora l'impedenza di ingresso deve essere trascurabile rispetto a 10kOhm, che significa che quello schema non potrà mai funzionare senza un inseguitore di tensione.
Inoltre, cosa più rilevante, il pin collegato all'ingresso andrebbe collegato a GND e l'ingresso andrebbe preso nel punto intermedio fra le resistenze.
Anche facendo così, comunque, il circuito non funziona molto bene, perché il coefficiente di partizione alpha segue una legge del tipo
, dove
è la legge con la quale varia la resistenza equivalente del ramo "di sopra" in funzione dello stato degli interruttori (gli interruttori sono SW1,SW2,SW3) e R è la resistenza connessa a GND.Questo è importante perché significa che la tensione di uscita è non lineare in funzione dello stato degli interruttori e quindi diventerai facile preda del rumore.
Per esempio, se metti le R in serie agli interruttori seguendo la regola R,2R,4R, avendo il convertitore A/D di Arduino 12 bit, dovresti ottenere questi valori digitali, in funzione dello stato degli interruttori:
- Codice: Seleziona tutto
{0, 819, 1365, 1755, 2048, 2275, 2457, 2606}
facendo il rapporto incrementale del vettore ottengo:
- Codice: Seleziona tutto
{819, 546, 390, 293, 227, 182, 149}
Come previsto fra gli ultimi due c'è un salto di soli 149 valori. Come progetto fa abbastanza pena, considerando che fra i primi due ce ne sono 819. Inoltre non sfrutti tutta la dinamica dell'ADC.
Naturalmente non puoi usare uno switch (nel software intendo) per vedere quale valore digitale ti arriva, perché non ti arriverà mai davvero il valore che ti ho calcolato, perché c'è il rumore e la tolleranza delle resistenze. Dovresti fare un rilevatore a scarto quadratico medio o perlomeno, per farla brutale, controllare quale valore della mia tabella è più vicino al valore letto.
Se, però, come ti è stato chiesto, gli interruttori si dovessero chiudere uno alla volta, allora sarebbe diverso.
Ciao,
Pietro
-

PietroBaima
90,7k 7 12 13 - G.Master EY

- Messaggi: 12206
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
38 messaggi
• Pagina 1 di 4 • 1, 2, 3, 4
Chi c’è in linea
Visitano il forum: Nessuno e 2 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)







pigreco]=π