Arduino Rotary Encoder lezing verbeterd


Rotary encoders zijn grote invoerapparaten voor elektronica projecten - hopelijk dit Instructable zal inspireren en helpen u in uw volgende project gebruiken.

Waarom rotary encoder code schrijven?

Ik wilde een low-cost roterende encoder gebruiken als een input mechanisme voor een van mijn komende projecten en in eerste instantie was verbijsterd door de code opties beschikbaar voor het nemen van de lezingen van de roterende coderingsprogramma en bepalen hoeveel "detents" of het coderingsprogramma had geklikt verleden en in welke richting cycli. Ik denk dat mijn belangrijkste schets zal moeten dus ik ben het vermijden van de verschillende beschikbare encoder Bibliotheken, die leek te zijn moeilijk om te maken werkt als de meeste van mijn Arduino geheugen gebruiken ik probeerde een paar van hen. Ze lijken ook te gebruiken veel meer van de code-begroting dan de benaderingen van de schets gebaseerde code vanaf hier besproken.

Als u alleen wilt omzeilen de gedachte achter mijn aanpak en krijg meteen de Instructable, voel je vrij om naar stap 1 overslaan!

Andere benaderingen

Verscheidene van de belangrijkste schets gebaseerde (d.w.z. zij gebruik niet een bibliotheek) benaderingen worden besproken in het rt's blogbericht waarin zij roterende encoder code schrijven waardoor de goedkoopste encoders bruikbaar als input van de Arduino. Ze hebben ook een goed voorbeeld van ze logic signaal dat het coderingsprogramma wordt veroorzaakt. RT vond dat een timer onderbreken systeem werkte het beste voor hen, maar ik vrees dat de polling-frequentie afbreuk aan scherm Bijwerksnelheid in de hoofdlus van mijn project schets doen zou. Gezien het feit dat de roterende encoder voor een klein deel van de tijd die ik wil het scherm bijwerken verhuizen zullen, lijkt dit een slechte match voor mijn toepassing.

Ik koos om te beginnen met behulp van Steve Spence's code hier, die was prima op zijn eigen maar leek echt vertragen wanneer ik de rest van mijn schets code (waarbij display updates schrijven naar een kleine TFT-scherm) opgenomen. Aanvankelijk was ik benieuwd als het zijn kan omdat de hoofdlus een ontdendering-instructie bevat.

Ik lees dan Oleg van roterende encoder artikel op een interrupt service routine -versie van zijn vorige post, ik dacht ook dat het misschien een goed idee om het gebruik van directe haven manipulatie te lezen beide pins gelijktijdig en zodra de interrupt branden. Zijn code kan worden gebruikt op elke invoer pin als de poort manipulatie code is herschreven. In tegenstelling, heb ik besloten om het gebruik van alleen de hardware-interrupts op digitale pennen 2 en 3, dus wij annuleerteken troep interrupts alleen brand op een stijgende rand van de pin spanning, in plaats van op pin spanning wijzigen, waaronder vallen randen. Dit vermindert het aantal keren die de ISR, afleidt van de hoofdlus heet.

Oleg van code een opzoektabel gebruikt om gecompileerde code-grootte tot een echt klein formaat maar ik kon niet betrouwbare resultaten die zeer trage draaiing evenals redelijk snelle rotatie vangen zou. Niet vergeten dat veel hardware debouncing (zie stap 2) met de betrouwbaarheid van lezingen helpen kan, maar ik na een softwareoplossing was te vereenvoudigen van de hardware te bouwen en zo overdraagbaar naar andere hardware-toepassingen mogelijk.

Dit concludeert de invoering van mijn uitdaging en overwegingen. In stap 2 nemen we een kijkje op de hardware van de encoder, terminologie en enkele praktische overwegingen wanneer u wilt een roterende encoder integreren in uw project.

Gerelateerde Artikelen

Arduino - Rotary encoder eenvoudige voorbeeld KY-040

Arduino - Rotary encoder eenvoudige voorbeeld KY-040

Hallo mensen! Dit is een voorbeeld over het gebruik van de encoder KY-040 Rotary.Zijn erg basic maar als uw nieuwe aan arduino of kon niet vinden geen code, dan heb je iets om mee te beginnen.omdat er weinig documentatie over de Keyes sensor kit.Voer
RGB-Rotary Encoder voorbeeld (ATmega328, AVR)

RGB-Rotary Encoder voorbeeld (ATmega328, AVR)

de bovenstaande setup gebruikt interrupt service routines (ISRs) te interpreteren een roterende encoder.  Het specifieke roterende coderingsprogramma gebruikt bevat ook een RGB LED, die wordt gedreven door PWM.  Er is een video in het volledige artik
Turn Me Kit: Rotary Encoder op Breadboard toegang

