Början Microcontrollers del 9: Knappen och programvara Debouncing metoder (1 / 2 steg)

Steg 1: Knappen Debouncing

För att illustrera knappen debouncing, innehåller vi valt projekt två lysdioder. När knappen trycks, växla lysdioderna mellan varandra. En knapptryckning blir en off och den andra på. När släppa knappen, kan det starta processen igen och orsaka ljusdioderna till växla igen. Du kommer att märka lysdioderna kommer att växla två gånger eller mer med bara en enda knapp tryck.

Det finns två sätt att lamslå debouncing. En i-krets metod (hårdvara) med användning av en kondensator och programvara debouncing. Maskinvaran använder helt enkelt en kondensator för att eliminera debouncing, och mjukvaran kommer att skapa en variabel som mäter konfidensnivån för knappen ström av ettor eller nollor.

Varning: Denna metod som jag använder för hårdvara debouncing är en mycket enkel och fattiga mans metod. Det största problemet med denna metod är att spänningen klättrar från 0 till 5v snarare än ett omedelbart eller momentan förändring. Detta kan sätta signalen i ett område som mikrokontroller inte vet hur man handskas med spänning. Detta intervall är området mellan tröskelvärdena för höga och låga signaler, som är mellan 2 och 3 volt. Med detta sagt, har jag inte personligen sett några problem med detta med min knapp debouncing. Om du vill eliminera denna klättring, använda en schmitt-trigger.

I video bild ser du att kretsen är ansluten på bakbord sans hårdvara debouncing, så problemet kan upplevas. Två lysdioder kopplas till mikrokontroller, både på PORT B, en på stift 0 och den andra på pin 2. Båda dessa Pins sätts till utgång och eftersom lysdioderna är gröna, en 330 ohm motstånd används för varje LED. Växeln knappen är ansluten till stift 1, på port B. Detta stift anges för indata och sätta till Läs hög (stift satt till "1"). för det första "studsa" testet, kommer vi inte använda en kondensator över de två leder av knappen.

Programmet till göra två lysdioder växla när knappen trycks är mycket enkel. Först, stiften initieras: Pins utmatningen till lysdioderna är inställda att produktionen i DDR (Data riktningen Register). En av lamporna är växlas högt, så från början, en är på och en är avstängd. Sedan aldrig sinande slingan startas och koden inom det kvarteret blir avrättad tills mikrokontroller förlorar makt. Inom denna loop, PIN-koden som är ansluten till knappen är ständigt kontrolleras för att avgöra om det är på. Om det är intryckt, och ställer ut en 1, kontrolleras det om knappen var firsts släppt. Detta är viktigt, eftersom om vi inte har denna kontroll, knappen bara att växla kontinuerligt när knappen är nedtryckt. Vi vill bara på knappen för att växla om knappen är intryckt och sedan släppas.

#include < avr/io.h >
int main(void)
{
DDRB | = 1 << PINB0; Anger riktning för utdata för PINB0
PORTB ^ = 1 << PINB0; Togglande enda stift 0 på port b
DDRB | = 1 << PINB2; Ange riktning för utgång på PINB2
DDRB & = ~ (1 << PINB1); Data riktning registrera ingående PINB1
PORTB | = 1 << PINB1; Ställa in PINB1 till en hög läsning
int pressad = 0; Initiera/Declare pressade variabeln

samtidigt (1)
{
om (bit_is_clear (PINB, 1)) //Check är trycks knappen
{
Kontrollera att knappen släpptes först
om (pressad == 0)
{
PORTB ^ = 1 << PINB0; Växla LED i pin 0
PORTB ^ = 1 << PINB2; Toggle ledde på pin 2
Tryckte = 1;
}
}
annat
{
Denna kod körs när knappen inte är intryckt.
Tryckte = 0;
}

< p >} < /p >< p >} < /p >

När mikrokontroller är programmerat, och trycker på knappen flera gånger, blir det tydligt att lysdioderna kommer att växla, ibland rätt och ibland flera gånger med endast en knapptryckning. Lägg till kondensatorn och kontrollera att trycka på knappen och LED växla igen. På oscilloskopet, skapas med kondensatorn installerat, en gradvis ökning av spänning när knappen trycks, motsätter sig ett gäng upp och ner spänningar som härrör från en studs från de mekaniska delarna av knappen. Men när knappen släpps, det visar att spänningen är en direkt förändring. Detta beror på att en annan kondensator inte installeras mellan knappen och mikrokontroller.

Se Steg
Relaterade Ämnen

Början Microcontrollers del 2: Att skapa ett SPI gränssnitt från programmeraren till mikrokontroller

Hej, hoppas vi du gillade del 1 av början Microcontrollers. Vi ska flytta i del 2 och börja prata om gränssnitt och hur du får din microcontroller att kommunicera med en dator.Så, vid denna punkt, du bör känna till begreppet mikrokontroller (MCU). Du...

Början Microcontrollers del 6: Skriva det första programmet till vända på en LED

Jag vet att du är redo att skriva det första programmet. Du har gått igenom en hel del hittills! Medan vi i frågan, låt oss sammanfatta händelserna. Du gick ut och köpte Atmel AVR mikrokontroller för att förstora. Jag valde theATMega32 för min använd...

Början Microcontrollers del 8: Lägga till en knapp till mikrokontroller och göra det göra något

En mycket enkel och lätt sätt att tillhandahålla för mänsklig interaktion med mikrokontroller är att infoga en knapp i kretsen. Att kommunicera med datorer som använder två viktigaste inmatningsenheter: musen och tangentbordet. Ett tangentbord är ing...

