Förbättrad Arduino Rotary Encoder behandlingen (2 / 4 steg)
Steg 2: Gå runt
Kretsen är så enkel. Du behöver:
- En ATMEGA328P baserade Arduino, som Uno, Pro Mini eller Nano.
- En mekanisk (i motsats till optisk) kvadratur rotationsencoder - detta är den vanligaste typen så oroa dig inte för mycket om det inte är angivet. eBay och Aliexpress listor nämner ofta Arduino i beskrivningen och detta är en bra indikator på att man är lämplig.
- Hook-up tråd/bygel leder.
- Tillval: en prototyping skärbräda.
Först och främst leta efter en samling av tre stift på ena sidan av kodaren. Detta är tre för att mäta rotation med vår kod. Om det finns två stift tillsammans på en annan sida, är detta sannolikt att vara för knappen centrum. Vi ska ignorera detta för nu.
Av de tre stift tillsammans, är encoder marken pin ansluten till Arduino marken pin. Någon av de andra två stiften är ansluten till digital stift 2 och de återstående på är ansluten till digital stift 3. Om din rotationsriktning är inte som du skulle vilja, bara byta två icke-mark stiften över.
Stift 2 och 3 är viktiga eftersom på den ATMEGA328P-baserade Arduinos är de enda stiften som har förmågan att upptäcka stigande och fallande pin ändra avbrott. MEGA 2560 stiger ombord etc. har andra hårdvara avbryta stift som kan göra detta.
Obs: I diagrammet är marken PIN-koden en slutet stift. I själva verket marken PIN-koden är ofta mittstiftet men detta är inte alltid fallet så Läs databladet eller testa din kodare att ta reda på vilka stift är marken.
En annan anmärkning: ArneTR gjorde en bra kommentar om att inte ha en separat kabelanslutning till logik positiv spänning (e.g. 5V eller 3.3V) för rotationsencoder kretsen visas. Arduinoen kan inte läsa rotary encoder utan både en marken signal (som har vi kopplat en kabel till) och logik spänningen (ibland annotated som Vcc eller Vdd), så hur kan Arduino läsa logiken från denna kodare utan en positiv spänning tråd? Svaret är att ATMEGA328P gå i flisor i Arduino har ett speciellt läge kan du ange på digital stiften (som vi använder) där en PIN-kod automatiskt dras "hög" logik spänningen av ett inre motstånd. Titta i koden för "pinMode (pinX, INPUT_PULLUP)" att se oss tala om Arduino att vi vill dra nytta av detta läge. När set, behöver vi bara ge kodaren med en jordledning som sensing trådarna från digital stiften redan tillhandahåller logik spänningen.