Difference between revisions of "Arduino - Een joystick"
(Created page with "Een joystick kan in twee richtinegn bewegen. De horizontale richting noemen we de x-richting en de vertikale richting de y-richting. Daarmee kun je twee dingen besturen met ee...") |
|||
| Line 1: | Line 1: | ||
| − | Een joystick kan in twee richtinegn bewegen. De horizontale richting noemen we de x-richting en de vertikale richting de y-richting. Daarmee kun je twee dingen besturen met een enkele knop. Een joystick heeft in het algemeen vier aansluitingen: nul, | + | Een joystick kan in twee richtinegn bewegen. De horizontale richting noemen we de x-richting en de vertikale richting de y-richting. Daarmee kun je twee dingen besturen met een enkele knop. Een joystick heeft in het algemeen vier aansluitingen: nul, Vcc (voedingsspanning) en twee signaal-aansluitingen, een voor elke richting. Van binnen heeft een joystick twee [[Arduino_-_PWM#De_schakeling|potmeters]] die zo zijn geschakeld dat de twee signaal-aansluitingen spanningen afgeven tussen nul en Vcc. In ruststand staat de joystick in het midden en zijn ook de spanningen voor x en y in het midden tussen 0 en Vcc. Een Arduino kan dus de stand van de joystick bepalen door die twee spanningen te meten en actie ondernemen op basis van die informatie. Een joystick gebruikt dan natuurlijk wel twee analoge ingangen van de Arduino. Geen probleem: je hebt er dan nog vier over. |
===De schakeling=== | ===De schakeling=== | ||
Extra benodigdheden: | Extra benodigdheden: | ||
| − | *1 | + | *1 joystick module |
| − | |||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
| − | |[[ | + | |[[File:joystick2.jpg]] |
|- | |- | ||
| − | | | + | |Een joystick module |
|} | |} | ||
| Line 21: | Line 20: | ||
===Uitleg=== | ===Uitleg=== | ||
| − | + | Voor de eenvoud van de schakeling bepalen we in dit project alleen de stand van de joystick in de x- en y-richting. Die stand wordt vervolgens via de seriele communicatie doorgegeven aan de PC. We hoeven dan alleen de joystick op de Arduino aan te sluiten. Daarbij gaat de pin voor rx in de A0-poort van de Arduino en de pin voor ry in de A1-poort. De analoge poorten hoeven niet te worden geinitialiseerd omdat die standaard gelden als input. De Setup() functie wordt alleen gebruikt om de seriele communicatie te starten. De Loop() functie meet de stand van de joystick in beide richtingen via de spanning op A0 en A1. Die spanning wordt gemete als een getal tussen 0 en 1024. Hierbij staat 1024 voor Vcc. Door dus te delen door 512 (de helft van Vcc), en 1 af te trekken krijg je een getal tussen -1 en 1. Bij 0 staat de joystick in het midden. Dit getal wordt vervolgens doorgegeven aan de computer via de seriele communicatie. | |
===Beetje spelen=== | ===Beetje spelen=== | ||
Revision as of 01:18, 26 January 2018
Een joystick kan in twee richtinegn bewegen. De horizontale richting noemen we de x-richting en de vertikale richting de y-richting. Daarmee kun je twee dingen besturen met een enkele knop. Een joystick heeft in het algemeen vier aansluitingen: nul, Vcc (voedingsspanning) en twee signaal-aansluitingen, een voor elke richting. Van binnen heeft een joystick twee potmeters die zo zijn geschakeld dat de twee signaal-aansluitingen spanningen afgeven tussen nul en Vcc. In ruststand staat de joystick in het midden en zijn ook de spanningen voor x en y in het midden tussen 0 en Vcc. Een Arduino kan dus de stand van de joystick bepalen door die twee spanningen te meten en actie ondernemen op basis van die informatie. Een joystick gebruikt dan natuurlijk wel twee analoge ingangen van de Arduino. Geen probleem: je hebt er dan nog vier over.
De schakeling
Extra benodigdheden:
- 1 joystick module
|
| Een joystick module |
Het programma
Hier de broncode van het programma
Uitleg
Voor de eenvoud van de schakeling bepalen we in dit project alleen de stand van de joystick in de x- en y-richting. Die stand wordt vervolgens via de seriele communicatie doorgegeven aan de PC. We hoeven dan alleen de joystick op de Arduino aan te sluiten. Daarbij gaat de pin voor rx in de A0-poort van de Arduino en de pin voor ry in de A1-poort. De analoge poorten hoeven niet te worden geinitialiseerd omdat die standaard gelden als input. De Setup() functie wordt alleen gebruikt om de seriele communicatie te starten. De Loop() functie meet de stand van de joystick in beide richtingen via de spanning op A0 en A1. Die spanning wordt gemete als een getal tussen 0 en 1024. Hierbij staat 1024 voor Vcc. Door dus te delen door 512 (de helft van Vcc), en 1 af te trekken krijg je een getal tussen -1 en 1. Bij 0 staat de joystick in het midden. Dit getal wordt vervolgens doorgegeven aan de computer via de seriele communicatie.
Beetje spelen
Verdiepende opdrachtjes