Turn Me Kit: Rotary Encoder op Breadboard toegang

Rotary encoders zijn apparaten die de positie en de richting van rotatie met behulp van twee uitgangskanalen, A en B. kunnen overbrengen  We hebben dus een breakout board dat beide breadboard vriendelijk en super eenvoudig samen te stellen is gemaakt
DIY USB DJ Controller

DIY USB DJ Controller

Veel mensen krijgen in DJ deze dagen, of als een middel voor zelfexpressie of een manier om extra geld te verdienen. Ik geniet van DJing want het biedt een interessanter, betrokken en interactieve muziek-luisteren ervaring, of in het gezelschap van v
Gemakkelijk Arduino menu's voor Rotary Encoders

Gemakkelijk Arduino menu's voor Rotary Encoders

Rotary encoders met centrum - drukknoppen zijn cool invoer hardware voor projecten, vooral als u wilt kunnen om te scrollen door menu's en selecteert u opties. Hopelijk dit Instructable krijgt u het vertrouwen uit te proberen een fundamentele menusys
Arduino Nano en Visuino: Control Servo met roterende Encoder

Arduino Nano en Visuino: Control Servo met roterende Encoder

Er zijn een heleboel Instructables hoe control Servo met potentiometer, echter soms is het handig om het te controleren met een Rotary Encoder. In dit Instructable, zal ik u tonen hoe gemakkelijk het is om dit te implementeren met behulp van Visuino
ARDUINO stappenmotor gecontroleerd met roterende encoder en l293d of SN754410NE-chip

ARDUINO stappenmotor gecontroleerd met roterende encoder en l293d of SN754410NE-chip

De stappenmotor zijn zeer nuttig voor veel diy projecten. In de meeste gevallen de microcontroller alle bewegingen van de stepper kunt bepalen, maar in sommige gevallen kunt u handmatig wilt bepalen de stappenmotor een beginpunt instellen, draaien va
Arduino Nano: De roterende Encoder met Visuino

Arduino Nano: De roterende Encoder met Visuino

De Rotary encoders zijn zeer nuttig precieze rotatie sensoren, ook vaak gebruikt als gebruiker gecontroleerd invoerapparaten potentiometers. Ze zijn makkelijk te verbinden met Arduino, en met de hulp van Visuino - een makkelijk te gebruiken grafische
Arduino Nano en Visuino: controle van Stepper Motor met roterende Encoder

Arduino Nano en Visuino: controle van Stepper Motor met roterende Encoder

Soms is het noodzakelijk dat een Stepper Motor volgen de rotatie van een Rotary Encoder voor precieze positionering. Ik heb al van plan Instructable op dit voor een lange tijd, maar uiteindelijk een paar dagen geleden na zoveelste vraag door Visuino
LED Dawn / Sunrise Alarm Clock, nachtlampje & veiligheid Light - Arduino compatibele

LED Dawn / Sunrise Alarm Clock, nachtlampje & veiligheid Light - Arduino compatibele

zoals de nachten geleidelijk verlengd in het najaar van 2011, ik ontdekte de geneugten van Arduino en dacht dat het zou een geweldige manier om iets dat ik voor een lange tijd wilde - een zachte manier om op een winter's ochtend wakker te worden.  He
Aan de slag van Arduino Kit (Absolute Beginner)

Aan de slag van Arduino Kit (Absolute Beginner)

Hallo is kerels, de Arduino Starter Kit geleverd door ElecFreaks (focus op Open hardware 4 jaar) een groot materiaal om gebruikers in het leren van stapsgewijze gunstig. Voor deze kit, er is geen noodzaak voor het solderen, steek gebruik, de aanleg v
Standalone WiFi Radio Control Panel (Arduino Powered)

Standalone WiFi Radio Control Panel (Arduino Powered)

ik wilde een Internet Radio voor een lange tijd, en was blij om te zien de Tinkernut Wifi Radio project (http://tinkernut.com/archives/2387 ), die ik gebouwd en hebben genoten voor een paar maanden.Echter, ik niet echt schelen voor de controle-interf
Automatische Arduino aangedreven Pet Feeder

Automatische Arduino aangedreven Pet Feeder

Dit is mijn automatische pet feeder. Aangedreven door arduino, met behulp van een 3D afgedrukt auger en programmeerbare met twee keer vervoederen een gebruiker instellen hoeveelheid voedsel, met een batterij back-up interne klok.Mijn katten drijven m
Arduino gebaseerde Bi-color LED Matrix Pong Game

Arduino gebaseerde Bi-color LED Matrix Pong Game

Hebben we twee game project instructables tot nu toe met behulp van de jolliFactory Bi-color LED Matrix Driver Module DIY kits die we ontworpen. Deze LED Matrix-module is ontworpen om kunnen keten-zodat u kunt serieschakeling de modules samen aan het