03. Mit ne használjunk Arduino projektekben - Felhúzóellenállások
Beküldte Robert - v, 05/03/2015 - 11:56
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