Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagecpp
titleOmregning med map
int reading, temp;


void setup(){
}


void loop(){
  reading = analogRead(0);
  temp = map( reading, 0, 1023, -100, 100);
}        

Trykknapper

Noen av de enkleste digitale sensorene er trykknapper. Under er en oppkoblet krets med trykknapp.

Image Added Image Added

Her er både kretsskjema og breadboard view. Legg merke til at knappen har fire bein, hvor to og to er koblet sammen. De føttene som er "på samme side" er de som brytes. Motstanden gjør at du ikke kortslutter Arduinoen når du trykker på knappen, og at pinne 6 faktisk kan lese av en definert verdi når knappen ikke er trykket inn. En ekstra sikkerhet hadde vært å koble inn en ekstra motstand på 220 ohm mellom 5 volt ut og knappen. Dette hadde forsikret at hvis du trykker på knappen, og Arduinoen har definert pinne 6 som utgang med verdi lav, hadde det ikke oppstått kortslutning.

Code Block
languagecpp
titleEksempel med knapp
linenumberstrue
// Hvor vi har koblet til knappen.
const int buttonPin = 6;
// Husker den forrige verdien for å forhindre veldig mye utskrift
int oldVal = 0;

void setup() {
  Serial.begin(9600);
  // Definer knappen som en inngang
  pinMode(buttonPin, INPUT);
}

void loop () {
  // Les av den nåværende verdien
  int val;
  val = digitalRead(buttonPin);

  // Hvis verdien har endra seg
  if (val != oldVal) {

    // Oppdater gammel verdi
    oldVal = val;

    // Sjekk den nåværende verdien
    if (val == HIGH) {
      // Hvis knappen er trykket, fortell om dette
      Serial.println("Trykket paa knappen");
    } else if (val == LOW) {
      // Hvis knappen er sluppet, fortell om dette
      Serial.println("Slapp knappen");
    } else {
      // Hvis en ukjent verdi leses, fortell om dette. DETTE SKAL ALDRI SKJE, skjer det er det nok noe feil med Arduinoen din.
      Serial.println("Ukjent verdi lest");
    }
  }

  // Vent litt for å ha sensor stabilitet
  delay(1);
}

Når du kobler opp og prøver dette eksempelet, kan det skje når du trykker på knappen at du får flere linjer utskrift. Dette er et kjent fenomen, og kan ganske enkelt forhindres. Det er en tutorial på Arduino sine hjemmesider som omhandler nettopp dette.