Arduino Input med intern Pull Up

Fra Holstebro HTX Wiki
Skift til: navigering, søgning

Redigeres af Mikke, Jakob og Mie

Når man opbygger elektrisk kredsløb indeholdende en kontakt/switch kan man risikere at kontakten vil være “floating” når kontakten har en åben forbindelse. Dette gør at resultaterne bliver uforudsigelige og svære at aflæse. For at få et mere sikkert resultat og entydigt resultat kan man i disse tilfælde koble en modstand mellem denne kontakt og Ground (GND). Denne modstand vil nemlig trække kontakten hen til en kendt værdi, når der ikke er forbindelse over kontakten. Så når der aktiveres en forbindelse over kontakten får man den inverterede strøm ud efter kontakten. [1]


Funktionen af intern Pull Up

I arduino miljøet behøver man ikke under udarbejdning af et kredsløb, at tage højde for en pull up resistor i kredsløbet. Arduinoen har nemlig indbygget pull up resistorer, som man ved at skrive en simpel kommando i Arduino IDE’et kan bruge. Denne kommando fungere således at man ved start af programmet (under setup), hvor man definere de pins man tager i brug i stedet for at skrive “INPUT” skriver “INPUT_PULLUP”.[2]

Kode

void setup() {

Serial.begin(9600);
pinMode(7, INPUT_PULLUP);

}

void loop() {

Serial.print(digitalRead(7));

}

Målinger

Her ses en måling, hvor pull up funktion ikke er slået til og kontakten vil "floate":

Float.jpg

Her ses en måling, hvor pull up er slået til og kontakten er mere præcis:

Ingenfloat.jpg

målinger:

Maaling2.jpg
Spænding [V] Strøm [mA]
0 V 0.14 mA
0.5 V 0.12 mA
1 V 0.11 mA
1.5V 0.09 mA
2 V 0.08 mA
2.5 V 0.07 mA
3 V 0.05 mA
3.5 V 0.04mA
4 V 0.03 mA
4.5 V 0.01 mA
5 V 0 mA
5.5 V 0 mA
6 V 0.43 mA
6.5 V 1.93 mA
7 V 3.4 mA


Referencer