...
Code Block | ||||
---|---|---|---|---|
| ||||
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.
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
// 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.