Stap 5: Code
Klassieke ontdendering Revisited
De klassieke Debounce van de Arduino tutorial Arduino Tutorial werd gekozen als een goed voorbeeld om te gebruiken om te illustreren de drukknop functie van het schild van Prototyping om twee redenen. Eerst is het er, geen behoefte om te werken op zijn inventieve wat haar operationele tekortkoming. Ten tweede, de klassieke Debounce is niet ingesloten in een bibliotheek en de tutorial waarde gemakkelijk wordt benut.
De reden dat de klassieke Debounce kan niet worden gebruikt zonder verandering is gewoon de polariteit van het signaal. De klassieke Debounce , heeft een "bekend staat" op grond van de 10KΩ trekken naar beneden van de pin van de Arduino bedraad voor bemonstering van de drukknop. Sluiten van de drukknop trekt de Arduino pin HIGH.
Met het schild van Prototyping, sluiten de drukknop verbindt de Arduino pin naar GND. gewoon verklaarde de pin van de Arduino heeft slechts één lidstaat d.w.z. laag. De echte wereld niet kan natuurlijk altijd worden ontslagen door 'gewoon' en Arduino + breadboard + aansluiten draad soms wordt een goede facsimile van een elektromagnetische nabijheidssensor.
Vereist echter een pull voor de Arduino pin te bieden van een betrouwbare hoge staat. Dit kan worden bereikt met een externe weerstand maar de microprocessor-chip biedt deze service ook. Een kleine verandering van code zal vervangen en externe weerstand. Specifiek de "INPUT_PULLUP" wordt ingevoegd in de verklaring van de pinMode als "pinMode (buttonPin, INPUT_PULLUP);". Goed uitgelegd in de Tutorial Arduino Tutorial.
De verandering in de klassieke Debounvu te laten functioneren met het schild van Prototyping is gewoon deze extra voorwaarde voor de drukknop bemonstering pin en de kleine wijzigingen aan het hoge herkennen als de open stand van de schakelaar en laag als de gesloten. De schets ClassicDebounceRevisited.ino heeft besproken met de wijzigingen.
Natuurlijk tweaken van de klassieke Debounce lijkt niet erg vermakelijk dus de code een uitbreiding bevat tot de tweede LED van het schild van Prototyping. Niets meer spectaculair dan het draaien van de tweede leidde op wanneer de eerste if uitschakelen.
Stoppen van een proces
Een andere sketch is opgenomen dat het gebruik van de drukknop en LED toont. Niet alleen als 170 Tie wijst Prototyping maar misschien deel uit van een Arduino-Stack. Opnieuw de codering inhoud is niet voor directe waarde maar hopelijk wel stof tot nadenken voor Prototyping Shields.
De code is doorgegeven in een formulier vaak werkzaam in de auteur's code en proto-ontwikkeling. Een verhaal kan waarschijnlijk worden gesponnen die de vorm zou excuseren, maar de realiteit is geworteld in gelijke deel luiheid, twijfelachtige organiseren gewoonten en een bepaalde afkeer van de 'Bladeren'. Geen moeite is geboekt voor detail van zijn functionaliteit buiten de Arduino IDE V1.6.5 maar een knippen en plakken 'work-around', zal het probleem oplossen maar misschien niet met de (vermeende) voordelen.
De schets bestaat uit drie aparte "Ino" bestanden die als aanwezig zijn in dezelfde map (op zijn minst met Vensters OS) worden behandeld door de IDE als elk bestand één schets. Er is een bepaalde vertrouwen dit blijkt uit sommige beoogde ontwerp als de IDE de sketch(et?) van de wortel als de eerste tab presenteert.
Voor dit Instructable is een nauwelijks minimale root bestand Prototypingnippet.ino en een tweede is de gewijzigde klassieke Debounce met een andere behandeling te voldoen aan de syntaxisregels voor functies. Dit is UpdatedButtonBounce.ino. Het laatste stukje code is opgenomen in de pinDoubleBlink.ino.
De Prototypingnippet-code gebruikt de bedrading van de Prototyping schild uit stap 4 en heeft in wezen hetzelfde doel van de controle van het schild, maar met behulp van de drukknop niet als een knevel maar HALT evenement. De code is niet uitgebreid en is toegelicht. Sommige output op de seriële poort vindt meestal om te laten zien dat de schets is het uitvoeren van de lus. De HALT wordt uitgevoerd als het schild de drukknop gedurende ten minste 1.25 seconden ingedrukt wordt gehouden. Zodra de Halt wordt verzocht de schets voert een reeks 'shutdown' knipperende LED en vervolgens letterlijk whiles weg de tijd weg.
De code van de Prototypingnippet kan gedownload worden met de Zip bestand link hieronder en moet uitpakken in de Arduino IDE klaar map met dezelfde naam.
Opmerking
De schets code monsters de drukknop pin staat, er zijn geen algoritmische technieken geïntroduceerd en het resultaat kan beetje onzeker. De klassieke Debounce en deze gewijzigde versies ook de functie millis() dus de gebruikelijke waarschuwingen op getimede loops, overloop en TIMER0 prescaler in het spel zijn.