Arduino StateChangeDetection

Fra Holstebro HTX Wiki
Skift til: navigering, søgning

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:

LED og trykknap til Arduinoen som 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