Hur får man en Arduino micros() funktion med 0.5us precision



Jag älskar Arduino microcontroller programmering, och jag använder det regelbundet i flyg-och forskning samt i hem projekt. När jag arbetar med mina många hem projekt, men befinner jag ofta mig behöver en mycket exakt timer. Detta beror på att mitt hem projekt fokus runt Radio kontroll (RC) flygplan och RC hobby meddelande signaler är timing-baserat signaler. Dessa RC meddelande signaler kallas PWM (Pulse bredd Modulation) och PPM (Pulse Position Modulation). I signaler, en full stick nedböjning i en riktning, på en handhållen radiosändare, vanligtvis motsvarar ~ 1000us (mikrosekunder), och en full stick nedböjning i motsatt riktning motsvarar ~ 2000us.

För att mäta tidpunkten i dessa signaler, använde jag den Arduino micros() funktion, tillsammans med externa avbryter. Den inbyggda Arduino micros() funktionen är bra, men inte bra nog för mina behov. Den har en precision av 4us (se här). Detta innebär att om jag läser i en PWM-signal som jag vet är exakt 1500us (center-stick position på en handhållen sändare), jag skulle se avläsningar av 1496, 1504, 1500 och ibland även 1492 eller 1508us. Detta är för mycket avvikelse.

So... Jag tittade och jag tittade och jag letade efter en lösning. Den enda lösningen jag kunde hitta används Atmega328 mikrokontroller Timer1, vilket är oacceptabelt för mina behov, eftersom då jag förlora användning av Arduino servo bibliotek. Därför har jag beslutat att göra massor av läsning och få i modet i mikrokontroller, direkt åtkomst till den Atmel timers och skriva min egen timerfunktionen.

Från denna strävan är född mitt Timer2_Counter "bibliotek," som innehåller funktioner som kan användas i stället för funktionen micros(), och som ger en precision av 0.5us, som är 8 x bättre än funktionen micros()!

För mer detaljerad information om min kod, samt den senaste versionen av min kod, inklusive en fullständig lista över dess funktioner, se min artikel här:
Arduino micros() funktion med 0.5us precision - med hjälp av min Timer2_Counter "Library".

Se Steg
Relaterade Ämnen

Hur får man en windows-lösenordet med ophcrack

detta är en instructable att lära dig hur du använder programmet Ophcrack för att få windows-lösenord. Jag delar detta för att ge människor kunskap hur man gör detta. Jag tar inte något ansvar för vad du gör med denna information. Jag rekommenderar d...

Hur får man gratis AA batterier! (Med chanser att få AAA batterier!)

Ett enkelt sätt att få många AA batterier som är praktiskt taget nya gratis!En extra Bonus är att det finns små möjligheter att få AAA-batterier!Steg 1: Verktyg som behövs för Nästan inga verktyg behövs!Allt du behöver är:1. en platt huvud skruvmejse...

Hur får man den "Film/Film Look" med iMovie 6

jag vet inte om dig, men för en lång tid, när jag såg en film och jämförde den med en Sportspel eller något på TV, jag kunde alltid se en skillnad. På något sätt såg filmen som en film och TV: N visar såg som en vanlig gammal TV show.I detta instruct...

Hur man programmerar Arduino Pro Mini använder Arduino Uno och ArduShield - utan kablar

Huvudsyftet med denna anvisning är att visa dig hur man programmerar i mest lätt sätt Arduino Mini eller Arduino Pro Mini med Arduino UNO och ArduShield – utan kablar.Steg för steg handledning, med några åtgärder för att hoppa av Awesome PCB.Steg 1 -...

Hur man styr arduino ombord med en android-telefon och en bluetooth-modul

i denna tutorial lär du dig hur du använder en bluetooth-modul och MIT: s app inventor skapa en trådlös seriell länk mellan en android-telefon och en arduino ombord.Här är en kort video som visar ett exempel app jag skapat. Jag ska beskriva hur man g...

Hur man kod Arduinos del 2

Har du någonsin undrat hur man kod Arduinos, väl din på rätt plats. Detta är en andra del till min hur kod Arduinos Instructable att visa dig några fler Arduino-kommandon. så luta dig tillbaka, koppla av och njuta av att lära. Läs lär hur man kod Ard...

Hack-A-lampan eller hur man kontrollerar Arduino med din smartphone

