Stap 2: Het circuit
Het circuit is dus eenvoudig. U moet:
- Een ATMEGA328P op basis van Arduino, zoals de Uno, Pro Mini of Nano.
- Een mechanische (in tegenstelling tot optische) quadrature roterende encoder - dit is de meest voorkomende soort dus geen zorgen te veel als het niet is opgegeven. eBay en Aliexpress aanbiedingen noem vaak Arduino in de beschrijving en dit is een goede indicator dat een geschikt is.
- Hook-up draad/jumper leidt.
- Optioneel: een prototyping breadboard.
Allereerst zoekt u een verzameling van drie pinnen aan de ene kant van het coderingsprogramma. Dit zijn de drie voor het meten van de rotatie met onze code. Als er twee pinnen samen op een andere kant, zijn deze waarschijnlijk voor de drukknop centrum. Wij zal negeren dit voor nu.
Uit de drie pinnen samen, is de encoder grond pin aangesloten op de Arduino grond pin. Een van de andere twee pinnen is verbonden met digitale pin 2 en de resterende op is aangesloten op de digitale pen 3. Als uw richting van de rotatie is niet de manier die u wil, alleen ruilen de twee pinnen van de niet-grond.
Pin 2 en 3 zijn belangrijk omdat op de ATMEGA328P gebaseerde Arduinos zijn ze de enige pinnen die hebben de mogelijkheid om te detecteren RISING en vallende pin wijzigen interrupts. De MEGA 2560 platen etc. hebben andere hardware-interrupt-pinnen die dit kunnen doen.
Opmerking: In het diagram is de grond pin één van de pinnen einde. In werkelijkheid, de grond pin is vaak het centrum pin maar dit is niet altijd het geval dus lees het gegevensblad of uw encoder om erachter te komen welke pin grond is te testen.
Een andere nota: ArneTR maakte een goede opmerking niet over een afzonderlijk bekabelde verbinding aan de positieve spanning van logica (bijvoorbeeld 5V of 3, 3V) voor het circuit van de roterende encoder komt te staan. De Arduino niet kan lezen de roterende encoder zonder zowel een grond-signaal (die we hebben een draad verbonden) en de spanning van de logica (soms geannoteerde als Vcc of Vdd), dus hoe de Arduino vindt de logica van dit coderingsprogramma zonder een positieve spanning draad? Het antwoord is dat de ATMEGA328P chip in de Arduino een speciale modus in stellen op de digitale pennen heeft te (die we gebruiken) waar een PIN-code wordt automatisch getrokken "hoge" het voltage logic door een interne weerstand. Kijk in de code voor "pinMode (pinX, INPUT_PULLUP)" om ons de Arduino te vertellen dat we willen profiteren van deze modus te zien. Eenmaal ingesteld, moeten we alleen het coderingsprogramma voorzien met een draad van de grond, zoals de sensing draden van de digitale pins bent al het verstrekken van de logica spanning.