Küsimus:
Nupu olek muutub juhuslikult
sachleen
2014-02-14 07:01:05 UTC
view on stackexchange narkive permalink

Mul on Arduinoga juhtnupp ühendatud, kuid tundub, et see käivitub juhuslikult.

Mul on üks nupu nööp ühendatud arduino nööpnõelaga 2 ja teine ​​on ühendatud maapinnaga.

  tühine seadistamine () {Serial.begin (9600); pinMode (2, INPUT);} void loop () {Serial.println (digitalRead (2));}  

Eeldan, et see prindib 1 pidevalt ja läheb 0-ni, kui vajutan nupp all, kuid mõnikord näitab see 0 isegi siis, kui ma seda ei puuduta.

üks vastus:
#1
+17
sachleen
2014-02-14 07:01:05 UTC
view on stackexchange narkive permalink

Kui selles konfiguratsioonis on ühendatud nupp, on sisendiks nimetus ujuv , see tähendab, et see pole 0 ega 1. Kui nuppu vajutatakse, on see ühendatud maapinnaga, nii et see on kindlasti a 0, kuid kui seda alla ei vajutata, ei tea me tihvti väärtust.

Pull Up Resistor

Peame lisama nn pull-upi takisti signaali viimiseks loogikani 1, kui nuppu ei vajutata.

pull up resistor

Pilt Sparkfunist

Mida see tähendab, kui nuppu ei vajutata, loeb Arduino loogikat 1. Kui nuppu vajutatakse, voolab vool läbi takisti maapinnale ja Arduino loeb loogikat 0.

Sisemine tõmme Üles takisti

Arduinol on ka sisemised takistid, nii et te ei pea tingimata lisama oma vooluringile lisakomponenti. Selle kasutamiseks on mitu võimalust.

Varem pidite seda tegema nii:

  pinMode (pin, INPUT); // määra pin sisenddigitalWrite (pin, HIGH); // sisselülitustakistite sisselülitamine  

Nüüd saame seda teha lihtsalt ühel real:

  pinMode (pin, INPUT_PULLUP);  

See võimaldab sellel tihvtil tõmmata 20 k takistit. Kui nuppu ei vajutata, sisend enam ei hõlju.

Märkus: see töötab ainult siis, kui teine ​​ots on maaga ühendatud.

Väärib märkimist, et sama idee töötab ka allaklapitakistite puhul; st takisti tõmbab tavaliselt tihvti madalale, kuid nupu vajutamine viib selle kõrgele. Ilmselt peab see olema siiski väline, kuna standardsetes Arduinos pole sisemist tõmbetõmmet.


See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...