Noe av det vi gjør oftest i et mikrokontrollersystem er å skrive digitale verdier til en bestemt pinne.
For at vi skal få dette til, er det viktig at vi har brukt pinMode-funksjonen for å sette den aktuelle pinnen som en utgang:
Eksempel:
pinMode(8, OUTPUT); //Setter digital pinne 8 som utgang
Funksjonen vi bruke til å skrive digitale verdier er digitalWrite() (nevnt i "Hello World):
digitalWrite() - Setter en utgangspinne til enten høyt eller lavt nivå (1 eller 0, 5V eller 0V)
Eksempel:
digitalWrite(8,HIGH); // "Skriver" høyt nivå til digital pinne 8
I koden er det ikke så mye vi trenger å tenke på, men det er viktig at det som vi kobler til pinnen ikke trekker for mye strøm. Databladet for AtMega328 oppgir maksimum strømtrekk pr. pinne til 40mA, og til sammen på alle pinner 200mA. For å "lette jobben" til mikrokontrolleren kan det være en fordel å koble eksterne komponenter slik at de er "aktiv lav". Det vil si at en null på utgangen vil føre til at det går strøm fra den eksterne komponenten og til jord (source current). På figuren under er et eksempel på to forskjellige måter å koble en lysdiode på. Den ene aktiv lav og den andre aktiv høy.
IO8 og IO9 refererer til de digitale pinnene 8 og 9 på Arduino Uno. Her har vi brukt seriemotstander på 470 ohm, men når vi kobler i praksis kan de gjerne være større. Helt opp i 1 kohm går som oftest fint. |
Program
Neste artikkel -->