Arduino - Dual-functieknop - Long Press/korte Press (onverwijld) + Bonus (4 / 6 stap)

Stap 4: De Software in Detail deel 2

Nu voor de lus. Ik ga dit breken van beetje bij beetje, om uit te leggen wat er gaande is. Het eerste ding dat het programma zal doen is de status van de knop lezen. Dit geeft ons de onderstaande code en en laten toe om functies voor zowel on-gedrukt en geperst Staten, te maken Vergeet niet dat de kort indrukken functie op de knop versie gebeurt.

 if (digitalRead(button) == HIGH) { //Button pressed } else { //Button not pressed } 

In de sectie ingedrukte knop, is het eerste wat dat we zullen doen testen de buttonActive variabele, op set-up dit is onjuist. Als dit momenteel onwaar is, betekent dit dat het programma is het opsporen van de knop wordt ingedrukt voor de eerste keer. Dit is omdat na lezing onwaar die wij onmiddellijk het ingesteld op true, en alleen het vrijgeven van de knop terug op false stellen kunt. Wij registreren ook de tijd die de knop voor het eerst werd ingedrukt.

 if (buttonActive == false) { buttonActive = true; buttonTimer = millis(); } 

De volgende stap binnen de sectie ingedrukte knop, is om te testen hoe lang we de knop voor hebben gehouden. We doen dit door het testen van de huidige tijd, af te trekken van de tijd eerst gedrukt in milliseconden en vergelijk dat met de lengte van de tijd die wij wensen tot de lange pers is geactiveerd.

We controleren dat ook de longPressActive Boole is vals, omdat zodra we de lange druk-functie hebt geactiveerd we deze boolean trouw stop herhalen activering wordt ingesteld. Zodra we de knop voor de gewenste keer hebben gehouden, zullen we de staat voor de LED1State boolean die zal op zijn beurt het wegknippen van de pin die de LED is gekoppeld aan hoge of lage dienovereenkomstig spiegelen.

 if ((millis() - buttonTimer > longPressTime) && (longPressActive == false)) { longPressActive = true; LED1State = !LED1State; digitalWrite(LED1, LED1State); } 

Verplaatsen op de knop niet ingedrukt sectie van de code. Het eerste wat we zullen controleren is als de buttonActive Boolean-waarde geldt. Als het is ingesteld op true, de code is in een lus voor de eerste keer sinds de knop werd uitgebracht. Het zal dan set de Boolean-waarde terug op false om de code hierboven om te ontdekken de knop opnieuw worden ingedrukt.

 if (buttonActive == true) { buttonActive = false; } 

Binnen de bovenstaande als verklaring, als we de eerste lus na knop release zijn opsporen, we gaan volgende controleren als lang indrukken functie is geactiveerd, die twee mogelijke stappen zal geven. Als lange druk werd geactiveerd zullen we gewoon de longPressActive ingesteld terug op false aan opdat het programma kan druk nogmaals lang op. Als het niet was geactiveerd, wij de staat van de tweede LED zal wegknippen, zoals wij met deden de eerste.

 if (longPressActive == true) { longPressActive = false; } else { LED2State = !LED2State; digitalWrite(LED2, LED2State); } 

Gerelateerde Artikelen

Bluetooth gecontroleerde Arduino Dual Motor RC Platform

Bluetooth gecontroleerde Arduino Dual Motor RC Platform

* Als van 7/6/15, ben ik nog steeds ontbreken een aantal van de vergadering tekst. Ik zal worden afwerking de Instructable kort, in de tussentijd als u nog vragen, voel je vrij om me e-mail of een reactie achterlaten.Met dit Instructable zult u in st
Arduino dual ultrasoon vloeistof niveau meter met geïntegreerde website

Arduino dual ultrasoon vloeistof niveau meter met geïntegreerde website

dit project kunt u controleren van het niveau van 2 containers gevuld met vloeistof. De niveaus kunnen worden weergegeven op een website. Het onderstaande voorbeeld heeft een sensor aangesloten via de kabel, en een andere sensor draadloos aangesloten
Arduino Dual gecontroleerde RC auto (Bluetooth en WiFi)

Arduino Dual gecontroleerde RC auto (Bluetooth en WiFi)

Dit project zal combineren software en hardware met een Android app en Arduino module.Dingen die je zal nodig om dit project te voltooien:1. elke oude, tweedehands of ongewenste RC auto2. Arduino nano3. HC-05 / HC-06 Bluetooth-module4. ESP8266 WiFi m
Knop Arduino tutorial Arduino Tutorial

Knop Arduino tutorial Arduino Tutorial

wat is eenvoudiger en dommer dan een knop, u vragen...Ik zeg: achter een knop, onverwachte dingen kunnen verbergen. En binnen een programma dat verschillende dingen doet, behandeling van een knop kan worden lastig. Het aardige ding is dat een interes
Intelligente Arduino Uno & Mega Tic Tac Toe (nullen en kruisen)

Intelligente Arduino Uno & Mega Tic Tac Toe (nullen en kruisen)

Heb ik besloten om het klassieke spel van nullen en kruisen (of Tic Tac Toe, zoals het ook heet) op de Arduino na wordt gevraagd door mijn dochter als we samen een spel kon bouwen. Hier is een video haar het spelen van de definitieve versie op de Ard
Wachtwoord toegang kunnen verkrijgen met arduino

Wachtwoord toegang kunnen verkrijgen met arduino

~ ~ de volledige kit voor deze tutorial is nu te koop bij www.razvantech.com krijgen! ~~Dit instructable zal u tonen hoe te maken van een pass-code lock systeem met behulp van de Arduino Mega-board.Whenyou typt u de juiste code, een LED-lampje brandt
Password Lock met Arduino

Password Lock met Arduino

dit instructable zal u tonen hoe te maken van een pass-code lock systeem met behulp van de Arduino Mega-board.Wat u zult moeten:---> een Arduino Mega (de arduino uno of duemilianove hoeft niet genoeg digitale pinnen voor dit project)---> een LCD mod
DIY Arduino Dot Matrix polshorloge

DIY Arduino Dot Matrix polshorloge

Pols horloges zijn geweldig en fancy fashion accessoires voor mannen en vrouwen. Makers willen altijd iets anders gebruiken. Mijn diy arduino dot matrix polshorloge is de uiteindelijke uitvoer na één maand werken. Het horloge toont tijd, datum en tem
Cwik klok v1.0 - An Arduino Binary Clock

Cwik klok v1.0 - An Arduino Binary Clock

overzichtDit is een gids voor het opbouwen van een Arduino-aangedreven klok die LEDs gebruikt voor de weergave van een 24-uurs klok (uren en minuten) als binaire cijfers, een analoge meter wilt weergeven van de seconden, een schakelaar om te schakele
Raspberry Pi en Arduino: betrouwbare bouwsystemen met WatchDog Timers

Raspberry Pi en Arduino: betrouwbare bouwsystemen met WatchDog Timers

Samenvatting: In dit Instructable kijken we hoe het bouwen van meer betrouwbare computersystemen die gebruikmaken van de WatchDog timers. Laten we zien hoe u kunt instellen en gebruiken van de Raspberry Pi en Arduino interne watchdog timers. Ook legg
Eenvoudige Circuit/Arduino deurbel

Eenvoudige Circuit/Arduino deurbel

Dus, dit is mijn eerste intructable. U hoeft te verontschuldigenme als ik dat doe elke grammatica of technische fout in dit project. Plus hun zal niet worden eventuele afbeeldingen van mijn fysieke project. Alleen grafische schema's.Hoe dan ook, tot
Elektrische Arduino Go-kart

Elektrische Arduino Go-kart

Hallo iedereen! Zoals de titel al zegt, bouwde ik een elektrische go kart die wordt aangedreven door arduino! Hier is een korte video te vergewissen u daarom het volgende ding dat u gaan bouwen.NIEUWE VIDEO! Gemaakt voor de Boca lagers innovatie weds
Arduino IoT weer klok

Arduino IoT weer klok

In dit Instructable bouwen we een klok die ook binnen en buiten de klimatologische omstandigheden toont.Ik gebruikte om een koele kleine klok die, naast het vertellend de tijd, ook de temperatuur in het huis, de datum en de buitentemperatuur via een
Arduino Firefly-geprogrammeerde LEDs op handgemaakte vilten Tote tas

Arduino Firefly-geprogrammeerde LEDs op handgemaakte vilten Tote tas

Dit was mijn allereerste project dat codering vereist. Mijn idee was om een vilten tas die had sommige LED's die zou fade-in en fade out willekeurig, zoals vuurvliegjes. Het moest zo vrij en niet al te geeky, werkte ik hard aan het Gevilte ontwerp. G