Versions Compared

Key

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

...

En digital sensor gir et signal om at noe enten er av eller på, som for eksempel en trykkbryter. Det kan være brytere som en bruker trykker på, eller brytere som blir aktivert av en mekanisk bevegelse. Det kan også være brytere som aktiveres av andre ting som for eksempel en termostat som slås på ved en viss temperatur, eller reed-bryter som reagerer på magnetisme. 

 

For de analoge eksemplene, kan koden finnes på GitHub, under Examples/GeneralSensors. Det digitale eksempelet er på GitHub under Examples/ButtonExample.

 

Analoge sensorer, som for eksempel et potmeter, gir et variabelt signal. Analoge sensorer måler kontinuerlige verdier, og gir Arduino et signal som varierer mellom 0V og 5V. Det finnes også avanserte analoge sensorer som kommuniserer med Arduino digitalt, men det kommer vi tilbake til senere. Noen analoge sensorer er ferdig tilpasset Arduino, dvs at de gir 0-5V ut av boksen. Andre sensorer krever at de kobles opp i en krets for å kunne gi riktig signal. Når vi bruker analoge sensorer må vi ofte regne om verdiene som leses av til den størrelsen vi ønsker. For eksempel kan vi ha en temperaturmåler som opererer i området -100°C til +100°C og gir et signal som varierer mellom 0V og 5V. Siden det vi leser av i programmet er en spenning, må vi regne om til temperatur på denne måten:

Code Block
languagecpp
titleOmregning fra spenning til temperatur
float reading, voltage, temp;


void setup(){
}


void loop(){
  reading=analogRead(A0);          // Leser av spenningen på A0 
  voltage=reading/204.6;          // Regner om avlesning til spenning
  temp=( voltage * 40 ) - 100;    // Tallet 40 er 200/5 som tilsvarer antall grader per volt
}                                   // Vi må trekke fra 100 siden 0V tilsvarer -100°C

GitHub: Examples/GeneralSensors/NaiveCalculation/NaiveCalculation.ino

 

Dette kan gjøres mye enklere med funksjonen map som gjør omregningen for oss:

Code Block
languagecpp
titleOmregning med map
int reading, temp;


void setup(){
}


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

GitHub: Examples/GeneralSensors/MapCalculation/MapCalculation.ino

Trykknapper

Noen av de enkleste digitale sensorene er trykknapper. De trykknappene du har fått utdelt har to bein koblet sammen. Under er et bilde som viser en slik knapp fra undersiden. Hvilke bein som er koblet sammen er tegnet inn.

...