Enkla multi-mode 4wd Rover JR-001 (13 / 15 steg)

Steg 13: Kod Detaljer - Switch debounce



Här kommer vi att täcka några av de mer intressanta aspekterna av koden.

Hantering av Switch-läge:

Mekaniska brytare som tryckknappar och vippströmbrytare är mycket trevlig och bekväm att använda med en micro controller, men har ett stort problem... De genererar mycket elektriska störningar när bytte eller tryckt (se bild för detaljer). Detta "brus" härjar med din kod för att läsa en knapp eller omkopplare och kan orsaka koden till mis-läsa en ändring i tillståndet switch. För att råda bot på detta lägger vi till några logik för att "Dämpningstid" växeln.

En debounce är bara lite extra kod att hålla reda på senast en ändring i tillståndet switch hände. När växeln är växlas eller bytte, den funktion som läser digital PIN-koden för det, sparar ändringen inträffade. När en annan förändring är att märka, som sparade tid kontrolleras för att se om det är utanför räckvidden för den nya tiden. Om den nya förändringen är mindre än 20ms från sist, ändringen ignoreras och antas vara buller. Om det var större än 20ms, sedan ändringen vidtas och en ny ändra tid sparas. Detta håller koden från att få flera ändringar per switch flip.

Från det globala avsnittet...
#define DEBOUNCE_TM 20 / / 20ms
.
osignerade långa last_pin_change;
.
.
.
funktion för att hantera inställningsreglaget med debounce
void checkMode)
{
byte mode_val = digitalRead (MODE_PIN);

om ((lång)(millis () - last_pin_change) > = DEBOUNCE_TM) {
last_pin_change = millis ();
Förändringar i läge bot är i.
om (mode_val == låg)
läge = MODE_AVOID;

om (mode_val == hög)
läge = MODE_FORCE;

mode_change == true;
}
}

Se Steg
Relaterade Ämnen

ATTiny2313 multi-mode ledde matrisen klockan

Detta är ett multi-mode klocka projekt baserat på attiny2313. Det använder en 8 x 8 led matris som display. med begränsad upplösning visar detta 12 timmars klocka tiden i 6 olika lägen.kretsen sysselsätter rad och kolumn multiplexing för att driva ly...

Arduino 4WD rover bluetooth kontrolleras av Android telefonen/tablett

