Stap 4: Arduino Code - drukknoppen theorie
Upload de bijlage (thie code) in deze stap naar je arduino.
Voor de code nu. Het is eigenlijk een eenvoudige één dat ik heb bijgevoegd de code en het is goed gedocumenteerd.
Ik ga er echter door een aantal fundamentele dingen die kan een beetje moeilijk lijkt:
Het idee van deze code is wanneer u drukt op een knop een gegevens (u kunt dit wijzigen) toegestuurd van Arduino via seriële uw device.there is geen enkel probleem gelijk?
OK het alleen het probleem is dat wanneer u op de knop het zal niet gaan van lage staat aan de hoge staat onmiddellijk (of het tegenovergestelde). Zal er een periode waar zij tussen hoog naar laag staat aarzelen zal dus in een notendop wanneer u op de drukknop drukt het de gegevens twee keer verzenden kan of meer!! .
Er zijn twee oplossingen voor dit probleem een door hardware (met behulp van de condensator) en anderzijds door middel van Software.
In dit deel softwarematig we alleen een (gemakkelijk degene). Nu het idee van softwareoplossing is om te wachten een periode van tijd (de tijd van aarzeling) terwijl de knop vestigen in (stabiele geworden). Maar we hebben 5 knoppen! koel neer we niet hoeven te schrijven dat veel van code er een bibliotheek voor die bounce2 genaamd is :D. Zie deze link om te downloaden.
Dus het gebruik van deze bibliotheek, dat is het makkelijke gedeelte:
Een Bounce-object instantiëren
Stuiteren debouncer1_On = Bounce();
de knop starten
pinMode(sound1On,INPUT);
Interne pull-up activeren
digitalWrite(sound1On,HIGH);
Na het opzetten van de knop, setup debouncer
debouncer1_On.attach(sound1On);
debouncer1_On.interval(10)
Nu bent u klaar, wanneer u wilt lezen de status van de knop gewoon doen:
debouncer1_On.update();
Lees dan de status:
btn1On = debouncer1_On.read();
na dat verzenden u afhankelijk van de waarde van de btn1On, de gegevens. Bijvoorbeeld wanneer de status is laag btn1On == LOW verzend #pIntro; (deze tekenreeks zal worden vertaald door de app en het zal specifiek geluid afspelen later op dit onderwerp)
Je kan merken hebben we een variabele met de naam preStatus voor elke knop dit is aan de vorige status van de knop Opslaan.
Als u meer vragen hebt over de code gelieve mij te contacteren op:
blueactapp
Of het op fb pagina te bespreken:
https://www.Facebook.com/pages/BlueAct/55984237746...
Referentie: Voor meer informatie over deze video Debouncing verklaren veel: