Arduino StateChangeDetection
Denne opgave er den grundlæggende start på Arduinoen.
Software
I Arduino-programmet åbnes Fil - Eksempler - 02.Digital - StateChangeDetection[1].
Virkemåde
I funktionen setup() sættes to ben op, et til input og et til output
Det digitale ben 2 sættes til Input, og der skal forbindes en trykknap til benet.
Det digitale ben 13 sættes til output, og der skal forbindes en LED med formodstand til benet.
Den serielle port sættes op til at kommunikere med 9600 Baud.
I funktionen loop() afvikles den samme kode i en uendelig løkke, hvor benet med trykknappen aflæses, og ved at den har registreret om der var trykket på knappen i sidste gennemløb af loopet, så kan den se om der er kommet en ændring af knappens status.
Ved at den tester på knappens status kan den tælle op på antal tryk, og den kan skrive antallet ud og hvilken status knappen har.
Hver fjerde gang der et trykket på knappen skifter LED'en status.
Hardware
Der skal tilsluttes to kredsløb til Arduinoen for at man kan teste om programmet fungerer efter hensigten.
På det digitale ben 2 skal der forbindes ud et et fumlebræt, hvortil der også forbindes +5V og GND fra Arduinoen. Ben 2 skal forbindes til en trykknap der er sat op i et kredsløb med Pull-down.
På det digitale ben 13 skal der forbindes en LED med formodstand som går videre til stel.
Dette kan skitseres som følgende diagram:
Diagram over trykknap og LED koblet til Arduinoen
Udvidelse
Prøv at kombinere funktionen med at lysdioden blinker og at man kan trykke på kontakten. Det kan gøres på flere måder:
Skift på både forkant og bagkant
Der skal tælles op både når man trykker knappen ned igen, og begge dele skal skrives ud
Debounce eller Prel
Når man klikker på en knap kan der lige i skifteøjeblikket ske at den har kontakt og afbryder flere gange, så man får en fejltælling i programmet.
Dette kan hindres ved at registrere prel, så tællingen sker korrekt.
Dette er vist i programmet der åbnes ved Fil - Eksempler - 02.Digital - Debounce[2]
Referencer
- ↑ http://arduino.cc/en/Tutorial/ButtonStateChange State Change Detection
- ↑ http://arduino.cc/en/Tutorial/Debounce Prel-eliminering