2012 01 30 Arduino Forelesning
-
Upload
andre-reis -
Category
Documents
-
view
26 -
download
6
Transcript of 2012 01 30 Arduino Forelesning
![Page 1: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/1.jpg)
ARDUINOPROGRAMMERING
DIGITALE/ANALOGE INNDATA/UTDATALYSDIODER – FRITZING
Roger AntonsenINF1510
30. januar 2012FOR EKSPERIMENTELL INFORMATIKKFOR EKSPERIMENTELL INFORMATIKKÅPEN SONEÅPEN SONE
STUDIELABEN
![Page 2: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/2.jpg)
Arduino Cookbook, Michael Margolis
Making Things Talk, Tom Igoe
Flere av illustrasjonene og eksemplene i denne forelesningen er tatt derfra.
En mer avansert, men veldig bra, bok!
Denne boken inneholder det meste man trenger å vite.
![Page 3: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/3.jpg)
PROGRAMMERING I ARDUINO
![Page 4: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/4.jpg)
![Page 5: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/5.jpg)
• pinMode(pin, Mode) pin angir pinnen og Mode er INPUT eller OUTPUT
![Page 6: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/6.jpg)
• pinMode(pin, Mode) pin angir pinnen og Mode er INPUT eller OUTPUT
• digitalWrite(pin, verdi) verdi er HIGH eller LOW
![Page 7: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/7.jpg)
• pinMode(pin, Mode) pin angir pinnen og Mode er INPUT eller OUTPUT
• digitalWrite(pin, verdi) verdi er HIGH eller LOW
• digitalRead(pin) returnerer HIGH eller LOW
![Page 8: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/8.jpg)
• pinMode(pin, Mode) pin angir pinnen og Mode er INPUT eller OUTPUT
• digitalWrite(pin, verdi) verdi er HIGH eller LOW
• digitalRead(pin) returnerer HIGH eller LOW
• analogWrite(pin, verdi) verdi er tall mellom 0 og 255
![Page 9: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/9.jpg)
• pinMode(pin, Mode) pin angir pinnen og Mode er INPUT eller OUTPUT
• digitalWrite(pin, verdi) verdi er HIGH eller LOW
• digitalRead(pin) returnerer HIGH eller LOW
• analogWrite(pin, verdi) verdi er tall mellom 0 og 255
• analogRead(pin) returnerer et tall mellom 0 og 1023
![Page 10: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/10.jpg)
![Page 11: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/11.jpg)
• Variable brukes til å lagre data.
![Page 12: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/12.jpg)
• Variable brukes til å lagre data.
• Noen viktige begreper er følgende.
![Page 13: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/13.jpg)
• Variable brukes til å lagre data.
• Noen viktige begreper er følgende.
• deklarasjon: å sette av plass i minnetint x;boolean y;
![Page 14: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/14.jpg)
• Variable brukes til å lagre data.
• Noen viktige begreper er følgende.
• deklarasjon: å sette av plass i minnetint x;boolean y;
• tilordning: å sette en verdix = 20;y = true;
![Page 15: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/15.jpg)
• Variable brukes til å lagre data.
• Noen viktige begreper er følgende.
• deklarasjon: å sette av plass i minnetint x;boolean y;
• tilordning: å sette en verdix = 20;y = true;
• skop: der hvor variablene er synlige
![Page 16: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/16.jpg)
![Page 17: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/17.jpg)
• int: 16-bits verdi mellom -32 768 og 32 767int x = 32767;x++; // gjør at x blir -32768
![Page 18: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/18.jpg)
• int: 16-bits verdi mellom -32 768 og 32 767int x = 32767;x++; // gjør at x blir -32768
• unsigned int: 16-bits verdi mellom 0 og 65535kun positive verdier
![Page 19: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/19.jpg)
• int: 16-bits verdi mellom -32 768 og 32 767int x = 32767;x++; // gjør at x blir -32768
• unsigned int: 16-bits verdi mellom 0 og 65535kun positive verdier
• long: 32-bits verdi mellom -2147483648 og 2147483647
![Page 20: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/20.jpg)
• int: 16-bits verdi mellom -32 768 og 32 767int x = 32767;x++; // gjør at x blir -32768
• unsigned int: 16-bits verdi mellom 0 og 65535kun positive verdier
• long: 32-bits verdi mellom -2147483648 og 2147483647
• usigned long: 32-bits verdi mellom 0 og 4294967295
![Page 21: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/21.jpg)
• int: 16-bits verdi mellom -32 768 og 32 767int x = 32767;x++; // gjør at x blir -32768
• unsigned int: 16-bits verdi mellom 0 og 65535kun positive verdier
• long: 32-bits verdi mellom -2147483648 og 2147483647
• usigned long: 32-bits verdi mellom 0 og 4294967295
• float/double: 32-bits flyttallavrundede verdier; husk at dette kan medføre nøyaktigheter
![Page 22: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/22.jpg)
![Page 23: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/23.jpg)
• byte: 8-bits verdi mellom 0 og 255byte x = 130;byte x = B10000010; // samme resultat
![Page 24: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/24.jpg)
• byte: 8-bits verdi mellom 0 og 255byte x = 130;byte x = B10000010; // samme resultat
• char: en byte som lagrer et tegn(egentlig bare en verdi mellom -128 og 127)char x = ‘G’;char x = 71; // samme resultat
![Page 25: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/25.jpg)
• byte: 8-bits verdi mellom 0 og 255byte x = 130;byte x = B10000010; // samme resultat
• char: en byte som lagrer et tegn(egentlig bare en verdi mellom -128 og 127)char x = ‘G’;char x = 71; // samme resultat
• boolean: true eller false
![Page 26: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/26.jpg)
• byte: 8-bits verdi mellom 0 og 255byte x = 130;byte x = B10000010; // samme resultat
• char: en byte som lagrer et tegn(egentlig bare en verdi mellom -128 og 127)char x = ‘G’;char x = 71; // samme resultat
• boolean: true eller false
• array: en samling av indekserte variable
![Page 27: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/27.jpg)
![Page 28: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/28.jpg)
• array: en samling av indekserte variabledeklarasjon (og tilordning):
![Page 29: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/29.jpg)
• array: en samling av indekserte variabledeklarasjon (og tilordning):int mittArray[6]; // kun deklarasjon
![Page 30: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/30.jpg)
• array: en samling av indekserte variabledeklarasjon (og tilordning):int mittArray[6]; // kun deklarasjonint mineTall[] = {3,7,1,2,8}; // automatisk
![Page 31: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/31.jpg)
• array: en samling av indekserte variabledeklarasjon (og tilordning):int mittArray[6]; // kun deklarasjonint mineTall[] = {3,7,1,2,8}; // automatiskint mineVerdier[3] = {32,64,-8}; // både-og
![Page 32: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/32.jpg)
• array: en samling av indekserte variabledeklarasjon (og tilordning):int mittArray[6]; // kun deklarasjonint mineTall[] = {3,7,1,2,8}; // automatiskint mineVerdier[3] = {32,64,-8}; // både-ogchar beskjed[6] = "hello"; // strenger er arrayer av tegn (char)
![Page 33: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/33.jpg)
• array: en samling av indekserte variabledeklarasjon (og tilordning):int mittArray[6]; // kun deklarasjonint mineTall[] = {3,7,1,2,8}; // automatiskint mineVerdier[3] = {32,64,-8}; // både-ogchar beskjed[6] = "hello"; // strenger er arrayer av tegn (char) // siste tegn er et nulltegn som avslutter
![Page 34: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/34.jpg)
• array: en samling av indekserte variabledeklarasjon (og tilordning):int mittArray[6]; // kun deklarasjonint mineTall[] = {3,7,1,2,8}; // automatiskint mineVerdier[3] = {32,64,-8}; // både-ogchar beskjed[6] = "hello"; // strenger er arrayer av tegn (char) // siste tegn er et nulltegn som avslutter
hente og sette inn verdier:
![Page 35: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/35.jpg)
• array: en samling av indekserte variabledeklarasjon (og tilordning):int mittArray[6]; // kun deklarasjonint mineTall[] = {3,7,1,2,8}; // automatiskint mineVerdier[3] = {32,64,-8}; // både-ogchar beskjed[6] = "hello"; // strenger er arrayer av tegn (char) // siste tegn er et nulltegn som avslutter
hente og sette inn verdier:mineVerdier[0] returnerer 32.
![Page 36: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/36.jpg)
• array: en samling av indekserte variabledeklarasjon (og tilordning):int mittArray[6]; // kun deklarasjonint mineTall[] = {3,7,1,2,8}; // automatiskint mineVerdier[3] = {32,64,-8}; // både-ogchar beskjed[6] = "hello"; // strenger er arrayer av tegn (char) // siste tegn er et nulltegn som avslutter
hente og sette inn verdier:mineVerdier[0] returnerer 32.mineVerdier[5] gir feilmelding.
![Page 37: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/37.jpg)
• array: en samling av indekserte variabledeklarasjon (og tilordning):int mittArray[6]; // kun deklarasjonint mineTall[] = {3,7,1,2,8}; // automatiskint mineVerdier[3] = {32,64,-8}; // både-ogchar beskjed[6] = "hello"; // strenger er arrayer av tegn (char) // siste tegn er et nulltegn som avslutter
hente og sette inn verdier:mineVerdier[0] returnerer 32.mineVerdier[5] gir feilmelding.mineVerdier[0] = 100; // erstatter første tall
![Page 38: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/38.jpg)
![Page 39: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/39.jpg)
int multipliser(int x, int y) {
![Page 40: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/40.jpg)
int multipliser(int x, int y) { int resultat;
![Page 41: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/41.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y;
![Page 42: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/42.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;
![Page 43: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/43.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;}
![Page 44: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/44.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;}
type til returverdi(eller void hvis ingen type)
![Page 45: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/45.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;}
type til returverdi(eller void hvis ingen type)
navn på funksjonen
![Page 46: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/46.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;}
type til returverdi(eller void hvis ingen type)
navn på funksjonentype og navn på
argumentene til funksjonen
![Page 47: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/47.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;}
type til returverdi(eller void hvis ingen type)
navn på funksjonentype og navn på
argumentene til funksjonen
deklarasjonav variabel
![Page 48: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/48.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;}
type til returverdi(eller void hvis ingen type)
navn på funksjonentype og navn på
argumentene til funksjonen
deklarasjonav variabel
tilordning avvariabel
![Page 49: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/49.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;}
type til returverdi(eller void hvis ingen type)
navn på funksjonentype og navn på
argumentene til funksjonen
deklarasjonav variabel
tilordning avvariabel
returverdi;må være av riktig type
![Page 50: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/50.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;}
type til returverdi(eller void hvis ingen type)
navn på funksjonentype og navn på
argumentene til funksjonen
deklarasjonav variabel
tilordning avvariabel
returverdi;må være av riktig type
Viktig å huske på:
![Page 51: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/51.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;}
type til returverdi(eller void hvis ingen type)
navn på funksjonentype og navn på
argumentene til funksjonen
deklarasjonav variabel
tilordning avvariabel
returverdi;må være av riktig type
Viktig å huske på:• skop
![Page 52: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/52.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;}
type til returverdi(eller void hvis ingen type)
navn på funksjonentype og navn på
argumentene til funksjonen
deklarasjonav variabel
tilordning avvariabel
returverdi;må være av riktig type
Viktig å huske på:• skop• semikolon
![Page 53: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/53.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;}
type til returverdi(eller void hvis ingen type)
navn på funksjonentype og navn på
argumentene til funksjonen
deklarasjonav variabel
tilordning avvariabel
returverdi;må være av riktig type
Viktig å huske på:• skop• semikolon• klammeparenteser
![Page 54: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/54.jpg)
int multipliser(int x, int y) { int resultat; resultat = x * y; return resultat;}
type til returverdi(eller void hvis ingen type)
navn på funksjonentype og navn på
argumentene til funksjonen
deklarasjonav variabel
tilordning avvariabel
returverdi;må være av riktig type
Viktig å huske på:• skop• semikolon• klammeparenteser• kommentarer
![Page 55: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/55.jpg)
![Page 56: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/56.jpg)
Aritmetikk:
![Page 57: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/57.jpg)
Aritmetikk:int y;
![Page 58: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/58.jpg)
Aritmetikk:int y;y = 9 / 4; // y blir satt til 2
![Page 59: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/59.jpg)
Aritmetikk:int y;y = 9 / 4; // y blir satt til 2y = y + 3; // øker verdien til y med 3
![Page 60: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/60.jpg)
Aritmetikk:int y;y = 9 / 4; // y blir satt til 2y = y + 3; // øker verdien til y med 3y++; // samme som y = y + 1;
![Page 61: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/61.jpg)
Aritmetikk:int y;y = 9 / 4; // y blir satt til 2y = y + 3; // øker verdien til y med 3y++; // samme som y = y + 1;y /= 2; // samme som y = y / 2;
![Page 62: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/62.jpg)
Aritmetikk:int y;y = 9 / 4; // y blir satt til 2y = y + 3; // øker verdien til y med 3y++; // samme som y = y + 1;y /= 2; // samme som y = y / 2;
Sammenlikninger:
![Page 63: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/63.jpg)
Aritmetikk:int y;y = 9 / 4; // y blir satt til 2y = y + 3; // øker verdien til y med 3y++; // samme som y = y + 1;y /= 2; // samme som y = y / 2;
Sammenlikninger:x == y // x lik y
![Page 64: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/64.jpg)
Aritmetikk:int y;y = 9 / 4; // y blir satt til 2y = y + 3; // øker verdien til y med 3y++; // samme som y = y + 1;y /= 2; // samme som y = y / 2;
Sammenlikninger:x == y // x lik yx != y // x ulik y
![Page 65: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/65.jpg)
Aritmetikk:int y;y = 9 / 4; // y blir satt til 2y = y + 3; // øker verdien til y med 3y++; // samme som y = y + 1;y /= 2; // samme som y = y / 2;
Sammenlikninger:x == y // x lik yx != y // x ulik yx <= y // x mindre enn eller lik y
![Page 66: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/66.jpg)
Aritmetikk:int y;y = 9 / 4; // y blir satt til 2y = y + 3; // øker verdien til y med 3y++; // samme som y = y + 1;y /= 2; // samme som y = y / 2;
Sammenlikninger:x == y // x lik yx != y // x ulik yx <= y // x mindre enn eller lik y
Logiske operatorer:
![Page 67: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/67.jpg)
Aritmetikk:int y;y = 9 / 4; // y blir satt til 2y = y + 3; // øker verdien til y med 3y++; // samme som y = y + 1;y /= 2; // samme som y = y / 2;
Sammenlikninger:x == y // x lik yx != y // x ulik yx <= y // x mindre enn eller lik y
Logiske operatorer:x > 0 && x < 5 // OG - sann hvis begge er sanne
![Page 68: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/68.jpg)
Aritmetikk:int y;y = 9 / 4; // y blir satt til 2y = y + 3; // øker verdien til y med 3y++; // samme som y = y + 1;y /= 2; // samme som y = y / 2;
Sammenlikninger:x == y // x lik yx != y // x ulik yx <= y // x mindre enn eller lik y
Logiske operatorer:x > 0 && x < 5 // OG - sann hvis begge er sannex > 0 || x < 5 // ELLER - sann hvis en er sann
![Page 69: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/69.jpg)
Aritmetikk:int y;y = 9 / 4; // y blir satt til 2y = y + 3; // øker verdien til y med 3y++; // samme som y = y + 1;y /= 2; // samme som y = y / 2;
Sammenlikninger:x == y // x lik yx != y // x ulik yx <= y // x mindre enn eller lik y
Logiske operatorer:x > 0 && x < 5 // OG - sann hvis begge er sannex > 0 || x < 5 // ELLER - sann hvis en er sann!x < 0 // IKKE - sann hvis uttrykket er usant
![Page 70: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/70.jpg)
![Page 71: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/71.jpg)
if (x < 100){ // gjør A}
![Page 72: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/72.jpg)
if (x < 100){ // gjør A}
if (x < 100){ // gjør A}else{ // gjør B}
![Page 73: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/73.jpg)
![Page 74: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/74.jpg)
switch (x) {
![Page 75: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/75.jpg)
switch (x) { case 1:
![Page 76: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/76.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette
![Page 77: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/77.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break;
![Page 78: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/78.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2:
![Page 79: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/79.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2: // hvis x er lik 2, gjør dette
![Page 80: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/80.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2: // hvis x er lik 2, gjør dette break;
![Page 81: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/81.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2: // hvis x er lik 2, gjør dette break; default:
![Page 82: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/82.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2: // hvis x er lik 2, gjør dette break; default: // hvis ingen matcher, gjør følgende
![Page 83: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/83.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2: // hvis x er lik 2, gjør dette break; default: // hvis ingen matcher, gjør følgende // default er valgfritt
![Page 84: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/84.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2: // hvis x er lik 2, gjør dette break; default: // hvis ingen matcher, gjør følgende // default er valgfritt }
![Page 85: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/85.jpg)
![Page 86: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/86.jpg)
switch (x) {
![Page 87: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/87.jpg)
switch (x) { case 1:
![Page 88: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/88.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette
![Page 89: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/89.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break;
![Page 90: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/90.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2:
![Page 91: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/91.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2: // hvis x er lik 2, gjør dette
![Page 92: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/92.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2: // hvis x er lik 2, gjør dette break;
![Page 93: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/93.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2: // hvis x er lik 2, gjør dette break; default:
![Page 94: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/94.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2: // hvis x er lik 2, gjør dette break; default: // hvis ingen matcher, gjør følgende
![Page 95: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/95.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2: // hvis x er lik 2, gjør dette break; default: // hvis ingen matcher, gjør følgende // default er valgfritt
![Page 96: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/96.jpg)
switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2: // hvis x er lik 2, gjør dette break; default: // hvis ingen matcher, gjør følgende // default er valgfritt }
![Page 97: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/97.jpg)
![Page 98: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/98.jpg)
for (int x = 0; x < 100; x++) {Serial.println(x);}// skriver tallene fra 0 til 99
![Page 99: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/99.jpg)
for (int x = 0; x < 100; x++) {Serial.println(x);}// skriver tallene fra 0 til 99
deklarere variabel
![Page 100: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/100.jpg)
for (int x = 0; x < 100; x++) {Serial.println(x);}// skriver tallene fra 0 til 99
deklarere variabel
settstartverdi
![Page 101: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/101.jpg)
for (int x = 0; x < 100; x++) {Serial.println(x);}// skriver tallene fra 0 til 99
deklarere variabel
settstartverdi test
![Page 102: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/102.jpg)
for (int x = 0; x < 100; x++) {Serial.println(x);}// skriver tallene fra 0 til 99
deklarere variabel
settstartverdi test
endreverdi
![Page 103: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/103.jpg)
for (int x = 0; x < 100; x++) {Serial.println(x);}// skriver tallene fra 0 til 99
deklarere variabel
settstartverdi test
endreverdi
kropp
![Page 104: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/104.jpg)
DIGITALE INNDATA
![Page 105: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/105.jpg)
![Page 106: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/106.jpg)
• Arduinofunksjonen for å lese digital input heter digitalRead og forteller om spenningen på en pinne er HIGH (5 volt) eller LOW (0 volt).
![Page 107: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/107.jpg)
• Arduinofunksjonen for å lese digital input heter digitalRead og forteller om spenningen på en pinne er HIGH (5 volt) eller LOW (0 volt).
• Arduinofunksjonen for å fortelle at en pinne skal brukes til dette er pinMode(pin,INPUT).
![Page 108: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/108.jpg)
• Arduinofunksjonen for å lese digital input heter digitalRead og forteller om spenningen på en pinne er HIGH (5 volt) eller LOW (0 volt).
• Arduinofunksjonen for å fortelle at en pinne skal brukes til dette er pinMode(pin,INPUT).
• I utgangspunktet er alle konfigurert som inputpinner, men det er god praksis å sette dem allikevel.
![Page 109: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/109.jpg)
)LJXUH������'LJLWDO�DQG�DQDORJ�SLQV�RQ�D�VWDQGDUG�$UGXLQR�ERDUG
7KLV�FKDSWHU�FRYHUV�WKH�$UGXLQR�SLQV�WKDW�FDQ�VHQVH�GLJLWDO�DQG�DQDORJ�LQSXWV��'LJLWDOLQSXW�SLQV�VHQVH�WKH�SUHVHQFH�DQG�DEVHQFH�RI�YROWDJH�RQ�D�SLQ��$QDORJ�LQSXW�SLQV�PHDV�XUH�D�UDQJH�RI�YROWDJHV�RQ�D�SLQ�
7KH�$UGXLQR�IXQFWLRQ�WR�GHWHFW�GLJLWDO�LQSXW�LV�digitalRead�DQG�LW�WHOOV�\RXU�VNHWFK�LI�DYROWDJH�RQ�D�SLQ�LV�HIGH����YROWV��RU�LOW����YROWV���7KH�$UGXLQR�IXQFWLRQ�WR�FRQILJXUH�DSLQ�IRU�UHDGLQJ�LQSXW�LV�pinMode(pin, INPUT)�
2Q�D�W\SLFDO�ERDUG��WKHUH�DUH����GLJLWDO�SLQV��QXPEHUHG���WR�����DV�VKRZQ�DW�WKH�WRS�RI)LJXUH������3LQV���DQG����PDUNHG�5;�DQG�7;��DUH�XVHG�IRU�WKH�86%�VHULDO�FRQQHFWLRQDQG�VKRXOG�EH�DYRLGHG�IRU�RWKHU�XVHV��,I�\RX�QHHG�PRUH�GLJLWDO�SLQV�RQ�D�VWDQGDUG�ERDUG�\RX�FDQ�XVH�WKH�DQDORJ�SLQV�DV�GLJLWDO�SLQV��DQDORJ�SLQV���WKURXJK���FDQ�EH�XVHG�DVGLJLWDO�SLQV����WKURXJK�����
$UGXLQR� ���� LQWURGXFHG� ORJLFDO� QDPHV� IRU�PDQ\� RI� WKH� SLQV�� 7KH� FRQVWDQWV� LQ� 7D�EOH�����FDQ�EH�XVHG�LQ�DOO�IXQFWLRQV�WKDW�H[SHFW�D�SLQ�QXPEHU�
7DEOH������3LQ�FRQVWDQWV�LQWURGXFHG�LQ�$UGXLQR����
Constant Pin Number Constant Pin Number
A0 Analog input 0 (Digital 14) LED_BUILTIN On-board LED (Digital 13)
A1 Analog input 1 (Digital 15) SDA I2C Data (Digital 18)
A2 Analog input (Digital 16) SCL I2C Clock (Digital 19)
A3 Analog input (Digital 17) SS SPI Select (Digital 10)
A4 Analog input (Digital 18) MOSI SPI Input (Digital 11)
A5 Analog input (Digital 19) MISO SPI Output (Digital 12)
SCL SPI Clock (Digital 13)
148 | Chapter 5:ಗSimple Digital and Analog Input
![Page 110: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/110.jpg)
}}
)LJXUH������6ZLWFK�FRQQHFWHG�XVLQJ�SXOO�GRZQ�UHVLVWRU
6WDQGDUG�$UGXLQR�ERDUGV�KDYH�D�EXLOW�LQ�/('�FRQQHFWHG�WR�SLQ�����,I\RXU�ERDUG�GRHV�QRW��VHH�5HFLSH�����IRU�LQIRUPDWLRQ�RQ�FRQQHFWLQJ�DQ/('�WR�DQ�$UGXLQR�SLQ�
Discussion7KH�setup�IXQFWLRQ�FRQILJXUHV�WKH�/('�SLQ�DV�OUTPUT�DQG�WKH�VZLWFK�SLQ�DV�INPUT�
$�SLQ�PXVW�EH�VHW�WR�OUTPUT�PRGH�IRU�digitalWrite�WR�FRQWURO�WKH�SLQ¦VRXWSXW�YROWDJH��,W�PXVW�EH�LQ�INPUT�PRGH�WR�UHDG�WKH�GLJLWDO�LQSXW�
7KH�digitalRead�IXQFWLRQ�PRQLWRUV�WKH�YROWDJH�RQ�WKH�LQSXW�SLQ��inputPin���DQG�LW�UH�WXUQV�D�YDOXH�RI�HIGH�LI�WKH�YROWDJH�LV�KLJK����YROWV��DQG�LOW�LI�WKH�YROWDJH�LV�ORZ����YROWV��$FWXDOO\��DQ\�YROWDJH�WKDW�LV�JUHDWHU�WKDQ�����YROWV��KDOI�RI�WKH�YROWDJH�SRZHULQJ�WKHFKLS��LV�FRQVLGHUHG�HIGH�DQG�OHVV�WKDQ�WKLV�LV�WUHDWHG�DV�LOW��,I�WKH�SLQ�LV�OHIW�XQFRQQHFWHG
5.1 Using a Switch | 151
![Page 111: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/111.jpg)
�NQRZQ�DV�IORDWLQJ���WKH�YDOXH�UHWXUQHG�IURP�digitalRead�LV�LQGHWHUPLQDWH��LW�PD\�EHHIGH�RU�LOW��DQG�LW�FDQQRW�EH�UHOLDEO\�XVHG���7KH�UHVLVWRU�VKRZQ�LQ�)LJXUH�����HQVXUHVWKDW�WKH�YROWDJH�RQ�WKH�SLQ�ZLOO�EH�ORZ�ZKHQ�WKH�VZLWFK�LV�QRW�SUHVVHG��EHFDXVH�WKHUHVLVWRU�£SXOOV�GRZQ¤�WKH�YROWDJH�WR�JURXQG��:KHQ�WKH�VZLWFK�LV�SXVKHG��D�FRQQHFWLRQLV�PDGH�EHWZHHQ�WKH�SLQ�DQG����YROWV��VR�WKH�YDOXH�RQ�WKH�SLQ�LQWHUSUHWHG�E\�digitalRead�FKDQJHV�IURP�LOW�WR�HIGH�
'R�QRW�FRQQHFW�D�GLJLWDO�RU�DQDORJ�SLQ�WR�D�YROWDJH�KLJKHU�WKDQ���YROWV�RU�����YROWV�RQ�D����9�ERDUG���7KLV�FDQ�GDPDJH�WKH�SLQ�DQG�SRVVLEO\GHVWUR\�WKH�HQWLUH�FKLS��$OVR��PDNH�VXUH�\RX�GRQ¦W�ZLUH�WKH�VZLWFK�VRWKDW�LW�VKRUWV�WKH���YROWV�WR�JURXQG��ZLWKRXW�D�UHVLVWRU���$OWKRXJK�WKLVPD\�QRW�GDPDJH�WKH�$UGXLQR�FKLS��LW�LV�QRW�JRRG�IRU�WKH�SRZHU�VXSSO\�
,Q�WKLV�H[DPSOH��WKH�YDOXH�IURP�digitalRead�LV�VWRUHG�LQ�WKH�YDULDEOH�val��7KLV�ZLOO�EHHIGH�LI�WKH�EXWWRQ�LV�SUHVVHG��LOW�RWKHUZLVH�
7KH�VZLWFK�XVHG� LQ� WKLV�H[DPSOH��DQG�DOPRVW�HYHU\ZKHUH�HOVH� LQ� WKLVERRN��PDNHV�HOHFWULFDO�FRQWDFW�ZKHQ�SUHVVHG�DQG�EUHDNV�FRQWDFW�ZKHQQRW�SUHVVHG��7KHVH�VZLWFKHV�DUH�FDOOHG�1RUPDOO\�2SHQ��12���VHH�WKLVERRN¦V�ZHEVLWH�IRU�SDUW�QXPEHUV��7KH�RWKHU�NLQG�RI�PRPHQWDU\�VZLWFKLV�FDOOHG�1RUPDOO\�&ORVHG��1&��
7KH�RXWSXW�SLQ�FRQQHFWHG�WR�WKH�/('�LV�WXUQHG�RQ�ZKHQ�\RX�VHW�val�WR�HIGH��LOOXPLQDWLQJWKH�/('�
$OWKRXJK�$UGXLQR�VHWV�DOO�GLJLWDO�SLQV�DV�LQSXWV�E\�GHIDXOW��LW�LV�D�JRRG�SUDFWLFH�WR�VHWWKLV�H[SOLFLWO\�LQ�\RXU�VNHWFK�WR�UHPLQG�\RXUVHOI�DERXW�WKH�SLQV�\RX�DUH�XVLQJ�
<RX�PD\�VHH�VLPLODU�FRGH�WKDW�XVHV�true�LQVWHDG�RI�HIGH��WKHVH�FDQ�EH�XVHG�LQWHUFKDQJH�DEO\��WKH\�DUH�DOVR�VRPHWLPHV�UHSUHVHQWHG�DV�1���/LNHZLVH��false�LV�WKH�VDPH�DV�LOW�DQG0��8VH�WKH�IRUP�WKDW�EHVW�H[SUHVVHV�WKH�PHDQLQJ�RI�WKH�ORJLF�LQ�\RXU�DSSOLFDWLRQ�
$OPRVW�DQ\�VZLWFK�FDQ�EH�XVHG��DOWKRXJK�WKH�RQHV�FDOOHG�PRPHQWDU\�WDFWLOH�VZLWFKHV�DUHSRSXODU�EHFDXVH�WKH\�DUH�LQH[SHQVLYH�DQG�FDQ�SOXJ�GLUHFWO\�LQWR�D�EUHDGERDUG��6HH�WKHZHEVLWH�IRU�WKLV�ERRN�IRU�VRPH�VXSSOLHU�SDUW�QXPEHUV�
+HUH�LV�DQRWKHU�ZD\�WR�LPSOHPHQW�WKH�ORJLF�LQ�WKH�SUHFHGLQJ�VNHWFK�
void loop(){ digitalWrite(ledPin, digitalRead(inputPin)); // turn LED ON if input pin is // HIGH, else turn OFF}
7KLV�GRHVQ¦W�VWRUH�WKH�EXWWRQ�VWDWH�LQWR�D�YDULDEOH��,QVWHDG��LW�VHWV�WKH�/('�RQ�RU�RIIGLUHFWO\�IURP�WKH�YDOXH�REWDLQHG�IURP�digitalRead��,W�LV�D�KDQG\�VKRUWFXW��EXW�LI�\RXILQG�LW�RYHUO\�WHUVH��WKHUH�LV�QR�SUDFWLFDO�GLIIHUHQFH�LQ�SHUIRUPDQFH��VR�SLFN�ZKLFKHYHUIRUP�\RX�ILQG�HDVLHU�WR�XQGHUVWDQG�
152 | Chapter 5:ಗSimple Digital and Analog Input
![Page 112: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/112.jpg)
7KH�SXOO�XS�FRGH�LV�VLPLODU�WR�WKH�SXOO�GRZQ�YHUVLRQ��EXW�WKH�ORJLF�LV�UHYHUVHG��WKH�YDOXHRQ�WKH�SLQ�JRHV�LOW�ZKHQ�WKH�EXWWRQ�LV�SUHVVHG��VHH�)LJXUH�����IRU�D�VFKHPDWLF�GLDJUDPRI�WKLV���,W�PD\�KHOS�WR�WKLQN�RI�WKLV�DV�SUHVVLQJ�WKH�VZLWFK�DOWN��FDXVLQJ�WKH�RXWSXW�WRJR�LOW�
void loop(){ int val = digitalRead(inputPin); // read input value if (val == HIGH) // check if the input is HIGH { digitalWrite(ledPin, LOW); // turn LED OFF } else { digitalWrite(ledPin, HIGH); // turn LED ON }}
)LJXUH������6ZLWFK�FRQQHFWHG�XVLQJ�SXOO�XS�UHVLVWRU
See Also7KH�$UGXLQR�UHIHUHQFH�IRU�digitalRead��KWWS���DUGXLQR�FF�HQ�5HIHUHQFH�'LJLWDO5HDG
7KH�$UGXLQR�UHIHUHQFH�IRU�digitalWrite��KWWS���DUGXLQR�FF�HQ�5HIHUHQFH�'LJLWDO:ULWH
7KH�$UGXLQR�UHIHUHQFH�IRU�pinMode��KWWS���DUGXLQR�FF�HQ�5HIHUHQFH�3LQ0RGH
7KH�$UGXLQR�UHIHUHQFHV�IRU�FRQVWDQWV��HIGH��LOW��HWF����KWWS���DUGXLQR�FF�HQ�5HIHUHQFH�&RQVWDQWV
$UGXLQR�WXWRULDO�RQ�GLJLWDO�SLQV��KWWS���DUGXLQR�FF�HQ�7XWRULDO�'LJLWDO3LQV
5.1 Using a Switch | 153
![Page 113: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/113.jpg)
7KH�SXOO�XS�FRGH�LV�VLPLODU�WR�WKH�SXOO�GRZQ�YHUVLRQ��EXW�WKH�ORJLF�LV�UHYHUVHG��WKH�YDOXHRQ�WKH�SLQ�JRHV�LOW�ZKHQ�WKH�EXWWRQ�LV�SUHVVHG��VHH�)LJXUH�����IRU�D�VFKHPDWLF�GLDJUDPRI�WKLV���,W�PD\�KHOS�WR�WKLQN�RI�WKLV�DV�SUHVVLQJ�WKH�VZLWFK�DOWN��FDXVLQJ�WKH�RXWSXW�WRJR�LOW�
void loop(){ int val = digitalRead(inputPin); // read input value if (val == HIGH) // check if the input is HIGH { digitalWrite(ledPin, LOW); // turn LED OFF } else { digitalWrite(ledPin, HIGH); // turn LED ON }}
)LJXUH������6ZLWFK�FRQQHFWHG�XVLQJ�SXOO�XS�UHVLVWRU
See Also7KH�$UGXLQR�UHIHUHQFH�IRU�digitalRead��KWWS���DUGXLQR�FF�HQ�5HIHUHQFH�'LJLWDO5HDG
7KH�$UGXLQR�UHIHUHQFH�IRU�digitalWrite��KWWS���DUGXLQR�FF�HQ�5HIHUHQFH�'LJLWDO:ULWH
7KH�$UGXLQR�UHIHUHQFH�IRU�pinMode��KWWS���DUGXLQR�FF�HQ�5HIHUHQFH�3LQ0RGH
7KH�$UGXLQR�UHIHUHQFHV�IRU�FRQVWDQWV��HIGH��LOW��HWF����KWWS���DUGXLQR�FF�HQ�5HIHUHQFH�&RQVWDQWV
$UGXLQR�WXWRULDO�RQ�GLJLWDO�SLQV��KWWS���DUGXLQR�FF�HQ�7XWRULDO�'LJLWDO3LQV
5.1 Using a Switch | 153
![Page 114: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/114.jpg)
PÅLITELIG SJEKK AV BRYTERE
![Page 115: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/115.jpg)
PÅLITELIG SJEKK AV BRYTERE
• Når en bryter slås på hender det som regel at verdiene går mellom høy og lav mange ganger veldig fort.
![Page 116: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/116.jpg)
PÅLITELIG SJEKK AV BRYTERE
• Når en bryter slås på hender det som regel at verdiene går mellom høy og lav mange ganger veldig fort.
• Vi kan kompensere for dette i koden vår.
![Page 117: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/117.jpg)
PÅLITELIG SJEKK AV BRYTERE
• Når en bryter slås på hender det som regel at verdiene går mellom høy og lav mange ganger veldig fort.
• Vi kan kompensere for dette i koden vår.
• Dette kalles på engelsk for debouncing.
![Page 118: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/118.jpg)
![Page 119: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/119.jpg)
const int buttonPin = 2; // the number of the pushbutton pin
![Page 120: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/120.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
![Page 121: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/121.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pin
![Page 122: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/122.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pin
![Page 123: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/123.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
![Page 124: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/124.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggled
![Page 125: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/125.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
![Page 126: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/126.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() {
![Page 127: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/127.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT);
![Page 128: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/128.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);
![Page 129: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/129.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
![Page 130: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/130.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() {
![Page 131: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/131.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() { int reading = digitalRead(buttonPin);
![Page 132: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/132.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() { int reading = digitalRead(buttonPin);
if (reading != lastButtonState) {
![Page 133: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/133.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() { int reading = digitalRead(buttonPin);
if (reading != lastButtonState) { lastDebounceTime = millis();
![Page 134: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/134.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() { int reading = digitalRead(buttonPin);
if (reading != lastButtonState) { lastDebounceTime = millis(); }
![Page 135: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/135.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() { int reading = digitalRead(buttonPin);
if (reading != lastButtonState) { lastDebounceTime = millis(); }
![Page 136: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/136.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() { int reading = digitalRead(buttonPin);
if (reading != lastButtonState) { lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) {
![Page 137: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/137.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() { int reading = digitalRead(buttonPin);
if (reading != lastButtonState) { lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { buttonState = reading;
![Page 138: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/138.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() { int reading = digitalRead(buttonPin);
if (reading != lastButtonState) { lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { buttonState = reading; }
![Page 139: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/139.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() { int reading = digitalRead(buttonPin);
if (reading != lastButtonState) { lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { buttonState = reading; }
![Page 140: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/140.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() { int reading = digitalRead(buttonPin);
if (reading != lastButtonState) { lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { buttonState = reading; } digitalWrite(ledPin, buttonState);
![Page 141: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/141.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() { int reading = digitalRead(buttonPin);
if (reading != lastButtonState) { lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { buttonState = reading; } digitalWrite(ledPin, buttonState); lastButtonState = reading;
![Page 142: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/142.jpg)
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int ledState = HIGH; // the current state of the output pinint buttonState; // the current reading from the input pinint lastButtonState = LOW; // the previous reading from the input pin
long lastDebounceTime = 0; // the last time the output pin was toggledlong debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT);}
void loop() { int reading = digitalRead(buttonPin);
if (reading != lastButtonState) { lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { buttonState = reading; } digitalWrite(ledPin, buttonState); lastButtonState = reading;}
![Page 143: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/143.jpg)
ANALOG INNDATA
![Page 144: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/144.jpg)
ANALOG INPUT
![Page 145: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/145.jpg)
ANALOG INPUT
• Arduinofunksjonen for å lese analog input heter analogRead og forteller hvor høy spenningen er, fra 0 til 5 volt, ved å gi et tall mellom 0 og 1023.
![Page 146: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/146.jpg)
ANALOG INPUT
• Arduinofunksjonen for å lese analog input heter analogRead og forteller hvor høy spenningen er, fra 0 til 5 volt, ved å gi et tall mellom 0 og 1023.
• (Det er altså 10-bits analog-til-digital konvertering som skjer.)
![Page 147: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/147.jpg)
![Page 148: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/148.jpg)
![Page 149: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/149.jpg)
int sensorPin = A0; // select the input pin for the potentiometer
![Page 150: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/150.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LED
![Page 151: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/151.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
![Page 152: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/152.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() {
![Page 153: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/153.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT:
![Page 154: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/154.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT);
![Page 155: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/155.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
![Page 156: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/156.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
void loop() {
![Page 157: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/157.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
void loop() { // read the value from the sensor:
![Page 158: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/158.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin);
![Page 159: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/159.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); // turn the ledPin on
![Page 160: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/160.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); // turn the ledPin on digitalWrite(ledPin, HIGH);
![Page 161: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/161.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); // turn the ledPin on digitalWrite(ledPin, HIGH); // stop the program for <sensorValue> milliseconds:
![Page 162: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/162.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); // turn the ledPin on digitalWrite(ledPin, HIGH); // stop the program for <sensorValue> milliseconds: delay(sensorValue);
![Page 163: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/163.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); // turn the ledPin on digitalWrite(ledPin, HIGH); // stop the program for <sensorValue> milliseconds: delay(sensorValue); // turn the ledPin off:
![Page 164: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/164.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); // turn the ledPin on digitalWrite(ledPin, HIGH); // stop the program for <sensorValue> milliseconds: delay(sensorValue); // turn the ledPin off: digitalWrite(ledPin, LOW);
![Page 165: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/165.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); // turn the ledPin on digitalWrite(ledPin, HIGH); // stop the program for <sensorValue> milliseconds: delay(sensorValue); // turn the ledPin off: digitalWrite(ledPin, LOW); // stop the program for for <sensorValue> milliseconds:
![Page 166: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/166.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); // turn the ledPin on digitalWrite(ledPin, HIGH); // stop the program for <sensorValue> milliseconds: delay(sensorValue); // turn the ledPin off: digitalWrite(ledPin, LOW); // stop the program for for <sensorValue> milliseconds: delay(sensorValue);
![Page 167: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/167.jpg)
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint sensorValue = 0; // variable to store the value coming from the sensor
void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); }
void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); // turn the ledPin on digitalWrite(ledPin, HIGH); // stop the program for <sensorValue> milliseconds: delay(sensorValue); // turn the ledPin off: digitalWrite(ledPin, LOW); // stop the program for for <sensorValue> milliseconds: delay(sensorValue); }
![Page 168: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/168.jpg)
ENDRE REKKEVIDDEN
![Page 169: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/169.jpg)
ENDRE REKKEVIDDEN
• Hvis vi trenger verdier mellom 0 og 100 i stedet for mellom 0 og 1023 kan vi bruke funksjonen map.
![Page 170: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/170.jpg)
ENDRE REKKEVIDDEN
• Hvis vi trenger verdier mellom 0 og 100 i stedet for mellom 0 og 1023 kan vi bruke funksjonen map.
• map(verdi, fraLav, fraHøy, tilLav, tilHøy)
![Page 171: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/171.jpg)
ENDRE REKKEVIDDEN
• Hvis vi trenger verdier mellom 0 og 100 i stedet for mellom 0 og 1023 kan vi bruke funksjonen map.
• map(verdi, fraLav, fraHøy, tilLav, tilHøy)
• F.eks. vil map(verdi, 0, 1023, 0, 255) gjøre jobben.
![Page 172: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/172.jpg)
DIGITALE UTDATA
![Page 173: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/173.jpg)
DIGITAL UTDATA
![Page 174: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/174.jpg)
DIGITAL UTDATA
• Alle pinner kan også brukes som digitale ut-pinner.
![Page 175: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/175.jpg)
DIGITAL UTDATA
• Alle pinner kan også brukes som digitale ut-pinner.
• Da må de settes med pinMode(pin,OUTPUT).
![Page 176: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/176.jpg)
DIGITAL UTDATA
• Alle pinner kan også brukes som digitale ut-pinner.
• Da må de settes med pinMode(pin,OUTPUT).
• Deretter kan vi bruke digitalWrite(pin,OUTPUT), hvor OUTPUT er enten HIGH eller LOW.
![Page 177: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/177.jpg)
ANALOGE UTDATA
![Page 178: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/178.jpg)
ANALOGE UTSIGNALER
![Page 179: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/179.jpg)
ANALOGE UTSIGNALER
• Analog betyr her at vi skal kunne variere spenningen fra 0 til 5 volt.
![Page 180: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/180.jpg)
ANALOGE UTSIGNALER
• Analog betyr her at vi skal kunne variere spenningen fra 0 til 5 volt.
• Her kan vi bruke funksjonen analogWrite(pin,OUTPUT), hvor OUTPUT er et tall fra 0 til 255.
![Page 181: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/181.jpg)
ANALOGE UTSIGNALER
• Analog betyr her at vi skal kunne variere spenningen fra 0 til 5 volt.
• Her kan vi bruke funksjonen analogWrite(pin,OUTPUT), hvor OUTPUT er et tall fra 0 til 255.
• Dette kan kun gjøres på pinner 3, 5, 6, 9, 10 og 11.
![Page 182: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/182.jpg)
ANALOGE UTSIGNALER
• Analog betyr her at vi skal kunne variere spenningen fra 0 til 5 volt.
• Her kan vi bruke funksjonen analogWrite(pin,OUTPUT), hvor OUTPUT er et tall fra 0 til 255.
• Dette kan kun gjøres på pinner 3, 5, 6, 9, 10 og 11.
• Metoden som ligger under kalles pulsbreddemodulasjon.
![Page 183: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/183.jpg)
PULSBREDDEMODULASJON
![Page 184: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/184.jpg)
PULSBREDDEMODULASJON
• Pulse Width Modulation (PWM)
![Page 185: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/185.jpg)
PULSBREDDEMODULASJON
• Pulse Width Modulation (PWM)
• Ved å slå av og på strøm veldig raskt, klarer Arduinokortet å simulere en spenning mellom 0 og 5 volt.
![Page 186: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/186.jpg)
PULSBREDDEMODULASJON
• Pulse Width Modulation (PWM)
• Ved å slå av og på strøm veldig raskt, klarer Arduinokortet å simulere en spenning mellom 0 og 5 volt.
• Frekvensen er ca. 500 Hz.
![Page 187: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/187.jpg)
3:0�ZRUNV�E\�YDU\LQJ�WKH�SURSRUWLRQ�RI�WKH�SXOVHV¦�RQ�WLPH�WR�RII�WLPH��DV�VKRZQ�LQ)LJXUH������/RZ�OHYHO�RXWSXW�LV�HPXODWHG�E\�SURGXFLQJ�SXOVHV�WKDW�DUH�RQ�IRU�RQO\�DVKRUW�SHULRG�RI�WLPH��+LJKHU�OHYHO�RXWSXW�LV�HPXODWHG�ZLWK�SXOVHV�WKDW�DUH�RQ�PRUH�WKDQWKH\�DUH�RII��:KHQ�WKH�SXOVHV�DUH�UHSHDWHG�TXLFNO\�HQRXJK��DOPRVW�����WLPHV�SHU�VHFRQGRQ�$UGXLQR���WKH�SXOVLQJ�FDQQRW�EH�GHWHFWHG�E\�KXPDQ�VHQVHV��DQG�WKH�RXWSXW�IURPWKLQJV�VXFK�DV�/('V�ORRNV�OLNH�LW�LV�EHLQJ�VPRRWKO\�YDULHG�DV�WKH�SXOVH�UDWH�LV�FKDQJHG�
)LJXUH������3:0�RXWSXW�IRU�YDULRXV�DQDORJ:ULWH�YDOXHV
$UGXLQR�KDV�D�OLPLWHG�QXPEHU�RI�SLQV�WKDW�FDQ�EH�XVHG�IRU�DQDORJ�RXWSXW��2Q�D�VWDQGDUGERDUG��\RX�FDQ�XVH�SLQV�����������������DQG�����2Q�WKH�$UGXLQR�0HJD�ERDUG��\RX�FDQXVH�SLQV���WKURXJK����IRU�DQDORJ�RXWSXW��0DQ\�RI�WKH�UHFLSHV�WKDW�IROORZ�XVH�SLQV�WKDWFDQ�EH�XVHG�IRU�ERWK�GLJLWDO�DQG�DQDORJ�WR�PLQLPL]H�UHZLULQJ�LI�\RX�ZDQW�WR�WU\�RXWGLIIHUHQW�UHFLSHV��,I�\RX�ZDQW�WR�VHOHFW�GLIIHUHQW�SLQV�IRU�DQDORJ�RXWSXW��UHPHPEHU�WRFKRRVH�RQH�RI�WKH�VXSSRUWHG�analogWrite�SLQV��RWKHU�SLQV�ZLOO�QRW�JLYH�DQ\�RXWSXW��
Controlling Light&RQWUROOLQJ�OLJKW�XVLQJ�GLJLWDO�RU�DQDORJ�RXWSXW�LV�D�YHUVDWLOH��HIIHFWLYH��DQG�ZLGHO\�XVHGPHWKRG�IRU�SURYLGLQJ�XVHU�LQWHUDFWLRQ��6LQJOH�/('V��DUUD\V��DQG�QXPHULF�GLVSOD\V�DUH
242 | Chapter 7:ಗVisual Output
![Page 188: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/188.jpg)
LITT OM LYSDIODER
![Page 189: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/189.jpg)
LYSDIODER
![Page 190: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/190.jpg)
LYSDIODER• En LED er en diode som kun slipper strøm gjennom i én
retning.
![Page 191: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/191.jpg)
LYSDIODER• En LED er en diode som kun slipper strøm gjennom i én
retning.
• Den har to ben, anode (vanligvis litt lenger) og katode, og når spenningen fra anode til katode er høy nok, så slippes strøm gjennom og den lyser.
![Page 192: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/192.jpg)
LYSDIODER• En LED er en diode som kun slipper strøm gjennom i én
retning.
• Den har to ben, anode (vanligvis litt lenger) og katode, og når spenningen fra anode til katode er høy nok, så slippes strøm gjennom og den lyser.
• Spenningen som skal til for at den lyser (forward voltage) er vanligvis på 1,8 volt.
![Page 193: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/193.jpg)
LYSDIODER + MOTSTANDER
![Page 194: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/194.jpg)
LYSDIODER + MOTSTANDER
• Strømmen gjennom en lysdiode må begrenses med en motstand.
![Page 195: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/195.jpg)
LYSDIODER + MOTSTANDER
• Strømmen gjennom en lysdiode må begrenses med en motstand.
• Hver Arduinopinne kan gi opp til 40 mA.
![Page 196: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/196.jpg)
LYSDIODER + MOTSTANDER
• Strømmen gjennom en lysdiode må begrenses med en motstand.
• Hver Arduinopinne kan gi opp til 40 mA.
• En lysdiode trenger typisk 20 mA for å lyse.
![Page 197: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/197.jpg)
7KH�GDWD�VKHHW�UHIHUV�WR����P$�DV�WKH�DEVROXWH�PD[LPXP�UDWLQJ�DQGVRPH�HQJLQHHUV�PD\�EH�KHVLWDQW�WR�RSHUDWH�DQ\ZKHUH�QHDU�WKLV�YDOXH�+RZHYHU��WKH����P$�ILJXUH�LV�DOUHDG\�GH�UDWHG�E\�$WPHO�DQG�WKH\�VD\WKH�SLQV�FDQ�VDIHO\�KDQGOH�WKLV�FXUUHQW��5HFLSHV�WKDW�IROORZ�UHIHU�WR�WKH���P$�PD[LPXP�UDWLQJ��KRZHYHU��LI�\RX�DUH�EXLOGLQJ�DQ\WKLQJ�ZKHUHUHOLDELOLW\� LV� LPSRUWDQW��GH�UDWLQJ� WKLV� WR����P$�WR�SURYLGH�DQ�DGGHGFRPIRUW�PDUJLQ�LV�SUXGHQW�
7.1 Connecting and Using LEDsProblem<RX�ZDQW�WR�FRQWURO�RQH�RU�PRUH�/('V�DQG�VHOHFW�WKH�FRUUHFW�FXUUHQW�OLPLWLQJ�UHVLVWRUVR�WKDW�\RX�GR�QRW�GDPDJH�WKH�/('V�
Solution7XUQLQJ�DQ�/('�RQ�DQG�RII� LV�HDV\�WR�GR�ZLWK�$UGXLQR��DQG�VRPH�RI�WKH�UHFLSHV� LQSUHYLRXV�FKDSWHUV�KDYH� LQFOXGHG�WKLV�FDSDELOLW\� �VHH�5HFLSH����� IRU�DQ�H[DPSOH�WKDWFRQWUROV�WKH�EXLOW�LQ�/('�RQ�SLQ������7KH�UHFLSH�KHUH�SURYLGHV�JXLGDQFH�RQ�FKRRVLQJDQG�XVLQJ�H[WHUQDO�/('V��)LJXUH�����VKRZV�WKH�ZLULQJ�IRU�WKUHH�/('V��EXW�\RX�FDQ�UXQWKLV�VNHWFK�ZLWK�MXVW�RQH�RU�WZR�
)LJXUH������&RQQHFWLQJ�H[WHUQDO�/('V
7KH�VFKHPDWLF�V\PERO�IRU�WKH�FDWKRGH��WKH�QHJDWLYH�SLQ��LV�N��QRW�F��7KHVFKHPDWLF�V\PERO�F�LV�XVHG�IRU�D�FDSDFLWRU�
7.1 Connecting and Using LEDs | 245
![Page 198: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/198.jpg)
FRITZING
![Page 199: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/199.jpg)
FRITZING
![Page 200: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/200.jpg)
FRITZING• Dette er programvare for å dokumentere prosjekter og lage
design av kretskort.
![Page 201: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/201.jpg)
FRITZING• Dette er programvare for å dokumentere prosjekter og lage
design av kretskort.
• Det forenkler prosessen fra prototype til endelig design.
![Page 202: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/202.jpg)
FRITZING• Dette er programvare for å dokumentere prosjekter og lage
design av kretskort.
• Det forenkler prosessen fra prototype til endelig design.
• Også åpen kildekode og i samme familie som Processing og Arduino.
![Page 203: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/203.jpg)
FRITZING• Dette er programvare for å dokumentere prosjekter og lage
design av kretskort.
• Det forenkler prosessen fra prototype til endelig design.
• Også åpen kildekode og i samme familie som Processing og Arduino.
• Se http://fritzing.org/ for mer informasjon!
![Page 204: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/204.jpg)
AREF
GND
RESET
3V3
PWM
PWM
PWM
L
TXRX
USB
EXTPWRSEL
PWR
ICSP
PWM
PWM
PWM TX
RX
312111019 8DIGITAL
7 6 5 4 3 2 1 0
1
5V GndPOWER
www.arduino.cc
ANALOG IN9V 0 1 2 3 4 5
Arduino
![Page 205: 2012 01 30 Arduino Forelesning](https://reader035.fdocuments.us/reader035/viewer/2022062404/552a840c4a79599f6d8b464e/html5/thumbnails/205.jpg)