Der er en lang række måder at overføre information fra en person til en mikrocontroller eller computer, og en af dem bruger et joystick. Lad os se, hvordan man forbinder et analogt joystick med to akser og en knap til Arduino.
Er det nødvendigt
- - Arduino;
- - toakset joystick
- - 3 modstande med en nominel værdi på 220 Ohm;
- - 1 RGB eller 3 konventionelle lysdioder.
Instruktioner
Trin 1
Joysticket er en praktisk og brugervenlig enhed til transmission af information. Der er et stort antal typer joystick med hensyn til antallet af frihedsgrader, princippet om at læse indikationerne og de anvendte teknologier. Joysticks bruges oftest til at kontrollere bevægelsen af mekanismer, kontrollerede modeller og robotter. Den analoge joystick, som vi vil se på i dag, er et håndtag fastgjort til en kugleled med to indbyrdes vinkelrette akser. Når drejeknappen vippes, drejer aksen potentiometerets bevægelige kontakt, hvilket medfører, at spændingen ved dets udgang ændres. Den analoge joystick har også en taktknap, der udløses, når du trykker på håndtaget lodret.
Trin 2
Tilslut joysticket i henhold til nedenstående diagram. Tilslut de analoge udgange X og Y fra joysticket til analoge indgange A1 og A2 på Arduino, udgangen fra SW-knappen til den digitale indgang 8. Joysticket får strøm fra +5 V.
Trin 3
For tydeligt at se, hvordan joysticket fungerer, lad os skrive en sådan skitse. Lad os erklære stifterne, indstille driftsformer for dem. Bemærk, at vi i setup () -proceduren indstiller switchPin-indgangen til et højt niveau. Dette muliggør den indbyggede pull-up modstand på denne port. Hvis du ikke tænder den, når 8. joystick-knappen ikke trykkes på, vil den 8. Arduino-port hænge i luften og fange pickupper. Dette vil føre til uønskede, kaotiske falske positive.
I loop () -proceduren undersøger vi konstant knapens tilstand og viser den ved hjælp af LED ved udgang 13. På grund af at switchPin-indgangen trækkes op, lyser LED'en konstant, og når der trykkes på knappen, slukkes den og ikke omvendt.
Dernæst læser vi aflæsningerne af joystickets to potentiometre - output af X- og Y-akserne. Arduino har en 10-bit ADC, så værdierne, der læses fra joysticket, ligger i området fra 0 til 1023. I joystickets midterste position, som du kan se i illustrationen, er værdierne i regionen 500 omtrent midt i området.
Trin 4
Normalt bruges et joystick til at styre elektriske motorer. Men hvorfor ikke bruge den til f.eks. At kontrollere lysstyrken på en LED? Lad os forbinde en RGB LED (eller tre almindelige lysdioder) til digitale porte 9, 10 og 11 på Arduino i henhold til ovenstående diagram, uden at glemme selvfølgelig modstandene.
Trin 5
Vi ændrer lysstyrken på de tilsvarende farver, når vi ændrer joystickets position langs akserne, som vist på figuren. På grund af det faktum, at joysticket muligvis ikke er nøjagtigt centreret af producenten og ikke har midten af skalaen ikke omkring 512, men fra 490 til 525, kan LED'en lyse let, selv når joysticket er i neutral position. Hvis du vil have det helt slukket, skal du foretage de relevante ændringer til programmet.
Trin 6
Baseret på ovenstående diagram vil vi skrive en skitse af Arduino-styringen af RGB-lysstyrken ved hjælp af et joystick.
Først erklærer vi korrespondancen mellem stifter og to variabler - ledOn og prevSw - for at arbejde med knappen. I installationsproceduren () tildeles funktionerne til stifterne og forbind pull-up modstanden til knapstiften med kommandoen digitalWrite (swPin, HIGH).
I sløjfen () definerer vi tryk på joystick-knappen. Når du trykker på knappen, skifter vi driftstilstandene mellem "lommelygte" -tilstand og "farvemusik" -tilstand.
I freeMode () -tilstand styres lysstyrken på lysdioderne ved at vippe joysticket i forskellige retninger: jo stærkere hældningen langs aksen, jo lysere skinner den tilsvarende farve. Desuden overtages værditransformationen af kortfunktionen (værdi, fraLængere, fraUpper, tilLængere, tilUpper). Kortfunktionen () overfører de målte værdier (fra lav til høj) langs joystickakserne til det ønskede lysstyrkeområde (til lav, til høj). Du kan gøre det samme med almindelige aritmetiske operationer, men denne betegnelse er meget kortere.
I discoMode () -tilstand får tre farver skiftevis lysstyrke og slukkes. For at kunne forlade sløjfen, når der trykkes på knappen, kontrollerer vi hver iteration for at se, om der er blevet trykket på knappen.
Trin 7
Resultatet er en lommelygte lavet af en trefarvet RGB-LED, hvis lysstyrke indstilles ved hjælp af et joystick. Og når du trykker på knappen, aktiveres tilstanden "farvemusik". Selvom jeg bruger det tværtimod som et natlys.
Således lærte vi, hvordan man forbinder et analogt to-akset joystick med en knap til Arduino og læser aflæsninger fra det. Du kan tænke på og implementere en mere interessant brug af joysticket end vores eksempel.