Digitala in- och utgångar

Digitala in- och utgångar

I detta kapitel ska vi sätta elläran från föregående kapitel i Arduino-sammanhang. Vi kommer att gå igenom hur digitala in- och utgångar kan användas för att få vår Arduino att kommunicera med världen utanför datorn.

Vad är digitalt?

Ordet digitalt kommer ursprungligen från det latinska ordet digitus, vilket betyder finger. Ursprunget är troligtvis att vi räknade på fingrarna (jämför med engelskans digit som betyder siffra). I de här sammanhangen syftar dock digitalt på något som antingen är ett eller noll (d.v.s. datorns sätt att räkna). 

Ett exempel på hur ettor och nollor används i Arduino-sammanhang är styrningen av lysdioden i Arduino IDE. Där använde vi funktionen digitalWrite för att växla mellan hög och låg spänning på GPIO-stift 13 (som fick den inkopplade lysdioden att lysa). Hög och låg spänning är möjligtvis lite missvisande termer i detta exempel, eftersom det antyder att det skulle finnas något däremellan också. "På" och "av" hade egentligen varit mer beskrivande. HIGH/på är kort och gott spänningen som mikrokontrollern är gjord för (i vårt fall 5 V). LOW/av är ingen spänning alls (0 V).

I blinksketchen användes HIGH och LOW för att styra lysdioden. Vi hade lika gärna kunnat använda 1 och 0 i stället. Resultatet av sketchen nedan är alltså exakt detsamma.

Brytare

En brytare är en liten komponent som vanligtvis har två eller fyra ben. Den fungerar som en omväxlare mellan 1 och 0. Den kan exempelvis användas för att få en krets att slutas, så att en lysdiod tänds när någon trycker på brytaren. Den kan också användas för raka motsatsen, så att en lysdiod släcks när någon trycker på brytaren. 

Genom att koppla brytaren i en krets till ett av GPIO-stiften på utvecklingskortet kan Arduinon reagera på att någon trycker på knappen (eller släpper upp knappen). Hur detta kan användas visar vi i Användning av digitala ingångar.

NO och NC

Det finns två sätt att koppla kretsar med en brytare: NO och NC. NO är en förkortning för Normally Open och betyder att kretsen är öppen (bruten) i normalläget så att det inte går någon ström genom den. Strömmen börjar först gå när brytaren påverkas (knappen trycks ned) så att kretsen sluts. 

En NO-krets sluts när brytaren påverkas.

NC är en förkortning för Normally Closed och är kort och gott motsatsen till NO. En NC-krets är sluten i normalläget så att det går en ström genom den fram till dess att brytaren påverkas. 

En NC-krets bryts när brytaren påverkas.

Brytare som har två ben är antingen av NO- eller av NC-typ. Brytare som har fler ben kan ibland (inte alltid) kopplas på båda sätten. Vilken koppling som ska användas beror på sammanhanget. Tryckknappen till en ringklocka bör exempelvis alltid vara NO-kopplad, så att den plingar när någon trycker på knappen. Hade en ringklockas knapp NC-kopplats hade ringklockan ringt konstant förutom just när någon trycker på knappen. Vid trådbunden inkoppling av en larmdetektor till ett larmsystem används däremot alltid NC-koppling. Det förhindrar att inbrottstjuvar kan klippa av kabeln utan att larmsystemet reagerar. 

NO-brytare används ofta för att trigga en Arduino till att göra något. Det innebär att en sådan brytare sluter en krets när den påverkas (trycks ned). Om brytaren är återfjädrande återgår den till sitt normalläge när den inte trycks ned längre. Det innebär att kretsen endast är sluten så länge brytaren påverkas. 

Brytare med fyra ben.6

Brytarna som följer med i det tillhörande komponentkittet är återfjädrande NO-brytare. De har fyra ben totalt. Benen som monteras på samma radnummer på en kopplingsplatta leder alltid ström till varandra. Benen som monteras på olika radnummer på en kopplingsplatta leder däremot enbart ström till varandra när brytaren påverkas. 

Brytaren opåverkad (vänster) respektive påverkad (höger).7

Digital output

Vi har redan sett hur en Arduino kan använda GPIO-stiften som digitala utgångar när vi tände lysdioden på GPIO-stift 13. Vi gjorde det genom att först bestämma att GPIO-stift 13 var en utgång och därefter sätta spänningen till HIGH.

Eftersom utvecklingskortet har fler digitala GPIO-stift kan vi koppla en lysdiod till respektive GPIO-stift och styra dem individuellt. Det är dock enbart GPIO-stift 13 som har en tillhörande lysdiod förmonterad på utvecklingskortet.

Digital input

GPIO-stiften kan också användas som ingångar. Det är användbart om vi vill att Arduinon ska reagera när någon trycker på en brytare (eller tolka värdena från en sensor). Koden som behövs för detta är mycket lik den förra koden. I stället för att sätta GPIO-stift 13 som en utgång kan vi sätta det som en ingång med följande kod.

Del 1/2 av ReadDigitalPin.ino

Sedan kan vi läsa status på ingången med följande kod.

Del 2/2 av ReadDigitalPin.ino

Observera att koden som står här inte gör något. I Användning av digitala ingångar visar vi hur det går att åstadkomma något vettigt av informationen.

Referenser

6. Illustration gjord med komponenter från Fritzing (fritzing.org). CC BY-SA 3.0

7. Illustration gjord med komponenter från Fritzing (fritzing.org). CC BY-SA 3.0

Senast ändrad: 2017-01-19