03. Mit ne használjunk Arduino projektekben - Felhúzóellenállások

Az egyik korai fejezet az Arduino kézikönyvekben biztosan a DigitalRead() utasítást járja körbe. A tanuláshoz ez biztosan szükséges. Ugyanakkor a könyvek és folyóiratok, ebook-ok nagyrésze eléggé lazán kezeli a problémát. 
A DigitalRead legegyszerűbb modellezése egy kapcsolóval lehetséges: 
A leírásokban és a rajzon is az látszik, hogy ott a belső felhúzóellenállás - amit kódszinten használunk is:
void setup() {
  pinMode(buttonPin, INPUT);     
  digitalWrite(buttonPin,HIGH);
}
A kapcsoló a kivezetés és a GND közé került, és a setup() részen bekapcsoljuk a belső felhúzóellenállást a digitalWrite() utasítással (Igen, a bemeneti lábra történik meg a kiírás). 

De miért nem jó ez a megoldás?

Mert a belső felhúzó ellenállás értéke kb. 20 kohm. És ha hosszú vezetékkel csatlakozik a kapcsoló, mindenféle parazita jeleket képes a vezeték (mint antenna) összeszedni. Az AVR chipek új generációja, melyre az "A" végződés utal (pl. ATMega-8A), illetve a picopower technológia chipjei (pl. ATMega-328P) belső felhúzóellenállása 80...120 kohmos! Azaz még érzékenyebb lesz a bemenet.
A megoldás az, hogy minden esetben külső felhúzóellenállást használunk. Ettől persze a belső is még használható.
A programkódjaink a külső ellenállás esetén változatlanok maradhatnak.
 
Kapcsolódó oldal:
 
Mintakódok:
Arduino > Fájl > Minták > 02.Digital

TavIR-Facebook