Digitale inn- og utganger

Innleding

I dette kapittelet skal vi sette el-læren fra forrige kapittel inn i Arduino-sammenhengen. Vi skal gå gjennom hvordan digitale inn- og utganger kan brukes for å få Arduino til å kommunisere med verden utenfor datamaskinen.

Hva er digitalt?

Ordet "digitalt" kommer fra det latinske ordet "digitus", som betyr finger. Opphavet er sannsynligvis at vi regnet på fingrene (jamfør med det engelske ordet "digit", som betyr siffer). I denne sammenhengen sikter nok digitalt til noe som enten er ett eller null (dvs. datamaskinens måte å regne på).

Et eksempel på hvordan ettall og nuller brukes i Arduino-sammenheng, er styringen av lysdioden i Arduino IDE. Der brukte vi funksjonen digitalWrite til å veksle mellom høy og lav spenning på GPIO-pinne 13 (som fikk den tilkoblede lysdioden til å lyse). Høy og lav spenning er kanskje litt misvisende termer i dette eksempelet, fordi det antyder at det skulle finnes en mellomting. "På" og "av" hadde egentlig vært mer beskrivende. HIGH/på er rett og slett spenningen som mikrokontrolleren er laget for (i vårt tilfelle 5 V). LOW/av er ingen spenning i det hele tatt (0 V).

I blinkeskissen brukes HIGH og LOW til å styre lysdioden. Vi kunne like gjerne ha brukt 1 og 0 i stedet. Resultatet av skissen nedenfor er altså nøyaktig det samme.

Brytere

En bryter er en liten komponent som vanligvis har to eller fire ben. Den fungerer som en omveksler mellom 1 og 0. Den kan for eksempel brukes til å få en krets til å bli sluttet, slik at en lysdiode tennes når noen trykker på bryteren. Den kan også brukes til det motsatte, slik at en lysdiode slukkes når noen trykker på bryteren.

Ved å koble bryteren i en krets til en av GPIO-pinnene på utviklingskortet, kan Arduinoen reagere på at noen trykker på knappen (eller slipper opp knappen). Bruk av digitale innganger viser vi hvordan dette kan brukes.

NO og NC

Det er to måter å koble kretser med en bryter på: NO og NC. NO er en forkortelse for Normally Open, og betyr at kretsen er åpen (brutt) i normaltilstanden, slik at det ikke går strøm gjennom den. Strømmen begynner først å gå når bryteren lukkes (knappen trykkes ned), slik at kretsen sluttes. 

html_image

En NO-krets sluttes når bryteren lukkes.

NC er en forkortelse for Normally Closed og er motsetningen til NO. En NC-krets er sluttet i normaltilstanden, slik at det går strøm gjennom den til bryteren åpnes (kretsen brytes).

html_image

En NC-krets brytes når bryteren åpnes.

Brytere som har to ben, er enten av typen NO eller NC. Brytere som har flere ben, kan i enkelte tilfeller (ikke alltid) kobles på begge måter. Hvilken kobling som skal brukes, avhenger av sammenhengen. Trykknappen på en ringeklokke bør eksempelvis alltid være NO-koblet, slik at den ringer når noen trykker på knappen. Hvis knappen på en ringeklokke hadde vært NC-koblet, så hadde den ringt konstant, unntatt når noen trykket på knappen. Ved kablet tilkobling av en alarmdetektor til et alarmsystem brukes derimot alltid NC-kobling. Det forhindrer at innbruddstyver kan klippe av kabelen uten av alarmsystemet reagerer.

NO-brytere brukes ofte til å trigge en Arduino til å gjøre noe. Det betyr at en slik bryter slutter en krets når den trykkes ned. Hvis bryteren er fjærbelastet, går den tilbake til opprinnelig tilstand når den ikke holdes nede lenger. Det innebærer at kretsen bare er sluttet så lenge bryteren holdes nede.

html_image

Brytere med fire ben6

 

Bryterne som følger med i den tilhørende komponentpakken, er fjærbelastede NO-brytere. De har totalt fire ben. Benene som monteres på samme radnummer på et koblingsbrett, leder alltid strøm til hverandre. Benene som monteres på ulike radnumre på et koblingsbrett, leder derimot bare strøm til hverandre når bryteren påvirkes.

html_image

Bryteren upåvirket (venstre) og påvirket (høyre).7

 

Digital output

Vi har allerede sett hvordan en Arduino kan bruke GPIO-pinnene som digitale utganger da vi tente lysdioden på GPIO-pinne 13. Vi gjorde det ved først og fremst å bestemme at GPIO-pinne 13 skulle være en utgang og deretter sette spenningen til HIGH.

Siden utviklingskortet har flere digitale GPIO-pinner, kan vi koble en lysdiode til respektive GPIO-pinner og styre dem individuelt. Det er imidlertid bare GPIO-pinne 13 som har en tilhørende lysdiode forhåndsmontert på utviklingskortet.

Digital input

GPIO-pinnene kan også brukes som innganger. Det er nyttig hvis vi vil at Arduinoen skal reagere når noen trykker på en bryter (eller tolke verdiene fra en sensor). Koden som er nødvendig for å få dette til, er ganske lik den forrige koden. I stedet for å sette GPIO-pinne 13 til å være utgang kan vi angi den som inngang med følgende kode:

Del 1/2 av ReadDigitalPin.ino

Deretter kan vi lese status på inngangen med følgende kode:

Del 2/2 av ReadDigitalPin.ino

Merk at koden som står her, ikke gjør noe. I Bruk av digitale innganger viser vi hvordan du kan få noe vettug ut av informasjonen.

Sist endret: 19.01.2017
InnledingHva er digitalt?BrytereNO og NCDigital outputDigital input
Bli medlem i dagBenytt deg av våre fantastiske tilbud!

Som medlem får du:

  • Eksklusive medlemstilbud
  • Poeng på alt du handler
  • Se kjøpene dine på kjell.com
  • Personlige tilbud
Som medlem av Kjell & Company får du kjøpt utvalgte forbruksvarer til ekstra gode priser. Du kan også samle poeng og motta bonussjekker og benytte deg av unike medlemstilbud.Les mer
Alltid trygt å handle hos Kjell
Fri frakt

Vi betaler frakten når du handler for mer enn 499,-

Fri retur

Fri retur i alle butikkene våre.

Rask levering

2–4 virkedagers leveringstid.

Hent i butikk

Reserver produktet online og hent det i butikk samme dag.

Medlem av

Medlem av Trygg E-Handel

Du betaler enkelt med

Få bestillingen din levert med

Du kan handle fra både

Det ser ut som du bruker en gammel nettleser. Det kan gjøre at ikke alt fungerer eller ser ut som det skal.