Ciao a tutti
premetto che non ho una preparazione tecnica per l'elettronica e di professione sono sviluppatore, ma sono molto appassionato e da quando conosco arduino mi sono cimentato in piccoli progettini e, forse preso anche dalla mia deformazione professionale, mi piace essere il più completo possibile.
Detto questo, il progetto al quale sto lavorando comprende una scheda "WeMOS Mega + WiFi R3 ATmega2560 + ESP8266 USB-TTL for NodeMCU" e tra gli altri sensori, vorrei aggiungere in serie lo switch KW11-3Z. Nell'immagine sotto (presa da un topic di questo sito), si vede che i componenti sono in parallelo, mentre io vorrei metterli in serie, quindi avrei bisogno di capire se la resistenza può essere 1 o devo metterne tante quanti ne sono gli switch e poi un unico filo
Utilizzano resistori di pull-down, quindi ne hanno bisogno uno per interruttore. (Sarebbe stato meglio utilizzare l'INPUT_PULLUP integrato e non utilizzare alcun resistore del tutto).
La resistenza può essere uno?...
Se devi mettere gli interruttori in serie, collegali tra loro con un filo dall'uno all'altro e poi metti una resistenza di pull-up o di pull-down all'ingresso di Arduino. Se metti gli interruttori verso massa, poi attivare una resistenza di pull-up interna con
pinMode (pin_di_ingresso, INPUT_PULLUP);
Innanzitutto grazie per la tua risposta.
Quindi devo utilizzare una resistenza per ogni interruttore che va sul GND e poi l'altro polo di tutti può andare sullo stesso pin arudino?
Dovresti leggere della documentazione sulle resistenze di pull-up o pull-down
Ecco un esempio (primo risultato su Google).
sei stato gentilissimo, ma vista la mia bassissima conoscenza dell'elettronica, mi viene da pensare che visto che io voglio metterli in serie per usarli come controllo manomissione scatola (tipo come gli allarmi), dovrei mettere tutti gli interruttori collegati allo stesso pin arduino e ogniuno di loro collegati alla GND (oV preso dalla giuda che mi ha indicato). Per esempio così (@Datman: così intendevi?)
Se hai sul banco quel tipo di uswitch con 3 terminali puoi renderti conto come funzionano se hai tester. Anche senza tester se ci vedi bene ogni pin oltre ad essere numerato dovrebbe avere anche un nome. I nomi più frequentemente usati sono:
- C - Common. Si tratta del contatto centrale che risulta collegato con il terminale NC
- NC - Normal Closed. vedi contatto C.
- NO - Normal Open. Si tratta del contatto normalmente aperto non collegato al contatto C
Quando premi C e NC si aprono mentre C e NO si chiudono.
Quindi collegando due uswitch in serie si usano i terminali C e NC.
SW1(C) connesso con SW2(C).
SW1(NC) connesso a GND
SW2(NC) connesso al pin arduino ad esempio il pin 5.
Con questa configurazione puoi mettere più uswitch in serie tanti quanti ne vuoi.
Se vuoi risparmiare una resistenza abiliti via software la resistenza di pull-up con la funzione pinMode(5, INPUT_PULLUP);
Con uswitch in posizione di riposo digitalRead(5);
restituisce LOW e ovviamente HIGH con uno o più uswitch premuto.
Ciao.
Cosi sono ancora in parallelo (oltre che collegati in modo sbagliato), solo che condividono lo stesso input. Diciamo che potrebbe anche andare per le tue esigenze perché ti basta che uno qualsiasi sia chiuso per attivare l'ingresso (ma gli switch andrebbero collegati sul contatto NC).
Un collegamento in serie è più tipo questo, dove come puoi vedere non c'è nessuna resistenza esterna perché l'ingresso è configurato come INPUT_PULLUP ovvero con la resistenza interna abilitata.
A tal proposito, vorrei farti notare che stai guardando il problema dalla prospettiva sbagliata: non è lo switch "cha ha bisogno" della resistenza di pull-up/pull-down, ma l'ingresso del microcontrollore per le ragioni che sono ottimamente spiegate nel link che ti ha fornito @J-M-L
Grazue una spiegazione eccellente. Ho capito anche la questione della resistenza.
Sei stato gentile e paziente con uno che ha una piccolissima esperienza e quasi nessina conoscenza sull'elettronica.
Ma ti pare, prego, si prego di essere compreso.
No e che alle volte il principiante è assoluto e non si riesce a farsi capire.
Ho contato sul fatto che sei un programmatore e come tale ho cercato di esprimermi.
Con quello che ha scritto @cotestatnt dovresti essere in grado di usare una resistenza esterna connessa in pull-down, in questo modo digitalRead(5) restituisce HIGH a riposo LOW se premuto. Cambiano anche i punti di collegamento se serve provo a fare un disegnino. In caso di pull-down esterna nella
pinMode() devi usare
INPUT al posto
INPUT_PULLUP`.
Ciao e Benvenuto.
Con una resistenza in pull down e l'interruttore verso il positivo, digitalRead a riposo (cioè con l'interruttore aperto) restituisce LOW!
Si, ma anche no. Cioè se uso i contatti NC-C messi in serie a riposo sul pin ci sarà HIGH, premendo uno degli switch il circuito si apre e il pin si ritrova connesso alla sola resistenza di pull-down e sarà LOW.
Gli stati HIGH/LOW si invertono se usiamo i contatti NO-C,
Se usi una serie di interruttori normalmente chiusi verso Vcc, sì.
Si, se rileggi il tutto dovresti arrivare alle mie stesse conclusioni. Si vedono degli switch deviatori monopolari. Dalla descrizione invece ho dedotto l'uso degli switch come tamper, che sono impiegati in impianti di allarme come pure all'interno del box delle sirene per segnalare manomissione.
Ciao.
Per "a riposo" avevo interpretato genericamente a circuito aperto, anziché nel caso specifico con gli interruttori chiusi.
Ciao
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.