På samma sätt som du kan skriva HIGH
eller LOW
till en digital pin på Arduinon, kan du läsa HIGH
eller LOW
från en digital sensor kopplad till en digital pin. Digitala inputs kan, precis som digitala outputs, bara ha två tillstånd.
Exempel 2.7
En enskild labbkabel kan demonstrera teorin bakom digitala inputs. Du kommer att skriva ett program som sätter på eller stänger av den på Arduinon monterade LED:n, beroende på vad som läses på den digitala pinen där labbkabeln är kopplad.
Material
- 1 Arduino Uno
- 1 labbkabel
Instruktioner
- Koppla en labbkabel till digital pin 5
- Ladda upp den här koden:
Resultat
Du ska nu växla mellan att koppla labbkabelns lösa ände till 5V och GND. Kopplad till 5V borde LED:n sättas på, kopplad till GND borde LED:n stängas av. Notera att det inte kommer att fungera perfekt.
Nya kommandon
pinMode(pinNumber, INPUT)
: konfigurerar digitala pinpinNumber
att uppträda som en input.digitalRead( pinNumber)
: läser värdet från den digitala pinenpinNumber
, antingenHIGH
ellerLOW
.
Repetition:
if( test ){ statements }
: Kollar omtest
är sant eller falskt. Om det är sant kommer koden innanför klammerparentesen utföras. Om falskt hoppar programmet till koden efter klammerparentesen och utför denna.value1 == value2
: Jämförvalue1
ochvalue2
. Om värdena är lika returneras sant, om de inte är lika returneras falskt. Det dubbla likhetstecknet kallas för en operatör.
Så här fungerar det
- Två variabler deklareras,
ledPin
ochinputPin
.ledPin
tilldelas värdet 13, ochinputPin
värdet 5. - I
setup()
konfigureras pin 13 som en output och pin 5 som en input. - I
loop()
läses pin 5:s tillstånd av, samtidigt kollas om tillsståndet är lika medHIGH
. - Om kabeln är kopplad till 5V är avläsningen
HIGH
, och LED:n sätts på genom att skrivaHIGH
till pin 13. - Om kabeln är kopplad till GND är avläsningen
LOW
, och LED:n stängs av genom att skrivaLOW
till pin 13. loop()
fortsätter att upprepas vilket betyder att tillståndet på pin 5 kontinuerligt kollas av.
Knapp
En labbkabel kanske är ett bra sätt att förklara teorin bakom digitala inputs, men det är inte en pålitilig input för dina projekt. Det är bättre att introducera knappen. Med en Arduino kan du läsa två olika tillstånd från en knapp, HIGH
eller LOW
.
I nästa exempel kommer du att använda en TinkerKit-knapp. TinkerKit-komponenter gör det lättare för dig att göra kretsar, då de redan är små kretsar i sig med elektroniska komponenter som behövs, som resistorer.
Exempel 2.8
Det här exemplet gör samma sak som det tidigare, men istället för att använda en labbkabel kommer du nu att använda en TinkerKit-knapp.
Material
- 1 Arduino Uno
- 1 Education-sköld
- 1 TinkerKit-knapp
- 1 TinkerKit-kabel
Instruktioner
- Fäst skölden på Arduinons ovansida.
- Koppla TinkerKit-knappen till D9 med TinkerKit-kabeln.
- Ladda upp den här koden:
Resultat
Du bör nu trycka på knappen. LEDn: bör sättas på när du trycker på knappen, och stängas av när du släpper på knappen.
Så här fungerar det
- I det här exemplet tilldelas
inputPin
värdet 9, siffran på den digitala pin till vilken TinkerKit-knappen är kopplad. - I
setup()
konfigureras pin 13 som en output och pin 9 som en input. - I
loop()
läses pin 9:s tillstånd av och kontrolleras samtidigt om det är lika medHIGH
. - Om du trycker på knappen är avläsningen
HIGH
och LED:n sätts på. - Om du släpper på knappen är avläsningen
LOW
och LED:n stängs av. loop()
fortsätter att upprepas, vilket betyder pin 9:s tillstånd kontinuerligt kontrolleras.
Lär genom att göra
- Skriv ett program som spelar upp ljud när du trycker på en knapp.
- Lägg till en LED som blinkar när du trycker på knappen.