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 meassure RPM, för att jag behövde till debouce signalen från Reed Switch, eftersom jag inte kunde hitta något sätt att debouce en signal i avbryta funktioner som inte kräver ytterligare maskinvara för debouncing signalen på Internet, här är hur jag debounced signalen från Reed Switch...

Programvara debouncing i avbrott, av Delphiño K.M.

lång debouncing_time = 15. Debouncing tid i millisekunder
flyktiga osignerade långa last_micros;

void setup() {
attachInterrupt (0, debounceInterrupt, RISING);
}

void loop() {
}

void debounceInterrupt() {
IF((Long)(Micros() - last_micros) > = debouncing_time * 1000) {
Interrupt();
last_micros = micros();
}
}

void Interrupt() {
Göra något
}

Du kan också "Göra något" i den huvudsakliga funktionen, istället för att ringa ett andra funktionen som sedan gör något, jag gillade bara det bättre på så sätt...

Obs: Jag har bara provat detta på en Arduino Mega (ATmega1280), med Arduino 0022.
Också, detta är inte en perfekt lösning, avbryta funktionen är stil kallas flera gånger, de följande städerna samtal, i nästa 15 MS bara ignoreras, men hey, det gör jobbet, så skruva det!

Ja, det handlar om det, jag hoppas detta hjälper någon...

PS Detta är min första Instructable, så om du inte har något kul att säga, inte säga något alls, fastän korrigeringar, förbättringar, etc. är naturligtvis alltid välkommen...

Relaterade Ämnen

Början Microcontrollers del 9: Knappen och programvara Debouncing metoder

I denna del av handledningen kommer att vi diskutera knappen och programvara debouncing.Vi vill studera knappen debouncing första och i detalj så vi har en god förståelse för vad det innebär. Knappen debouncing är viktigt och bör inte vara undervärde...

Programmering i ESP8266-12naE använder Arduino programvara/IDE

ESP8266 är som en Arduino med ett inbyggt WiFi, MCU och WiFi kretsar är samma chip. Överväga Arduino + WiFi Shield = ESP8266. I detta instructable jag ger en steg för steg guide att upphandla och programmering en ESP8266-12naE WIFI Development Board....

Programmering i ESP8266 WeMos-D1R2 använder Arduino programvara/IDE

I detta Instructable guidar jag dig genom de steg som behövs för att installera, konfigurera och programmera WeMos-D1R2 styrelsen använda Arduino IDE.WeMos-D1R2 är en ESP8266-12 utifrån en Arduino-UNO fotavtryck WiFi aktiverat mikroprocessor unit. De...

Hur man laddar ner Arduino programvara för Windows / Linux / MacOS

Detta instructable hjälper dig att ladda ner Arduino programvara (Arduino IDE) för Windows, Linux, Mac OS.Följande steg hjälper dig att ladda ner Arduino programvaraSteg 1: Typ Arduino i GoogleSteg 2: Välj Hämta flik i Arduino webbplats.Steg 3: Hämta...

NerdClock: En RGB binär klocka [Arduino programvara]

IntroduktionÖvriga-armbandsur är en riktigt cool sätt att visa tiden på ett hemlighetsfullt sätt. Och till dem som inte vet hur man läser den typen av klockan är en enkel, men effektiv sätt att stärka upp din nivå skyhög nerdiness. Det kan bara vara...

Setup Arduino programvara för Atmega328P med intern kristall på skärbräda

en skärbräda Arduino kommer att kräva en Atmega328P styrenhet för dessa instruktioner. Observera "P" i slutet av namnet. Du kan inte använda en Atmega328 eftersom den har en något annorlunda enhet ID-nummer. Det kommer att kräva en olika styrels...

Arduino Nano: Debouncing och växla knappen med Visuino

Knapparna är ansluten till Arduino kan enkelt användas som på/av Vippbrytare. Tyvärr tenderar knapparna att skapa studsande buller när de ansluta/koppla bort, att göra funktionen växla otillförlitliga. Ljudet kan dämpas med en teknik som kallas Debou...

