Kysymys:
Mitä eroa on INPUT: lla ja INPUT_PULLUP: lla?
Manishearth
2013-04-16 14:31:20 UTC
view on stackexchange narkive permalink

Uudemmissa Arduinoissa pinMode voidaan asettaa yhdeksi kolmesta tilasta: OUTPUT , INPUT ja INPUT_PULLUP .

Tällä sivulla sanotaan:

Arduinon Atmega-sirussa on sisäiset vetovastukset (vastukset, jotka kytketään virtaan sisäisesti), joihin pääset käsiksi. Jos haluat käyttää näitä ulkoisten alasvetovastusten sijasta, voit käyttää INPUT_PULLUP-argumenttia pinMode (): ssa. Tämä kääntää tehokkaasti käyttäytymisen, jossa HIGH tarkoittaa, että anturi on pois päältä ja LOW tarkoittaa, että anturi on päällä.

Olen melko varma, että käyttäytymisen kääntäminen ei ole ainoa asia tekee kuitenkin.

Mitä INPUT_PULLUP tekee? Millä tavoin se eroaa INPUT : sta ja miten kukaan päättää käyttää?

INPUT_PULLUP lisättiin IDE 1.0.1: llä. Ei ole merkitystä, mitä Arduino-korttia käytät, ne kaikki tukevat PULLUP-tiedostoja.
Kaksi vastused:
user178
2013-04-16 18:38:57 UTC
view on stackexchange narkive permalink

Oletusarvo on INPUT , joka asettaa pinin koodiksi INPUT . Jos tappi on irrotettu kokonaan, se lukee satunnaisesti HIGH ja LOW . Jos sidot sen arvoon + 5 V tai 0 V, se lukee selvästi HIGH tai LOW .

Arduinon sisäisessä Atmega-sirussa on sisäiset vetovastukset, joiden arvo on noin 20 k ohmia. (Katso lisätietoja DigitalPins -dokumentaatiosta.) Nämä vastukset voidaan liittää valinnaisesti sisäisesti käyttämällä INPUT_PULLUP . Tämä vastaa toiminnallisesti (ja sähköisesti) ~ 20 k ohmin vastuksen liittämistä nastan ja + 5 V: n välillä, ainoa ero on, että se ei vaadi ulkoisia komponentteja ja voit kytkeä sen päälle ja pois päältä ohjelmistossa ohjelman suorittamisen aikana. / p>

Joten miksi vetovoimat eivätkä pudotukset? Sille on todennäköisesti useita syitä, mutta kun kytketään painikkeita tai kytkimiä tai jotain "normaalisti auki", sinun on vain sidottava ne maahan, sinun ei tarvitse ajaa + 5 V ulos heihin. Koska useimmat levyt suunnitellaan suurilla maaperän kaatoilla suojaussyistä joka tapauksessa, sitominen maahan on käytännössä syytä.

Joillakin enemmän esillä olevilla IC: llä, kuten ARM-siruilla, on sekä ylös- että alaslaskuja, mutta 8-bittinen AVR-linja sisältää vain vedonlyönnit. Sinun tarvitsee vain muistaa, että HIGH on "auki" ja LOW on "suljettu".

Äänestä.FYI, asiakirjojen mukaan sisäiset vetäytymät ovat 20 kt, ei sillä, että sillä on paljon eroa 50 000: een.https://www.arduino.cc/en/Tutorial/DigitalPins
JamesC4S
2013-04-17 21:53:08 UTC
view on stackexchange narkive permalink

Huomaa, että ennen versiota 1.0.1 voit käynnistää vedot käyttämällä digitalWrite () -toimintoa. Ja voit silti.

Koodi:

  pinMode (13, INPUT); digitalWrite (13, HIGH); // Kääntää sisäisen vedon ondigitalWrite (13, LOW); // Kytkee sisäisen vedon pois päältä  

Tämä on tärkeä ero, koska INPUT_PULLUP kytkee ilmeisesti pull-up-vastuksen päälle. Vähemmän ilmeistä on kuitenkin se, että aloittaen 1.0.1: stä, yksinkertaisesti kutsumalla INPUT pakotetaan veto pois päältä. (Aiemmin vetäytymisen tila pysyi samana).

Katso seuraavista videoista, kuinka tappi toimii vetovoimien kanssa ja ilman niitä.

Kelluva tappi oskilloskoopilla: http://www.youtube.com / watch? v = dBIBFLYCjMM

Kun Pull-Up on käytössä: http://www.youtube.com/watch?v=SAIw7LLVl-U

Täydellinen opastusvideo vetovoimista (huomaa, että tein tämän ennen kuin INPUT_PULLUP lisättiin Arduino-kirjastoon): http://www.youtube.com/watch?&v=jJnD6LdGmUo

Erittäin taitava.Kiitos, että kirjoitit tämän.Äänestä.


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...