1. Du er her:  
  2. Hjem
  3. Arduino
  4. Viktige prinsipper
  5. Skrive digitale verdier
Lilleholt.no
  • Hjem
  • Lenker
  • Webkamera
  • Målestasjoner
  • Arduino
    • Kom i gang
      • Hva er Arduino
      • Flere Arduino-versjoner og utbygging
      • Installere Arduino IDE og drivere
      • Utviklingsmiljøet Arduino IDE
    • Hello World
      • Det første programmet
      • Programmet, bit for bit
    • Programmering av Arduino
      • Variabler
      • Operatorer
      • Valg-setninger
      • Løkker
      • Funksjoner
    • Viktige prinsipper
      • Skrive digitale verdier
      • Lese digitale verdier
      • Lese analoge verdier
      • Skrive analoge verdier
      • Serial Monitor
      • Serial plotter
      • Glidende gjennomsnitt
      • Tilstandsmaskin
      • Bitfikling og registere
    • Tilkobling av komponenter og moduler
      • Ultralydsensor HC-SR04
      • LCD-display
      • DHT22
      • LED-ring med WS2812B RGB-lysdioder
      • Opp- og utlading av kondensator
    • Introduksjon til objektorientering og klasser
    • Internet of Things - et lite eksempel
    • Generell elektronikk
  • Planteblogg
  • Logg inn

Skrive digitale verdier

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.

 

Skjema i Proteus

Hele skjemaet i Proteus

Kobling i Tinkercad

Fra Tinkercad

Program

void setup() {
  pinMode(8, OUTPUT); //LED er koblet aktiv LAV, LOW (0) ut vil gi lys
  pinMode(9, OUTPUT); //LED er koblet aktiv HØY, HIGH (1) ut vil gi lys
  digitalWrite(8, HIGH);
}

void loop() {
  digitalWrite(8, HIGH);  // LED på pinne 8 er aktiv LAV, så den er mørk nå
  digitalWrite(9, HIGH);  //LED på pinne 9 er aktiv HØY, så den vil lyse nå
  delay(400);
  digitalWrite(8, LOW);  // LED på pinne 8 er aktiv LAV, så den vil lyse nå
  digitalWrite(9, LOW);  //LED på pinne 9 er akti HØY, så den er mørk nå
  delay(400);
}


Neste artikkel -->

Detaljer
Skrevet av: Per Sigbjørn
Kategori: Skrive digitale verdier
Sist oppdatert 17. oktober 2024
Treff: 2819

Søk


Avansert søk