Jag fick en ikea-lampa i min lägenhet, det fungerar bra, vänd om, vänd bort... som allt det gör. Det är kindy tråkig, inte sant? Jag tänkte, Tänk om jag hacka den? Sedan kommer RGB-lysdioder till mitt huvud och idéer började flöda.På jobbet visste ja...

Hur man gör felsökning med Arduino Zero

I denna video titta vi på hur man gör felsökning med Arduino noll. Arduino noll har en mycket stor kapacitet och funktioner. En av de stora dragen är det har en inbyggd maskinvara felsökare. I denna video kommer vi titta på hur du använder felsökaren...

Hur man kör en Piezo med en Arduino

Hej alla! Jag kämpade med att göra en högljudd piezo Summer från 5volts. Jag kom på det. Det är super enkelt och lika högt som din brandvarnare. Om du har kämpat med detta problem... ge dig själv en paus... finns det noll bra information på internet....

Hur man gör en termometer med hjälp av Arduino och LM35

dag jag ska visa dig hur man gör en termometer med Arduino och LM35 temperaturgivare, LCD Display, på en skärbräda anslutna med kablar. Det kommer att Visa temperaturen i Celsius och Fahrenheit.Andro rotSteg 1: Krav:- Detta är en lista av delar som b...

Hur man programmerar Arduino marker under LPT med c ++ kod?

Hej igen!Idag Visa jag dig hur man programmerar Arduino chip(like ATtiny85) med c ++-koden (aka i Arduino IDE)Eftersom du inte kan använda BSD(aka LPT) programmerare med Arduino IDE, gjorde jag denna tutorital :)Obs: Denna tutorital beror på min en a...

Hur man styr en RGB ledde med en Arduino

I detta Instructable, kommer jag att visa dig hur man styr en RGB LED med en Arduino.För att slutföra detta projekt, behöver du:1 x Arduino (jag använder Arduino Uno R3)1 x RGB LED3 x 150-220 ohm motstånd4 x hoppare ledningar1 x skärbräda1 x dator me...

Kommunicera med arduino micro controller och dator via usb med en vb program

Om du är som mig och vill kunna styra dina objekt anslutna till din arduino via datorn måste du ett sätt att upprätta en anslutning och kommunicera med din arduino från datorn. Denna video och handledning visar dig hur man gör just det! Jag har tagit...

Hur man gör små robotar med nRover styrelsen

NRover, är en liten styrelse för att bygga små robotar som UGV (unmanned ground vehicles), linje anhängare eller att hemautomation, det kan styras med wifi, Bluetooth eller radio kontroll. Det huvudsakliga målet är utveckling av en liten lösning med...

Mini Arduino Multi funktion styrenhet med LCD-skärm

detta Instructable bygger på mini Arduino miljö monitor och mini Arduino EEGEN monitor Instructables.Det kan du styra upp till 4 reläer med tid, temperatur och/eller ljus, ditt sinne, eller vilken sensor du vill använda.Exemplen är prototyper, jag gå...

Arduino Micro USB OTG

Arduino är en kraftfull kompakt storlek programmerbara mikrokontroller för DIYers. Den minsta grundläggande utrustning du behöver är en bärbar dator, en USB-kabel och en arduino. Kan vi göra den ännu mer transportabel? Ja!Allt du behöver är en Arduin...

"Arduino Micro" kamera står hög nivå

jag har en kamera på en stång som jag använder för video meteor jakt. Ett problem jag har haft är att se tornet är nivån på toppen. Det måste vara riktigt nivå se till hela horisonten syns på fisheye objektivet på kameran.Jag har sett lite nivellerin...

Hur man gör en utskrift med en genomföra låda

följande är en steg för steg handledning om hur man gör en utskrift med hjälp av en genomföra låda. Detta är ett hantverk som är lämpliga för betyg K-6 men kan också användas till stöd motorik och hand-arm funktion för terapeutiska ändamål.Steg 1: Fö...

Hur man gör en lampa med programmerbara rutiner

Jag har använt samma lotion ett tag nu. En dag såg jag flaskan och jag tänkte: - Mhmm... Detta skulle vara en fantastisk lampa för mitt skrivbord. Och idén föddes.Som en fin inredning eller bara på kul handlar detta Instructable om hur man gör en lam...