2012 01 30 arduino forelesning

205
ARDUINO PROGRAMMERING DIGITALE/ANALOGE INNDATA/UTDATA LYSDIODER FRITZING Roger Antonsen INF1510 30. januar 2012 FOR EKSPERIMENTELL INFORMATIKK FOR EKSPERIMENTELL INFORMATIKK ÅPEN SONE ÅPEN SONE STUDIELABEN

Upload: andre-reis

Post on 12-Apr-2015

30 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: 2012 01 30 Arduino Forelesning

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

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

PROGRAMMERING I ARDUINO

Page 4: 2012 01 30 Arduino Forelesning
Page 5: 2012 01 30 Arduino Forelesning

• pinMode(pin, Mode) pin angir pinnen og Mode er INPUT eller OUTPUT

Page 6: 2012 01 30 Arduino Forelesning

• 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

• 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

• 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

• 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
Page 11: 2012 01 30 Arduino Forelesning

• Variable brukes til å lagre data.

Page 12: 2012 01 30 Arduino Forelesning

• Variable brukes til å lagre data.

• Noen viktige begreper er følgende.

Page 13: 2012 01 30 Arduino Forelesning

• 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

• 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

• 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
Page 17: 2012 01 30 Arduino Forelesning

• 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

• 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

• 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

• 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

• 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
Page 23: 2012 01 30 Arduino Forelesning

• byte: 8-bits verdi mellom 0 og 255byte x = 130;byte x = B10000010; // samme resultat

Page 24: 2012 01 30 Arduino Forelesning

• 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

• 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

• 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
Page 28: 2012 01 30 Arduino Forelesning

• array: en samling av indekserte variabledeklarasjon (og tilordning):

Page 29: 2012 01 30 Arduino Forelesning

• array: en samling av indekserte variabledeklarasjon (og tilordning):int mittArray[6]; // kun deklarasjon

Page 30: 2012 01 30 Arduino Forelesning

• 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

• 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

• 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

• 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

• 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

• 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

• 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

• 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
Page 39: 2012 01 30 Arduino Forelesning

