Arduino StateChangeDetection

Fra HTX Arduino
Spring til navigation Spring til 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

Programmering
Programmeringsbegreber Initialisering - Sekvens - Algoritme - Hexadecimal - Det Binære Talsystem - HEX-fil - ASCII - Interrupt - Events - Styresystem - Autocomplete - Selvstudie Programmering - Hour Of Code - Stepwise Improvement - Syntaks - Prog-links - Microcontroller
Grundlæggende C C float - C double - C-løkker - Datatyper - Konstanter - Regnearter - Funktioner - Return - Returværdi - Rekursion - Semikolon
Variabel Typer boolean - byte - int - unsigned int - word - long - unsigned long - short - float - double - char - unsigned char - string - char array - String - object - Array - 2-dimensionelt Array - void
Program-klassikere Polling - State-machine - Trykknap - Forkant - Bagkant - Prel
Arduino Arduino til Programmering - C til Arduino - Programmering Shield - Arduino PC-software - Arduino Udviklingsmiljø - Arduino Pin Library - Funktion - Arduino Seriel - Arduino String - Arduino String Split - Arduino StateChangeDetection - setup() - loop() - Compilerdirektiver - Asynkron kommunikation - millis() - micros() - Scratch for Arduino - Send fra Arduino til Excel - [[]] - [[]]
Processing Grafik i Processing‎ - Keyboard i Processing - Mus i Processing‎ - Tid i Processing‎ - Draw() - Setup() - Tal Input til Processing - Syntaksfarvning - Kommunikation fra Arduino til Processing - Kommunikation fra Processing til Arduino
javaScript Javascript input‎ - Javascript output‎ - Javascript strukturer‎ - Javascript syntaks‎ - Tid i javaScript - Objekt‎ - AJAX
Serverprogrammering PHP - MySQL - Task Scheduler - WeMOS
PIC JAL - [[]]
Scratch for Arduino S4A Installation - S4A programmering - S4A undervisningsforløb - S4A begrænsninger
Program Dokumentation Algoritme - Flowchart - Pseudokode - Datastruktur - Dataabstraktion - Pulsplaner - Program-kommentar - Teori - Test - UML