Början Microcontrollers del 11: Timers, räknare och mikrokontroller klockan

Timers och räknare är så integrerad att du kommer att se många exempel på dem i hela denna serie. Som namnet säger, används timers för tid och räkna. Inventering och timing kan du göra några mycket fina saker som kontrollerande LED brights, vinkel gr...

Början Microcontrollers del 5: Provning programmeraren och bygga den första kretsen

Så långt, bör du ha alla mjukvaran installerad och konstruerade det gränssnitt som kommer att ge en bekväm anslutning från programmeraren till mikrokontroller (MCU). För nästa steg måste en skärbräda (de med siffror är mycket bra), en LED och ett mot...

Början Microcontrollers del 12: Intro till avbryter

I denna del av handledningen vi prata om avbrott arbeta till exempel med räknaren. Avbryter förbättra mikrokontroller i stort sätt. Avbryter göra din program reagerar på hårdvaran i microcontrollers, vilket kan vara en reaktion från circuit utanför m...

Början Microcontrollers del 3: Överföra ett Program till mikrokontroller (drivrutiner)

Välkommen till del 3. Detta är en mindre handledning som kommer att behandla helt enkelt laddar drivrutiner se till din programmerare kan kommunicera med datorn ordentligt.Observera att ibland TinyISP och USBAVR enheter nu kommer förladdad med Window...

Början Microcontrollers del 13: Intro till LCD gränssnitt

Mikrokontroller är en underbar bit av ingenjörskonst och det kan göra många saker (med hjälp av några bra programmering), men det är fortfarande en ogenomskinlig svart låda. Om du vill att dela information, eller visa dig vad det försöker göra det, m...

Början Microcontrollers del 4: Installera programmering miljö (WinAVR)

Välkommen till nästa steg i vår serie. Vi kommer att introducera några grundläggande programmeringselement nu. Denna handledning är helt enkelt om hur du installerar din programmeringsmiljö. Den programmeringsmiljö som vi kommer att använda kallas Wi...

Början Microcontrollers del 7: Omarbetning av det första programmet att göra LED blinkar

Du har skrivit det första programmet, som visade på en LED. Ja, det var spektakulärt! Tja, inte riktigt, men låt oss införa lite galenskap till LED. Vi ska ge det en "bipolära" personlighet genom att blinka. Då vi kliver upp ett snäpp och gör de...

Läder draken Mask del I - Design och skärning

Hej! I detta Instructable vill jag visa dig stegen för att skapa en hybrid läder/worbla mask. Jag kommer att särskilt visar en stiliserad drake, men de grundläggande stegen kommer att hålla sant för någon design du väljer att göra. Innan jag går in s...

Hacka den senaste versionen av Staples "Easy" knappen och bygga en enkel fysisk aktivitet påminnelse verktyg

Jag var efter detta instructable att hacka Staples lätt knappen och bygga ett verktyg som påminner mig varje 15 minuter att vara fysiskt aktiv. Knappen som jag köpt från Staples hade inre kretsar som var annorlunda än den som framgår av den instructa...

K'nex Dinobot Transformers del 1: Grimlock och Strafe(Swoop)

Tyvärr jag inte har skrivit på länge men datorn var att vara dum. Jag använde dinobots film-versionerna så vänligen inte dödar mig om du hatar Michal Bay.Steg 1: Grimlocks kropp Steg 2: Grimlocks ansikte Steg 3: Grimlocks ben Steg 4: Grimlock's Tail...

Att göra knappen och ledde

22-11-15Här är koden jag använde att göra ledde arbetet aktiveras med knappen.Steg 1: Att placera knappen och leddeDu kan se det här:https://123d.Circuits.IO/Circuits/1276257-Button-a...Steg 2: Att göra det arbete | Först lyckades jag göra ledde arbe...

Arduino: Programvara debouncing i avbryta funktion...

Hi everybody!Så nyligen jag arbetade på ett projekt där jag ville meassure VARVTALET på ett av hjulen på min bil, och från det beräkna hastigheten, hålla reda på Driven avståndet etc. med en Arduino.Jag ville använda en Magnet och en Reed Switch till...

Måste komponenter, verktyg och programvara för Arduinoist

Att vara en Arduinoist själv, behöver jag många verktyg eller komponenter när jag gör prototyper eller experiment. I listan nedan har jag samlat de viktigaste verktyg och delar för Arduinoist.Denna artikel finns också på Jordan's Lab Notebook !Steg 1...

Börjar Microcontrollers del 1

Detta är först i en lång rad av tutorials syftade till att ge Nybörjarguide och handledning kring Atmel AVR Atmega32 mikrokontroller. Jag kommer att visa dig, genom exempel och projekt, hur program och tillhandahålla funktioner för denna mikrokontrol...

Awesome knappen, och sedan några.

Många av er har förmodligen sett knappen Awesome gjort av Matt Richardson av göra Magazine. Om inte här är hans video som var mycket bra gjort och var inspiration av mitt projekt.Jag gillade idén med att ha en knapp att trycka på för en viss funktion...

Skapa en klickbar Google karta för att dela geografisk Information och Metadata

Har du massor av data som är associerade med en specifik geografisk plats? Detta Instructables lär du dig att skapa en karta där du kan klicka på poäng för att visa data som är associerade till den punkten. Det är lätt, och de flesta allt inte behöve...