int multipliser(int x, int y) {

Page 40: 2012 01 30 Arduino Forelesning

int multipliser(int x, int y) {  int resultat;

Page 41: 2012 01 30 Arduino Forelesning

int multipliser(int x, int y) {  int resultat; resultat = x * y;

Page 42: 2012 01 30 Arduino Forelesning

int multipliser(int x, int y) {  int resultat; resultat = x * y; return resultat;

Page 43: 2012 01 30 Arduino Forelesning

int multipliser(int x, int y) {  int resultat; resultat = x * y; return resultat;}

Page 44: 2012 01 30 Arduino Forelesning

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

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

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

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

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

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

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

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

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

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

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
Page 56: 2012 01 30 Arduino Forelesning

Aritmetikk:

Page 57: 2012 01 30 Arduino Forelesning

Aritmetikk:int y;

Page 58: 2012 01 30 Arduino Forelesning

Aritmetikk:int y;y = 9 / 4; // y blir satt til 2

Page 59: 2012 01 30 Arduino Forelesning

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

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

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

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

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

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

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

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

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

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

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
Page 71: 2012 01 30 Arduino Forelesning

if (x < 100){ // gjør A}

Page 72: 2012 01 30 Arduino Forelesning

if (x < 100){ // gjør A}

if (x < 100){ // gjør A}else{ // gjør B}

Page 73: 2012 01 30 Arduino Forelesning
Page 74: 2012 01 30 Arduino Forelesning

switch (x) {

Page 75: 2012 01 30 Arduino Forelesning

switch (x) { case 1:

Page 76: 2012 01 30 Arduino Forelesning

switch (x) { case 1: // hvis x er lik 1, gjør dette

Page 77: 2012 01 30 Arduino Forelesning

switch (x) { case 1: // hvis x er lik 1, gjør dette break;

Page 78: 2012 01 30 Arduino Forelesning

switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2:

Page 79: 2012 01 30 Arduino Forelesning

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

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

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

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

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

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
Page 86: 2012 01 30 Arduino Forelesning

switch (x) {

Page 87: 2012 01 30 Arduino Forelesning

switch (x) { case 1:

Page 88: 2012 01 30 Arduino Forelesning

switch (x) { case 1: // hvis x er lik 1, gjør dette

Page 89: 2012 01 30 Arduino Forelesning

switch (x) { case 1: // hvis x er lik 1, gjør dette break;

Page 90: 2012 01 30 Arduino Forelesning

switch (x) { case 1: // hvis x er lik 1, gjør dette break; case 2:

Page 91: 2012 01 30 Arduino Forelesning

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

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

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

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

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

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
Page 98: 2012 01 30 Arduino Forelesning

for (int x = 0; x < 100; x++) {Serial.println(x);}// skriver tallene fra 0 til 99

Page 99: 2012 01 30 Arduino Forelesning

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

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

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

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

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

DIGITALE INNDATA

Page 105: 2012 01 30 Arduino Forelesning
Page 106: 2012 01 30 Arduino Forelesning

• 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

• 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

• 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

)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

}}

)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

�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

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

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

PÅLITELIG SJEKK AV BRYTERE

Page 115: 2012 01 30 Arduino Forelesning

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

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

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
Page 119: 2012 01 30 Arduino Forelesning

const int buttonPin = 2;     // the number of the pushbutton pin

Page 120: 2012 01 30 Arduino Forelesning

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ANALOG INNDATA

Page 144: 2012 01 30 Arduino Forelesning

ANALOG INPUT

Page 145: 2012 01 30 Arduino Forelesning

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

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
Page 148: 2012 01 30 Arduino Forelesning
Page 149: 2012 01 30 Arduino Forelesning

int sensorPin = A0;    // select the input pin for the potentiometer

Page 150: 2012 01 30 Arduino Forelesning

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENDRE REKKEVIDDEN

Page 169: 2012 01 30 Arduino Forelesning

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

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

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

DIGITALE UTDATA

Page 173: 2012 01 30 Arduino Forelesning

DIGITAL UTDATA

Page 174: 2012 01 30 Arduino Forelesning

DIGITAL UTDATA

• Alle pinner kan også brukes som digitale ut-pinner.

Page 175: 2012 01 30 Arduino Forelesning

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

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

ANALOGE UTDATA

Page 178: 2012 01 30 Arduino Forelesning

ANALOGE UTSIGNALER

Page 179: 2012 01 30 Arduino Forelesning

ANALOGE UTSIGNALER

• Analog betyr her at vi skal kunne variere spenningen fra 0 til 5 volt.

Page 180: 2012 01 30 Arduino Forelesning

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

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

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

PULSBREDDEMODULASJON

Page 184: 2012 01 30 Arduino Forelesning

PULSBREDDEMODULASJON

• Pulse Width Modulation (PWM)

Page 185: 2012 01 30 Arduino Forelesning

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

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

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

LITT OM LYSDIODER

Page 189: 2012 01 30 Arduino Forelesning

LYSDIODER

Page 190: 2012 01 30 Arduino Forelesning

LYSDIODER• En LED er en diode som kun slipper strøm gjennom i én

retning.

Page 191: 2012 01 30 Arduino Forelesning

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

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

LYSDIODER + MOTSTANDER

Page 194: 2012 01 30 Arduino Forelesning

LYSDIODER + MOTSTANDER

• Strømmen gjennom en lysdiode må begrenses med en motstand.

Page 195: 2012 01 30 Arduino Forelesning

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

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

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

FRITZING

Page 199: 2012 01 30 Arduino Forelesning

FRITZING

Page 200: 2012 01 30 Arduino Forelesning

FRITZING• Dette er programvare for å dokumentere prosjekter og lage

design av kretskort.

Page 201: 2012 01 30 Arduino Forelesning

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

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

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

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