Ulkoinen vs sisäinen vetovoima

Arduinossa on kaksi tapaa vetää nastat – käyttämällä sisäistä ja ulkoista vastusta. Ihmettelen, milloin minun pitäisi käyttää ulkoista vastusta INPUT_PULLUPin sijaan.

Kommentit

  • Kokemukseni mukaan ainoa ero on " ulkoinen pullup / pulldown on helpompi korvata " ja ehkä myös " katsomalla piiriä, näet ulkoisen vastus, joten ' on helpompi ymmärtää muotoilua muutaman kuukauden kuluttua "

Vastaa

Voit käyttää joko sisäistä tai ulkoista vastusta normaalissa sovelluksessa.

Jokaisella menetelmällä on omat etunsa:

Sisäinen vastus

  • Plussat: joustava muuttaa koodia vaihtamalla
  • Plussat: Pienennä piirilevykokoa
  • Plussat: Pienennä kustannuksia (hyvin pienet)
  • Haitat: Se voi tehdä MCU: sta kuuman

Ulkoinen vastus

  • Pr os: Vähennä MCU: n lämpöä
  • Haittoja: Ei ole helppo vaihtaa, kun se on sisäänrakennettu piirilevy
  • Haittoja: Suurenna piirilevyn kokoa

Lisäksi , Ylös- ja alasvetovastuksia ei käytetä vain INPUT-porttiin, vaan myös OUTPUT-porttiin. OUTPUT-portin tapauksessa. Ulkoisella vastuksella on toinen etu: joustavuus erilaisten I / O-jännitteisten laitteiden liittämisessä. Esimerkiksi I2C-laitteistossa katso I2C laitteistotasolla .

HUOMAUTUS: Tietojeni mukaan Arduino kirjoituksen aikana kirjasto EI tue INPUT_PULLDOWN

kommentteja

  • 1. Sisäisen vedon tuottama lämpö on merkityksetöntä. 2. Joillakin taulukoilla (ei AVR-pohjaisilla) on INPUT_PULLDOWN.

Vastaa

”Miinukset: Se voi tehdä MCU: sta kuuman”
Ei. P = V ^ 2 / R, joten 5 * 5/20 000 = 1,25 mW, se ei tee prosessorista kuumaa. Jopa kääntämällä kaikki 80 Mega2560-laitteessa ja vetämällä ne kaikki matalalle, haihdutat vain 0,1 W.

”HUOMAUTUS: Arduino-kirjasto EI tue kirjoituksen aikana kirjoitushetkellä INPUT_PULLDOWN”. koska Atmega328P, ”1284”, 2560 jne. laiteperheessä ei ole sisäisiä alasvetovastuksia. Ainoastaan pullup. Katso heidän taulukoidensa osio 14, ”I / O-portit”.

Tämä vetäytyminen ei yleensä riitä I2C-vetäytymiseen, 20 – 50 K: n sisäisen vetäytymisen luoma nouseva reuna on hyvin hidasta. Ulkoista 4,7 kt – noin 2,2 kt (riippuu siitä, kuinka monta I2C-laitetta on kytketty) tarvitaan. Ja I2C-väylän teknisten tietojen mukaan niiden pitäisi olla väylän päässä, ei väylän alkuperä (joka yleensä on prosessori).

Jos painikkeesta tai kytkimestä tulee pitkä johdin, se on yleensä hyvä aika käyttää ulkoista vetoa varmistaaksesi hyvät vaihtotasot korkean ja matalan välillä.

Vastaa

”Arduino” Kieli (eli pinMode() -toiminto) tietää vain INPUT_PULLUP.

Tarvitset siis ulkoisia vastuksia PULLDOWN-vastuksille.

OUTPUT-signaalit eivät ole kelluvia, joten termi PULLUP / PULLDOWN-vastus ei ole oikeastaan voimassa siellä.

Sisäisen pullup-vastuksen arvoa ei myöskään voida säätää. Jos arvo (20 .. 50k) ei ole sopiva (I²C tarvitsee jotain alle 10k), tarvitaan ulkoinen vastus.

Kommentit

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *