Fristående Arduino stoppur - SainSmart LCD knappsatsen sköld
Jag måste erkänna att detta inte var helt skapad av mig. Jag tog idén om en annan stoppur där du läsa info om den seriella porten och sedan ändrat det till att använda Sainsmart LCD knappsatsen sköld.
Det ursprungliga projektet, som behövde elektronik kan hittas här.
Så, att vara mitt första projekt, jag lärde mig mycket om programmering i C (jag har några grundläggande kunskaper i programmering, men det är det). Att veta det finns en hel del killar med samma frågor som mig, jag kommenterade fan av denna kod (och tagit även några uppsägningar med flit, för att förklara begreppen ytterligare). Jag hoppas alla proffsen här kommer förlåta mig, men det är också ett sätt för mig att veta om jag fick saker rätt när du alla granska den: P
Så låt oss komma till saken!
Material som behövs:
-Arduino Uno eller motsvarande (som passar skölden).
-Sainsmart LCD knappsatsen sköld;
-Aditional strömkälla (jag använder detta) - valfri.
___________________________________
Jag antar att du redan vet hur man laddar upp skisser till din Arduino.
Anslut skölden och ladda upp koden.
Använd din externt batteri (eller USB-anslutning) för att driva Arduino och ha kul!
___________________________________
Slutliga anteckningar:
Om du granskat koden, kommer att du notera kommenterade uppsägningar, samt massor av kommentarer.
Jag gjorde detta för att förklara vissa saker som jag var tvungen att ta reda på själv.
Jag hoppas n00bs (som mig: D) kommer att vara bra.
Knappar på skölden:
Jag hittade online 2 sätt att använda den skydda knapparna:
-http://www.hobbytronics.co.uk/arduino-lcd-keypad-shield
-http://www.dfrobot.com/wiki/index.php?title=Arduino_LCD_KeyPad_Shield _(SKU:_DFR0009)
Den första som använder villkor för att ta reda på vilken knapp trycks.
Den andra en definierar faktiskt knapparna.
För tydlighetens skull använde jag den första en, som jag tycker är lättare att följa upp hur siffrorna är calculaded (kolla koden på den första länken).
På min skiss jag använt raden: "om (x < 600 & & x > 400)", till skillnad från den ursprungliga på länken, så att endast den avsedda knappen fungerar, inte någon annan.
Du kan skriva att det andra alternativet om du vill, det kommer att hjälpa dig att förstå ytterligare programmering i C.
För att vara ärlig, jag inte har helt förstår hur Arduino tar ett nummer mellan 400 och 600 och kategoriserar den som den vänstra knappen, någon vård att förklara? : D
Funktionen millis():
Som jag förstår, kan inte du göra klockan börja räkna bara när du trycker på knappen. Det börjar genast när Arduino är aktiverat och programmet startar körs (tryck på Välj innan börjar räkna och det kommer tillbaka tiden eftersom det är på). Funktionen millis() kallas och lagrar den tiden till en variabel när du börja räkna (så den vet när det började) och när du vill se den totala träningstiden (så den vet när det "slutat") och gör matten därifrån.
Inget speciellt, tänkte jag skulle dela denna cool slutsats.
Så här är mitt första projekt, hoppas du gillar, och snälla, för min inlärningskurva, göra recensioner, kritiker, förslag! : D
Ha det så kul!