Domanda:
Pulsante e resistenza da 2700 Ohm?
Mark Hähnel
2012-09-18 21:01:17 UTC
view on stackexchange narkive permalink

ho un interruttore a scatto e una resistenza da 2700 ohm e voglio leggere lo stato con python. La parte di codice non è un problema per me, ma è possibile utilizzare questi componenti per collegarlo ai GPIO a leggere lo stato? E come deve essere il cablaggio?

Ho letto qualcosa su alcuni Pin che hanno una resistenza di pull-up integrata o qualcosa del genere Significa che non ho bisogno di una resistenza per usare un pulsante / cambiare?

Grazie! :)

Saluti, Mark

Due risposte:
#1
+6
John La Rooy
2012-09-18 21:23:21 UTC
view on stackexchange narkive permalink

Ecco la configurazione di base di cui hai bisogno. Puoi usare i GPIO con i resistori incorporati se lo desideri

 3V3 --- o | | >> Resistore> | | GPIO --- o | | \ Switch \ | | GND --- o 

Puoi anche usare le deboli resistenze pullup / pulldown all'interno del SoC eg.

  // abilita il pull-up su GPIO24&25 GPIO_PULL = 2; short_wait (); // orologio su GPIO 24 & 25 (bit 24 & 25 impostato) GPIO_PULLCLK0 = 0x03000000; short_wait (); GPIO_PULL = 0; GPIO_PULLCLK0 = 0;  

Se stai usando il pullup interno ti serve solo questa parte

 GPIO --- o | | \ Switch \ | | GND --- o 
@ppumkin, Se il resistore non è presente, l'ingresso fluttuerà e tenderà a cambiare in modo casuale mentre i campi elettrici si muovono attorno ad esso. Il valore del resistore non è critico.
Va bene, grazie. Ma la resistenza da 2700ohm va bene per questo?
Eh? Se è pilotato da 3,3 volt non è flottante .. L'uso di un resistore riduce solo la tensione .. quindi come fa a eliminare le tensioni fluttuanti? Capisco che uno schema pull up o pull down faccia questo ... ma penso che il resistore in linea sia ridondante ...
@Mark, 2700ohm dovrebbe andare bene.
@ppumkin, _è_ una resistenza pullup. Senza di esso l'interruttore cortocircuiterebbe 3V3 a GND. Il suo lavoro non è ridurre la tensione. La tensione al GPIO sarà 3V3 se l'interruttore è aperto e 0V se l'interruttore è chiuso
Ah ok, quello che ho capito è che il resistore serve a ridurre la corrente. in modo che non ci sia cortocircuito giusto?
La tua discussione mi sta confondendo: D quindi posso farlo con e senza una resistenza, giusto?
@Mark, hai _ bisogno_ di un resistore. Il resistore può essere uno di quelli incorporati se si desidera utilizzare quei pin particolari.
Quindi se utilizzo GPIO 0 (aka Pin 4) posso collegarlo in questo modo: [link] (http://imgur.com/gVr7M) giusto?
@Mark, no che mostra un cortocircuito da 3V3 a GND quando l'interruttore è chiuso
bella arte ascii: P
Fa differenza se viene utilizzato come resistenza di pull-up o pull-down, ad es. Importa per i pin GPIO nello stato di uscita se guidano contro 0 o + 3,3 V?
@andig, non proprio. Spesso i GPIO possono assorbire la corrente leggermente meglio di quanto possano generarla, ma dovresti evitare di avvicinarti al limite per gli RPi in modo da non rischiare di danneggiarli.
#2
+1
Krzysztof Adamski
2012-09-18 22:42:05 UTC
view on stackexchange narkive permalink

Normalmente, il pin GPIO non è connesso a nulla, quindi il suo valore non è possibile per rilevare in modo affidabile il suo stato. Si dice che questo stato sia fluttuante poiché in questo stato, il valore del pin GPIO può cambiare a seconda di alcuni eventi esterni imprevedibili.

Ora puoi collegare l'interruttore (o il pulsante Bush) con un lato a GPIO pin e uno a terra (GND). In questo modo, se premi il pulsante, GND sarà connesso a GPIO e il suo stato sarà basso. Se rilasci il pulsante, GPIO non sarà più connesso a nulla (quindi avrà uno stato flottante).

Quindi devi in ​​qualche modo collegare il tuo GPIO all'alta tensione quando il pulsante viene rilasciato. Questo si chiama pull-up perché quando lo fai, questo aumenterà la tua tensione.

Ma come farlo? Devi collegare il tuo GPIO a 3.3V. In questo modo, quando il pulsante viene rilasciato, GPIO avrà uno stato alto (3,3 V). Se premi il pulsante, sarà collegato sia a 3,3 V che a GND. La corrente passerà da 3,3 V a GND lasciando GPIO a 0 V (stato basso).

Tuttavia, c'è un problema. Non hai quasi nessuna resistenza nel tuo circuito, quindi la corrente che fluirà sarà molto forte (il cosiddetto cortocircuito). Questo è male. Ed è per questo che hai bisogno di un resistore, un resistore di pull-up. Limiterà il flusso di corrente da 3,3 V al pin GND o GPIO.

Quanto dovrebbe essere grande il resistore? Abbastanza grande da limitare la corrente al valore che non danneggerà il pin GPIO, non farà saltare i problemi di input su RPi o farà scendere la tensione di ingresso al valore che farà riavviare il tuo RPi. Nel caso in cui il tuo RPi fosse alimentato a batterie, ti piacerebbe anche non prendere troppa corrente in modo che la batteria duri più a lungo. Non può essere troppo alto, tuttavia, poiché RPi potrebbe avere problemi con il rilevamento dell'alta tensione in ingresso. Quindi, per essere sicuri, diciamo che la sua resistenza dovrebbe essere misurata in kilo ohm :)

Ora dovresti immaginare cosa sia la resistenza di pull-up interna. È un piccolo resistore all'interno di un chip che collega il pin GPIO all'alta tensione che puoi utilizzare invece di collegarne uno esterno.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...