Hur Man Ansluter En Joystick Till Arduino

Innehållsförteckning:

Hur Man Ansluter En Joystick Till Arduino
Hur Man Ansluter En Joystick Till Arduino

Video: Hur Man Ansluter En Joystick Till Arduino

Video: Hur Man Ansluter En Joystick Till Arduino
Video: Arduino Analog joystick 2024, November
Anonim

Det finns många olika sätt att överföra information från en person till en mikrokontroller eller dator, och ett av dem använder en joystick. Låt oss se hur man ansluter en analog joystick med två axlar och en knapp till Arduino.

Styrspak med två axlar och en knapp
Styrspak med två axlar och en knapp

Det är nödvändigt

  • - Arduino;
  • - tvåaxlig joystick;
  • - 3 motstånd med ett nominellt värde på 220 Ohm;
  • - 1 RGB eller 3 konventionella lysdioder.

Instruktioner

Steg 1

Joysticken är en praktisk och lättanvänd enhet för överföring av information. Det finns ett stort antal typer av joysticks när det gäller antalet frihetsgrader, principen om att läsa indikationerna och den teknik som används. Joysticks används oftast för att styra rörelsen för alla mekanismer, kontrollerade modeller, robotar. Den analoga joysticken, som vi kommer att titta på idag, är ett handtag fäst vid en kulled med två ömsesidigt vinkelräta axlar. När vredet lutas roterar axeln potentiometerns rörliga kontakt, varigenom spänningen vid dess utgång ändras. Den analoga joysticken har också en taktknapp som utlöses när du trycker på handtaget vertikalt.

Joystick schematiskt diagram
Joystick schematiskt diagram

Steg 2

Anslut joysticken enligt diagrammet nedan. Anslut joysticks analoga utgångar X och Y till analoga ingångar A1 och A2 på Arduino, utgången från SW-knappen till digital ingång 8. Joysticken drivs av en spänning på +5 V.

Joystick kopplingsschema för Arduino
Joystick kopplingsschema för Arduino

Steg 3

För att tydligt se hur joysticken fungerar, låt oss skriva en sådan skiss. Låt oss förklara stiften, ställa in driftlägen för dem. Observera att i setup () -proceduren ställer vi in switchPin-ingången till en hög nivå. Detta möjliggör det inbyggda uppdragningsmotståndet på denna port. Om du inte slår på den, när joysticken inte trycks ned, kommer den 8: e Arduino-porten att hänga i luften och fånga pickups. Detta kommer att leda till oönskade, kaotiska falska positiva resultat.

I loop () -proceduren undersöker vi hela tiden knappens tillstånd och visar den med hjälp av lysdioden vid utgång 13. På grund av att switchPin-ingången dras upp lyser lysdioden konstant och när knappen trycks in släcks den och inte tvärtom.

Därefter läser vi avläsningarna av joystickens två potentiometrar - utgången från X- och Y-axlarna. Arduino har en 10-bitars ADC, så värdena som läses från joysticken ligger i intervallet 0 till 1023. I joystickens mittläge, som du kan se på bilden, är värdena i regionen 500 ungefär mitten av intervallet.

En skiss som visar hur joysticken fungerar
En skiss som visar hur joysticken fungerar

Steg 4

Vanligtvis används en joystick för att styra elmotorer. Men varför inte använda den för att till exempel styra ljusstyrkan på en LED? Låt oss ansluta en RGB-lysdiod (eller tre vanliga lysdioder) till digitala portar 9, 10 och 11 på Arduino enligt ovanstående diagram, för att inte glömma naturligtvis motstånden.

Joystick och RGB LED-kopplingsschema till Arduino
Joystick och RGB LED-kopplingsschema till Arduino

Steg 5

Vi kommer att ändra ljusstyrkan för motsvarande färger när vi ändrar joystickens position längs axlarna, som visas i figuren. På grund av att joysticken kanske inte är korrekt centrerad av tillverkaren och inte har mitten på skalan inte runt 512, men från 490 till 525, kan LED-lampan tändas något även när joysticken är i neutralt läge. Om du vill att den ska vara helt avstängd gör du lämpliga ändringar i programmet.

Diagram över ljusfördelningen för R-, G-, B-kanalerna längs X- och Y-axlarna
Diagram över ljusfördelningen för R-, G-, B-kanalerna längs X- och Y-axlarna

Steg 6

Baserat på ovanstående diagram kommer vi att skriva en skiss av Arduino som styr ljusstyrkan på RGB-LED med hjälp av en joystick.

Först kommer vi att förklara korrespondensen mellan stift och två variabler - ledOn och prevSw - för att arbeta med knappen. I installationsproceduren (), tilldela funktionerna till stiften och anslut uppdragsmotståndet till knappstiftet med kommandot digitalWrite (swPin, HIGH).

I loop () definierar vi att man trycker på joystick-knappen. När du trycker på knappen växlar vi driftlägena mellan "ficklampa" och "färgmusik".

I freeMode () -läget styrs lysdiodernas ljusstyrka genom att luta joysticken i olika riktningar: ju starkare lutningen längs axeln desto ljusare blir motsvarande färg. Dessutom övertas omvandlingen av värden av kartfunktionen (värde, fromLower, fromUpper, toLower, toUpper). Kartfunktionen () överför de uppmätta värdena (från låg till hög) längs joystickaxlarna till önskat ljusstyrkeområde (till låg, till hög). Du kan göra detsamma med vanliga aritmetiska operationer, men denna notation är mycket kortare.

I discoMode () -läget får tre färger växelvis ljusstyrka och släcks. För att kunna lämna slingan när du trycker på knappen kontrollerar vi varje iteration för att se om knappen har tryckts in.

Skiss för att styra ljusstyrkan på lysdioden med en analog joystick
Skiss för att styra ljusstyrkan på lysdioden med en analog joystick

Steg 7

Resultatet är en ficklampa gjord av en trefärgad RGB-LED, vars ljusstyrka ställs in med en joystick. Och när du trycker på knappen aktiveras "färgmusik" -läget. Även om jag använder det tvärtom som nattlampa.

Således lärde vi oss hur man ansluter en analog tvåaxlig joystick med en knapp till Arduino och läser avläsningar från den. Du kan tänka på och implementera en mer intressant användning av joysticken än vårt exempel.

Rekommenderad: