Det er mange måter å overføre informasjon fra en person til en mikrokontroller eller datamaskin, og en av dem bruker styrespak. La oss se hvordan du kobler en analog joystick med to akser og en knapp til Arduino.
Det er nødvendig
- - Arduino;
- - toakset styrespak;
- - 3 motstander med en nominell verdi på 220 Ohm;
- - 1 RGB eller 3 konvensjonelle lysdioder.
Bruksanvisning
Trinn 1
Styrespaken er en praktisk og brukervennlig enhet for overføring av informasjon. Det er et stort antall typer joysticks når det gjelder antall frihetsgrader, prinsippet om å lese indikasjonene og teknologiene som brukes. Joysticks brukes oftest til å kontrollere bevegelsen til mekanismer, kontrollerte modeller, roboter. Den analoge styrespaken, som vi skal se på i dag, er et håndtak festet til en kuleledd med to gjensidig vinkelrette akser. Når knotten er vippet, roterer aksen potensiometerets bevegelige kontakt, på grunn av hvilken spenningen ved utgangen endres. Den analoge styrespaken har også en taktknapp som utløses når du trykker på håndtaket loddrett.
Steg 2
Koble joysticken i henhold til diagrammet nedenfor. Koble de analoge utgangene X og Y til styrespaken til analoge innganger A1 og A2 til Arduino, utgangen fra SW-knappen til digital inngang 8. Styrespaken drives av en spenning på +5 V.
Trinn 3
For å tydelig se hvordan styrespaken fungerer, la oss skrive en slik skisse. La oss erklære pinnene, angi driftsmodusene for dem. Legg merke til at i setup () -prosedyren setter vi switchPin-inngangen til et høyt nivå. Dette muliggjør den innebygde opptrekksmotstanden på denne porten. Hvis du ikke slår den på, når den ikke styres på joystick-knappen, vil den 8. Arduino-porten henge i luften og fange pickups. Dette vil føre til uønskede, kaotiske falske positive.
I loop () -prosedyren måler vi kontinuerlig tilstanden til knappen og viser den ved hjelp av LED-en på utgang 13. På grunn av at switchPin-inngangen blir trukket opp, lyser LED-en kontinuerlig, og når du trykker på knappen, slukker den, og ikke omvendt.
Deretter leser vi avlesningene av de to potensiometrene til styrespaken - utgangen fra X- og Y-aksene. Arduino har en 10-bit ADC, så verdiene som leses fra styrespaken ligger i området fra 0 til 1023. I midtposisjonen til styrespaken, som du kan se i illustrasjonen, er verdiene i regionen 500 omtrent midt i området.
Trinn 4
Vanligvis brukes en joystick til å kontrollere elektriske motorer. Men hvorfor ikke bruke den til å kontrollere lysstyrken til en LED, for eksempel? La oss koble en RGB-LED (eller tre vanlige LED-er) til digitale porter 9, 10 og 11 på Arduino i henhold til diagrammet ovenfor, uten å glemme selvfølgelig motstandene.
Trinn 5
Vi vil endre lysstyrken på de tilsvarende fargene når vi endrer styrespaken langs aksene, som vist på figuren. På grunn av det faktum at joysticken kanskje ikke er nøyaktig sentrert av produsenten og ikke har midten av skalaen, ikke rundt 512, men fra 490 til 525, kan LED-lampen lyse noe selv når joysticken er i nøytral posisjon. Hvis du vil at den skal være helt slått av, gjør du de nødvendige endringene i programmet.
Trinn 6
Basert på ovenstående diagram, vil vi skrive en skisse av Arduino som styrer lysstyrken til RGB LED ved hjelp av en joystick.
Først vil vi erklære korrespondansen mellom pins og to variabler - ledOn og prevSw - for å jobbe med knappen. I oppsettprosedyren () tilordner du funksjonene til pinnene og kobler mottaksmotstanden til knappepinnen med digitalWrite (swPin, HIGH) -kommandoen.
I sløyfen () definerer vi å trykke på styrespaken. Når du trykker på knappen, bytter vi driftsmodusene mellom "lommelykt" -modus og "fargemusikk" -modus.
I freeMode () -modus styres lysstyrken på lysdiodene ved å vippe styrespaken i forskjellige retninger: jo sterkere vippingen langs aksen er, desto lysere skinner den tilsvarende fargen. Videre blir transformasjonen av verdier overtatt av kartfunksjonen (verdi, fraLower, fromUpper, toLower, toUpper). Kart () -funksjonen overfører de målte verdiene (fra lav til høy) langs styrespakaksene til ønsket lysstyrkeområde (til lav, til høy). Du kan gjøre det samme med vanlige regneoperasjoner, men denne notasjonen er mye kortere.
I discoMode () -modus får tre farger vekselvis lysstyrke og slukkes. For å kunne gå ut av sløyfen når du trykker på knappen, sjekker vi hver iterasjon for å se om knappen har blitt trykket.
Trinn 7
Resultatet er en lommelykt laget av en trefarget RGB LED, hvor lysstyrken til hver farge er stilt inn ved hjelp av en joystick. Og når du trykker på knappen, aktiveres "fargemusikk" -modus. Selv om jeg bruker den, tvert imot, som et nattlys.
Dermed lærte vi hvordan vi kobler en analog to-akset joystick med en knapp til Arduino og leser avlesninger fra den. Du kan tenke på og implementere en mer interessant bruk av styrespaken enn vårt eksempel.