Arduino-joystickmodule:hoe u er effectief een kunt maken?
Joystick-module
Ben je momenteel bezig met projecten op het gebied van beweging en robotica? Dan is er een kans dat je waarschijnlijk hebt gehoord over de Arduino Joystick-module, maar je weet niet hoe je er een moet maken.
Of wil je misschien meer informatie over hoe een Arduino joystick module werkt?
Dan ben je hier aan het juiste adres.
Het doel van een Arduino Joystick is om beweging naar een Arduino te communiceren. En hij doet dit in 2D (2-assig), waardoor hij geschikt is voor bewegings- en robotica-toepassingen.
In dit artikel leer je dus alles over de Arduino-joystickmodule, hoe deze werkt en hoe je een eenvoudig Arduino-joystickcircuit maakt.
Ben je klaar? Laten we erin springen!
Wat is een joystickmodule?
Er is bijna geen robotproject waarvoor geen joystick nodig is. Het is soms moeilijk om een controller te vinden die geschikt is voor uw projecten, en het kan zelfs duur zijn. Maar een joystickmodule biedt een meer betaalbare manier om hetzelfde resultaat te bereiken.
Ook werkt de joystickmodule op dezelfde manier als de joysticks in analoge gamepads. De belangrijkste componenten zijn twee potentiometers die in een hoek van 90 graden zijn gekanteld. Verder is er een verbinding tussen een korte stok (met veren in het midden) en de potmeters.
Potentiometers
De joystickmodule kan in rust ongeveer 2,5 V van de X- en Y-as produceren. Als u nu de joystick beweegt, varieert de uitvoer van 0V tot 5V. Dit is echter afhankelijk van de richting.
Plus, als je een microcontroller met de joystickmodule gebruikt, zou de werkelijke waarde in de rustpositie rond de 512 zijn. Dus als je deze joystick beweegt, zie je de waarden veranderen van 0 naar 1023, maar dit hangt af van de positie.
Pinconfiguratie
Hier is de pinconfiguratie voor de joystickmodule:
Pinnummer | Pinnaam | Beschrijving |
1 | GND | De aardklem van de module |
2 | +5V | De positieve voedingsklem van de module |
3 | VRx | De spanning evenredig met de X-as |
4 | VRy | De spanning evenredig met de Y-as |
5 | ZW | De schakelaar van de module |
Features
Dit zijn de belangrijkste kenmerken van de Arduino-joystickmodule:
- Het heeft twee onafhankelijke potentiometers voor elke as (X en Y)
- Het weegt niet veel
- Je kunt de module eenvoudig koppelen met de meeste microcontrollers of Arduino
- Het keert automatisch terug naar de middenpositie wanneer het niet in gebruik is
- Het heeft ook een kopvormige knop
Technische specificaties
De specificaties van de joystickmodule omvatten:
- Het heeft een bedrijfsspanning van 5V
- De waarde van de interne potentiometer is 10k
- De bedrijfstemperatuur is ongeveer 0 tot 70 graden Celsius
- De draden van de pin-interface zijn 2,54 mm
- De afmetingen van de joystickmodule zijn:1,57 in x 1,02 in x 1,26 in (4,0 cm x 2,6 cm x 3,2 cm)
- Het heeft vijf pinnen
- Twee potentiometers regelen de horizontale richtingen en verticale richtingen van de module.
Schematisch diagram
De afbeelding hieronder toont het volledige schema van de joystickmodule. Zoals we eerder vermeldden, heeft de module twee potentiometers die de X- en Y-as regelen.
Schema's voor joystickmodule
Bovendien bewegen beide potentiometers (10k) onafhankelijk van elkaar. Met andere woorden, u kunt ze afzonderlijk en in hun richting verplaatsen. Er is ook een interne verbinding van de schakelaar (SW) pin naar de drukknop.
Joystick koppelen met Arduino
Joystick-modules zijn compatibel met veel microcontrollers zoals Raspberry Pi, Arduino en andere. Bovendien is de interface eenvoudig en moet u eerst de VRx- en VRy-aspinnen aansluiten op de ADC-pinnen van de microcontroller.
Als u van plan bent een schakelaar te gebruiken, moet u de knop ook verbinden met de digitale pinnen van de microcontroller.
Bekijk het onderstaande diagram om te begrijpen hoe u de joystickmodule op een microcontroller kunt aansluiten.
Joystickmodule naar microcontroller
Nu zal het volgende diagram u laten zien hoe u een joystickmodule met een Arduino kunt verbinden. Met dit diagram kun je de module op de Arduino aansluiten. Je krijgt ook een output afhankelijk van de richting waarin je de joystickknop beweegt.
Joystick-module naar Arduino
Als u klaar bent met interfacing, zullen we zien dat elke richting een vast uitvoerbereik heeft. De volgende afbeelding toont u de uitvoer voor de X- en Y-as, afhankelijk van de beweging van de joystickmodule in de vier richtingen, +X, -X, +Y en –Y. Er zullen ook enkele analoge waarden zijn als u de knop diagonaal beweegt.
Bewegingsinstructies
Als je wilt weten wanneer je je joystickknop indrukt, kun je ook de SW-pin aansluiten op digitale pin 8 van de Arduino.
Bovendien heeft de joystick stroom nodig om correct te werken. Sluit dus de VCC-pin aan op de 5V-terminal van de Arduino en de GND op de GND-terminal van de Arduino.
Arduino-code
Het is vrij eenvoudig om dit programma te coderen op Arduino IDE. Dus om de beste resultaten te krijgen, meet je de beweging van de joystick vanaf één digitale ingangspen en twee analoge ingangen. Vervolgens zal de Arduino de impact op uw monitor weergeven.
Hier is het beste deel
U hebt geen bibliotheek nodig om dit programma te coderen. Het leest eenvoudig de analoge ingang en geeft de waarden weer die het ervan krijgt. Bovendien toont het ook de output van de druk op de knop.
Hier is de ruwe schets van de code:
- #define joyX A0
- #define joyY A1
- ongeldig instellen () {
- Seriële . begin ( 9600 );
- }
- ongeldig lus () {
- // plaats hier je hoofdcode om herhaaldelijk uit te voeren:
- xWaarde = analoog lezen ( joyX );
- yWaarde = analoog lezen ( joyY );
- //print de waarden met om te plotten of te bekijken
- Seriële . afdrukken ( xWaarde );
- Seriële . afdrukken ( ”\t” );
- Seriële . println ( yWaarde );
Afbeelding met de Arduino-code
In kaart brengen
Soms gaat het niet alleen om het lezen van analoge waarden, en kan het nodig zijn om uw module toe te wijzen aan een display of andere interfaces. Dus om je daarbij te helpen, laten we je zien hoe je de waarden van de bovenstaande code in kaart brengt in een 8×8 led-matrix.
Arduino-toewijzing
Het resultaat van dit proces is dat de weergegeven pixels met de joystick worden verplaatst. Het is ook gemakkelijk om de code te wijzigen om deze toe te wijzen aan een OLED- of grafisch scherm.
- #include “LedControl.h”
- #define joyX A0
- #define joyY A1
- int xMap , yKaart , xWaarde , yWaarde ;
- LedControl lc = LedControl ( 12 , 11 , 10 , 1 );
- ongeldig instellen () {
- Seriële . begin ( 115200 );
- lc . afsluiten ( 0 , onwaar );
- /* Stel de helderheid in op een gemiddelde waarde */
- lc . setIntensity ( 0 , 8 );
- /* en wis het scherm */
- lc . clearDisplay ( 0 );
- }
- ongeldig lus () {
- // plaats hier je hoofdcode om herhaaldelijk uit te voeren:
- xWaarde = analoog lezen ( joyX );
- yWaarde = analoog lezen ( joyY );
- xMap = kaart ( xWaarde , 0 , 1023 , 0 , 7 );
- yKaart = kaart ( yWaarde , 0 , 1023 , 7 , 0 );
- lc . setLed ( 0 , xMap , yKaart , waar );
- lc . clearDisplay ( 0 );
- }
Afbeelding van code die nodig is om de Arduino toe te wijzen aan een OLED- of grafisch display
Opmerking:de bovenstaande code laat zien dat u de functie map() kunt gebruiken om de bereiken in kaart te brengen om aan uw voorkeuren te voldoen.
Dus als je alles goed hebt gedaan, zou de uitvoer op je seriële monitor er als volgt uit moeten zien:
Toepassingen
Hier zijn enkele toepassingen van de Arduino Joystick-module:
- Je kunt de joystickmodule gebruiken in robotica
Robotdrone
- Je kunt ook de beweging van een beweegbare camera regelen
Beweegbare camera
- Een breed scala aan bewegingstoepassingen
Afronding naar boven
Als je het woord Joystick hoort, denk je als eerste aan gamecontrollers. Er zijn echter zoveel spannende toepassingen van de joystickmodule als het gaat om doe-het-zelf-elektronica.
Spelcontrollers
Bovendien werken deze modules voornamelijk voor doe-het-zelfprojecten op basis van Arduino en robotbesturing. Zoals we eerder hebben besproken, heeft de joystickmodule eerst analoge uitgang vrijgegeven om de analoge ingang te voeden, afhankelijk van de horizontale of verticale beweging van de stick.
Nou, dat rondt dit artikel af. Als u vragen of suggesties heeft, neem dan gerust contact met ons op. We zijn altijd blij om te helpen.
Industriële technologie
- Een aanpasbare ponsbare toetsenbordknop maken
- Hoe Arduino Mega te interfacen met NEO-6M GPS-module
- Arduino-joystick
- Muziek maken met een Arduino
- Hoe maak je op Arduino gebaseerde automatische deuropening
- Hoe maak je een Arduino Bluetooth-gestuurde auto
- Hoe maak je thuis een mini-oscilloscoop met Arduino Nano
- Arduino-zelfstudie:JARVIS v1 | Hoe maak je een huisautomatisering
- rDUINOScope
- Hoe maak je thuis een robot met gebarenbesturing
- Hoe maak je thuis een grote 3D-printer met Arduino