Arduino 4WD bluetooth kontrollerad roverDetta är en enkel 4WD rover gjorde jag med Arduino.rover styrs med en android-telefon eller surfplatta via bluetooth. Med denna app kan du styra hastighet (med Arduino's pwm), köra den med accelerometern och må...

5 enkla sovrum Mods för under $100 och gratis råd

jag har använt rullstol för större delen av mitt liv. Jag har också en hyresgästen under större delen av mitt liv. Sammanställt dessa två saker och gränser kommer att drabbas. Hyresvärdar är inte vanligtvis öppna till stora förändringar på deras egen...

Multi-mode nyckel koppel

Varje dag bär är ett mycket omdiskuterat ämne - vad och hur du ska bära essentials. Oavsett hur min redovisade scenario förändringar, antalet en sak jag aldrig lov utan är mina nycklar--åtminstone med dem, jag kan fortfarande komma tillbaka in i huse...

Arduino multi-mode lampa med soft touch switch

i detta baserade Arduino projekt, kommer vi att bygga en lampa med flera lätta skärmar: färg sequencer, ljusreglering ljus, färg chaser, firelight - alla valda av en touch bar på kretskortet.Alla funktioner är gjort i programvaran, inklusive touch se...

NES ledde & fönster mod. Kosta under $5.

Verktyg som behövs:SkyddsglasögonMultimeterlödkolvlimpistolPhilips skruvmejselDremel roterande verktyg med drill bit och glasfiber cutoff hjulkniv att strippa trådtång med fräsarMaterial som behövs:glas bildram ($1 på dollar tree)10 del led-lampor ($...

Rover 5 Tank, Arduino Outdoor programmering utmaning

Hej killar/tjejerDetta projekt startade ursprungligen att se om vi kunde program ut egna avlägsen kontrollerade rover men förvandlas till mer sedan att vi beställde 3 Rover 5 enheter eftersom de verkar ha en mycket lätt att använda drivrutinen styrel...

Magiska lysdioder Box. Entertainment Device

Hej! Detta inlägg är att förklara det arbete under de senaste månaderna till ett ämne. Projektet har utformats och monteras av Eduardo Del Nogal, Pablo Pastor, Carlos Villagrasa, Jose Miguel Rios, Abraham Roldan och Javier Fuentes.Tanken av detta arb...

Boom och gripdon bot

Robotstyrda gripdon har alltid roliga saker att leka med. Lägga till en till en robot är som att ha en fjärrkontroll Tonka leksak från min barndom. I förflutnan, gripdon där en stor hanterar att bygga och konstruera, men med 3d-skrivare, CNC fräsar o...

Bättre CPU kylning

efter några de senaste google-ning och dator uppgraderingar jag har upptäckt ett sätt att få din CPU upp till 7 grader svalare.Steg 1: Delar som behövs För detta instructable behöver du följandeen $5-$10 80 mm eller större fall/CPU fan (jag använde e...

10GbE Mac arbetsstation för Phantom Cinestation

10 Gb Ethernet (multimode SC-LC fiber optic) Mac arbetsstation för användning med Phantom CineStation-X2SR och CineStream-X2SR. Cinestation stöder CineMag I eller II för Phantom Flex och Phantom HD Gold kameror.I detta instructable, jag ger steg för...

Hur till hacka och få HBC & USBLoader GX på 4.3

Hej! Detta är en guide för alla er människor som har få fel och andra saker samtidigt som man försöker att hacka deras 4.3 Wiis. Denna metod är mycket enkelt och det fungerar om du följer alla instruktioner noga! Så låt oss komma igång!Steg 1: Att få...

Mjuk några Wii (Version 1.0-4.3)

vad gör softmodding en wii göra?Jo är svaret på den frågan som... du kan spela backuper av spel om du förlorat din ursprungliga spel... (Som jag gör) Du kan spela N64, SNES och SEGA konsolspel på din wii! Med lämpliga emulatorer... och du kan använda...

Tålig ficklampa med trä Accent

Detta projekt är en fortsättning från min tidigare trä LED ficklampa-projektet. Du kan se länken till denna instructable projektet här:Även om tidigare trä ficklampan var en vacker produkt och hade många bra funktioner, hade den vissa begränsningar n...

Arduino Real tid väckarklocka med temperatur och LED belysning. Fjärrstyrda

Arduino klocka, med batteribackup (realtidsklocka), tid, datum, Alarm, temperatur, LCD utgång, IR-fjärr ingång, viloläge, LED-belysning (10 X) röd och blå multi-mode.Steg 1: Steg 1: delar listaArduino klocka, med batteribackup (realtidsklocka), tid,...

Formbara tyg för docka kläder

När jag var ung, jag ville göra kläder till mina dockor, men jag hade varken skickligheten eller koncentrationsförmåga att sy kläder. Nu när jag har tjejer i min egen, jag tittar på en av mina döttrar försöker drapera bitar av tyg över och runt henne...

Squareinator - en SN76489 Monosynth

Det hela började för några år sedan, när en vän gav mig en gammal RadioShack blisterförpackning från tidigt 1980-talet han fått på en hamfest - en SN76489 soundchip. Viss forskning visade det hade använts i tidiga hemdatorer och video spel system. Ka...

Fars dag LED slips

en slips kanske inte den mest originella fars dag present, men vad far kunde motstå en slips som gör honom stå från mängden som den här:Steg 1: Saker du behöver Detta är en tillämpning av "Tiny bärbara LED Kit" som jag producerat för kit utmanin...

Sätta en Cylon i den!

Förra året komedi skiss show "Portlandia" gjorde narr av en konst- och hantverk trend, där hantverk konstnärer skulle ta vanliga artiklar och "sätta en fågel på den". Jag föll offer för en liknande utveckling i geek folkmassan: ta en v...