Bruk av digitale innganger

Innleding

I dette kapittelet skal vi fÄ datamaskinen vÄr til Ä reagere nÄr noen trykker pÄ en knapp. Ved hjelp av Seriell overvÄker skal vi se om knappen er trykket ned eller ikke.

Kobling

For Ä kunne koble en NO-bryter til utviklingskortet vÄrt trenger vi et koblingsbrett. Vi begynner derfor med Ä koble Arduinoen fra datamaskinen og finne frem koblingskabler.

Det fÞrste vi mÄ gjÞre er Ä gi spenning til koblingsbrettet. Vi kobler derfor en kabel fra 5 V pÄ utviklingskortet til pluss pÄ koblingsbrettet og en kabel fra GND (jord) pÄ utviklingskortet til minus pÄ koblingsbrettet. Vi bruker en rÞd kabel for pluss og en svart kabel for minus, siden dette er den standardiserte fargekoden.

html_image

Illustrasjon laget med komponenter fra Fritzing (fritzing.org). CC BY-SA 3.0

Deretter kobler vi en kort rÞd kabel mellom plusspolen og en valgfri bane pÄ koblingsbrettet. Vi velger bane 3 (koblingshull A3). SÄ plasserer vi bryteren slik at den ligger mellom bane 3 og 5. NÄr noen trykker pÄ knappen, vil altsÄ bane 3 og 5 bli sammenkoblet. Etter dette kobler vi en motstand (resistor) pÄ 10 kΩ mellom bane 5 og minuspolen. Det er motstanden som er fargekodet pÄ en av fÞlgende mÄter:

  • brun, svart, oransje, brun
  • brun, svart, svart, rĂžd, brun.

html_image

Motstandene som skal brukes, har ingen av disse fargekodene.

Hvorfor motstanden er nÞdvendig forklarer vi nÊrmere i Motstander og potensiometre, men i korte trekk er det fordi utviklingskortet ellers vil kortslutte nÄr knappen trykkes ned. Det spiller ingen rolle hvilket hull vi plasserer motstanden i.

Til slutt kobler vi en kabel mellom bane 5 pÄ koblingsbrettet og GPIO-pinne 2 pÄ utviklingskortet. Vi kunne ha brukt nesten hvilken som helst annen GPIO-pinne, men pinne 2 er den fÞrste egnede (regnet nedenfra). GPIO-pinne 0 og 1 blir nemlig brukt av den serielle datakommunikasjonen som vi skal bruke til Ä fÄ Arduinoen til Ä sende tekst til datamaskinen.

Tips! Bena pÄ mange av komponentene er unÞdig lange. Det gÄr helt fint Ä korte ned bena pÄ dem. Det vil ogsÄ forhindre at koblingen kortsluttes pÄ grunn av feil. Komponentenes ben skal aldri vÊre borti hverandre.

Skisser

NÄ kan vi begynne Ä skrive skissen som skal gjÞre at noe skjer nÄr knappen trykkes ned. Vi begynner med Ä lage en ny skisse og navngi den SwitchTrigger. Deretter skriver vi setup-funksjonen der GPIO-pinne 2 angis som inngang. Vi lÄner ogsÄ instruksjonen fra Hello world!, som gjÞr at Arduinoen Äpner en seriell kommunikasjon med datamaskinen vÄr.

Del 1/2 av SwitchTrigger.ino

Med loop-funksjonen vil vi fortlÞpende undersÞke om knappen er trykket ned eller ikke, og fÄ det skrevet i Seriell overvÄker. For ikke Ä bli overÞst med data i Seriell overvÄker legger vi inn en forsinkelse pÄ et tiendedels sekund (100 ms).

Del 2/2 av SwitchTrigger.ino

Legg merke til at det ikke er anfÞrselstegn rundt digitalRead(2) slik som rundt Hello world! (i  Hello world!). Det er fordi vi vil skrive ut verdien som digitalRead(2) gir oss, og ikke teksten "digitalRead(2)".

NÄr koden er klar, kobler vi utviklingskortet til datamaskinen og klikker pÄ Last opp for Ä fÄ skissen verifisert, kompilert og lastet opp. Hvis vi Äpner Seriell overvÄker, ser vi at Arduinoen skriver 0 sÄ lenge vi ikke trykker ned knappen, men bytter til 1 nÄr vi trykker den ned.

html_image

Status for knappen skrives ut i Seriell overvÄker.
Sist endret: 18.01.2017