Skapa extern avbryta i arduino

Adruino har flera typer av avbrott. Avbrottsförfrågan är en process genom vilken arduino slutar sitt ordinarie uppdrag eller stoppa dess looping och gå för att avbryta funktion för att slutföra uppdraget givet avbryta funktion. Yttre mellanjobb skapa...

Komma igång med en Arduino (steg för steg Guide om hur du installerar programvara för Arduino IDE)

Hej killar, i denna tutorial jag antar att du äger en Arduino UNO. Jag kommer att visa dig hur du ansluter din Arduino ombord till datorn och testa det med en enkel skiss.Steg 1: 1) få dina leveranser redo:Så behöver vad du att komma igångArduino omb...

LED Dawn / Sunrise väckarklocka, nattlampa & säkerhet ljus - Arduino kompatibel

som nätterna förlängs successivt under hösten 2011, jag upptäckt glädjen med Arduino och trodde att det skulle vara ett bra sätt att genomföra något som jag har velat ha en lång stund - ett skonsamt sätt att vakna upp på en vintermorgon. Tyvärr, det...

Arduino kontrollerade ljus dimmer

Varning: Vissa människor försöka bygga detta med en optocoupler med zerocrossing coz "som är bättre" rätt? Vissa får även höra i elektronik butiker är det bättre att använda sådan optocoupler. FEL. Detta fungerar endast med en random brand optoc...

Arduino-baserad optiska varvräknare

över tio år sedan, jag har lagt upp en webbsida med detaljerade instruktioner om att bygga en enkel elmotor baserat på en från den Beakman världen TV-show. Jag kallade det "Beakmans elmotor" sidan och under åren har det haft hundratusentals, om...

Bänk PSU strömförsörjning från gamla ATX med Arduino och LCD-skärm

Hej alla och Välkommen till min första Instructable.Jag har alltid velat en bänk PSU för enkel åtkomst till en strömkälla, och något som jag kan lita på när du arbetar med olika projekt. Jag ville ha ett NÄTAGG som:• ger 12v och 5v 3.3V utgångar• ger...

Gamepad med Arduino

I detta instructable jag kommer att visa dig hur man gör en enkel spelkontroll (joy stick) med mikrokontroller, några knappar och ett visual basic-program för att spela subway surfare i PC...Jag guidar dig steg för steg med hjälp av enkel konstruktio...

Twitter övervakning leksak byggt med LEGO & Arduino

Detta är en animerad LEGO leksak som övervakar twitter och firar varje gång det söker en ny förekomst av hashtag #BLOCKSHELL av klingande en klocka, blinkar en ljus och skicka en liten minfigure aktivist dude upp en arktisk oljerigg överbyggnad.(Mini...

RC sändare till USB-spelkontroll med Arduino

Varför ska jag göra detta?När det gäller att flyga RC flygplan med hjälp av en simulator kan vara ett bra sätt att finslipa dina färdigheter under lågsäsongen eller ens förbereda för din första flygning. Den stora nackdelen att med hjälp av simulator...

Utveckla ett ATtiny firefly projekt använder Arduino och det är IDE

Jag såg nyligen ett intressant projekt av Karl Lunt som används en ATtiny13 för att efterlikna en firefly (http://www.seanet.com/~karllunt/fireflyLED.html). Detta i sig, är verkligen inte unik, men det fick mig att tänka om en av mina tidiga microcon...

Hem automationssystem använder Arduino och SIM900 GSM modul

Hej du! Som jag har nästan avslutat mina studier på Lunds tekniska högskola, jag var tvungen att göra ett examensarbete och min tanke var att göra en häpnadsväckande sak (jag vet att det roliga: D) att visa alla att jag är en bra prototyp maker och j...

Interaktiva Arduino Powered soffbord

en snabb fore Observera: detta är min första Instructable och mitt första stora Arduino projekt, så om du ser några dumma fel eller har en idé om hur saker skulle kunna göras bättre, då behaga låta mig veta.Nu när det är ur vägen jag ska börja, jag b...