Hoe Om 'n Joystick Aan Arduino Te Koppel

INHOUDSOPGAWE:

Hoe Om 'n Joystick Aan Arduino Te Koppel
Hoe Om 'n Joystick Aan Arduino Te Koppel

Video: Hoe Om 'n Joystick Aan Arduino Te Koppel

Video: Hoe Om 'n Joystick Aan Arduino Te Koppel
Video: How to connect and use an Analog Joystick with an Arduino - Tutorial 2024, Maart
Anonim

Daar is 'n wye verskeidenheid maniere om inligting van 'n persoon na 'n mikrobeheerder of rekenaar oor te dra, en een daarvan gebruik 'n joystick. Kom ons kyk hoe om 'n analoog joystick met twee asse en 'n knoppie aan die Arduino te koppel.

Joystick met twee asse en 'n knoppie
Joystick met twee asse en 'n knoppie

Dit is nodig

  • - Arduino;
  • - tweeas-joystick;
  • - 3 weerstande met 'n nominale waarde van 220 Ohm;
  • - 1 RGB of 3 gewone LED's.

Instruksies

Stap 1

Die joystick is 'n gerieflike en gebruiksvriendelike toestel om inligting oor te dra. Daar is 'n groot aantal soorte joysticks wat betref die aantal vryheidsgrade, die beginsel van die lees van die aanduidings en die tegnologieë wat gebruik word. Joysticks word meestal gebruik om die beweging van meganismes, beheerde modelle en robotte te beheer. Die analoge joystick, waarna ons vandag gaan kyk, is 'n handvatsel wat aan 'n kogelgewrig met twee onderlinge loodregte ase vas is. As die knop gekantel is, draai die as die beweegbare kontak van die potensiometer, waardeur die spanning by sy uitset verander. Die analoog joystick het ook 'n taktknop wat geaktiveer word as u die handvatsel vertikaal druk.

Joystick skematiese diagram
Joystick skematiese diagram

Stap 2

Verbind die joystick volgens die onderstaande diagram. Verbind die analoge uitgang X en Y van die joystick met analoge ingange A1 en A2 van die Arduino, die uitgang van die SW-knoppie met digitale ingang 8. Die joystick word aangedryf deur 'n spanning van +5 V.

Joystick-bedradingsdiagram vir Arduino
Joystick-bedradingsdiagram vir Arduino

Stap 3

Laat ons so 'n skets skryf om duidelik te sien hoe die joystick werk. Laat ons die penne verklaar, stel die werkswyses daarvoor in. Let op dat ons in die setup () -prosedure die switchPin-invoer op 'n hoë vlak stel. Dit maak die ingeboude optrekweerstand op hierdie poort moontlik. As u dit nie aanskakel nie, hang die 8ste Arduino-poort in die lug en haal bakkies as die joystick nie gedruk word nie. Dit sal lei tot ongewenste, chaotiese vals positiewe.

In die loop () -prosedure ondersoek ons die toestand van die knoppie voortdurend en wys dit met behulp van die LED by uitgang 13. As gevolg van die skakelaarPin-invoer wat opgetrek word, is die LED konstant aan, en as die knoppie gedruk word, gaan dit uit, en nie andersom nie.

Vervolgens lees ons die metings van die twee potensiometers van die joystick - die uitvoer van die X- en Y-as. Die Arduino het 'n 10-bit ADC, dus die waardes wat van die joystick gelees word, lê tussen 0 en 1023. In die middelste posisie van die joystick, soos u in die illustrasie kan sien, is die waardes in die omgewing van 500 ongeveer die middel van die reeks.

'N Skets om die werking van die joystick te demonstreer
'N Skets om die werking van die joystick te demonstreer

Stap 4

Gewoonlik word 'n joystick gebruik om elektriese motors te beheer. Maar waarom gebruik u dit nie om byvoorbeeld die helderheid van 'n LED te beheer nie? Kom ons koppel 'n RGB LED (of drie gewone LED's) aan die digitale poorte 9, 10 en 11 van die Arduino volgens die bostaande diagram, en vergeet natuurlik nie die weerstande nie.

Joystick en RGB LED-bedradingsdiagram vir Arduino
Joystick en RGB LED-bedradingsdiagram vir Arduino

Stap 5

Ons sal die helderheid van die ooreenstemmende kleure verander as ons die joystick langs die as verander, soos in die figuur getoon. Vanweë die feit dat die joystick dalk nie akkuraat deur die vervaardiger gesentreer is nie en die middel van die skaal nie ongeveer 512 is nie, maar van 490 tot 525, kan die LED effens brand, selfs as die joystick in die neutrale posisie is. As u wil hê dat dit heeltemal moet afgeskakel word, moet u die toepaslike wysigings aan die program aanbring.

Diagram van die helderheidsverdeling van die R-, G-, B-kanale langs die X- en Y-as
Diagram van die helderheidsverdeling van die R-, G-, B-kanale langs die X- en Y-as

Stap 6

Op grond van die bostaande diagram skryf ons 'n skets van die Arduino wat die helderheid van die RGB LED beheer met behulp van 'n joystick.

Eerstens sal ons die ooreenstemming van penne en twee veranderlikes - ledOn en prevSw - verklaar vir die werk met die knoppie. Ken die funksies aan die penne in die opstelprosedure () en verbind die optrekweerstand aan die knopknop met die opdrag digitalWrite (swPin, HIGH).

In die lus () definieer ons die druk van die joystick-knoppie. As u op die knoppie druk, skakel ons tussen die "flitslig" -modus en die "kleurmusiek" -modus.

In die modus FreeMode () word die helderheid van die LED's beheer deur die joystick in verskillende rigtings te kantel: hoe sterker die kanteling langs die as is, hoe helderder word die ooreenstemmende kleur. Boonop word die transformasie van waardes deur die kaartfunksie oorgeneem (waarde, van Laer, van Bo, tot Laer, na Bo). Die kaart () -funksie dra die gemete waardes (van laag na hoog) langs die joystick-asse oor na die gewenste helderheidsbereik (na laag, na hoog). U kan dieselfde doen met gewone rekenkundige bewerkings, maar hierdie notasie is baie korter.

In die discoMode () -modus kry drie kleure afwisselend helderheid en gaan dit uit. Om die lus te kan verlaat as u op die knoppie druk, kyk ons na elke iterasie om te sien of die knoppie ingedruk is.

Skets vir die beheer van die helderheid van die LED met behulp van 'n analoog joystick
Skets vir die beheer van die helderheid van die LED met behulp van 'n analoog joystick

Stap 7

Die resultaat is 'n flitslig van 'n driekleurige RGB-LED wat die helderheid van elke kleur met behulp van 'n joystick stel. En as u op die knoppie druk, word die "kleurmusiek" -modus geaktiveer. Alhoewel ek dit gebruik, inteendeel, as 'n naglig.

So het ons geleer hoe om 'n analoog tweeassige joystick met 'n knoppie aan die Arduino te koppel en daaruit lesings te lees. U kan 'n interessanter gebruik van die joystick bedink en implementeer as ons voorbeeld.

Aanbeveel: