Kazalo:
- 1. korak: Povežite tipkovnico
- Korak: Dodajte mikro servo
- Korak 3: Spremenite kodo, da uporabite tipkovnico na strežniku
Video: Servo pozicioniranje s tipkovnico: 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:08
V tem navodilu bomo ustvarili projekt, ki bo upravljal Micro-Servo s tipkovnico, ki jo izvaja z Arduino Uno.
Uporabljeni materiali:
Arduino Uno
Ogledna plošča
4x4 tipkovnica
Mikro servo
1. korak: Povežite tipkovnico
Prva misel, ki jo morate storiti, je, da napajalno tirnico in ozemljitveno tirnico ožičite na svoji plošči iz vašega Arduina
- Priključite 5V pin na napajalno tirnico (rdeča)
- Ozemljitveni zatič (GND) priključite na ozemljitveno tirnico (modra)
Zdaj, ko ima plošča moč in je ozemljena, lahko začnemo ožičiti naše komponente.
Ožičenje tipkovnice je preprosto, vendar morate upoštevati nožice na tipkovnici in arduinu. To nam bo prišlo prav, ko se bomo osredotočili na svojo kodo.
Pri uporabi žic ne pozabite začeti na levi!
- Prvi pin je na 13
- Drugi pin je na 12
- Tretji pin je na 11
- Četrti zatič gre na 10
- Peti zatič na 9
- Šesti pin na 8
- Sedmi pin na 7
- Osmi pin na 6
Pri ožičenju tipkovnice ne pozabite, da je digitalni pwm pin odprt. Potrebovali ga bomo za mikro servo
Preden pridemo do kode, se prepričajte, da ste namestili knjižnico tipkovnice. Najdete ga v skici, nato na zavihku skice, vključite knjižnico. Brez nje ne boste mogli uporabljati tipkovnice.
Zdaj pa se obrnimo na kodo in se prepričajmo, da tipkovnica deluje in daje obiskane vrednosti
Hitre opombe: Preverite tipkovnico z izjavo if, sicer ne bo delovala. Prav tako bodite previdni pri zamudah, saj se bodo zapletli z gumbi, ki se registrirajo s tipkovnice
#vključi
vrstice const bajtov = 4; // štiri vrstice, ker je tipkovnica polna
stolpci const byte = 4; // štiri stolpce, enako kot zgoraj
gumbi char [vrstice] [stolpci] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
bajtna vrsticaP [vrstice] = {13, 12, 11, 10}; // vrstni zatiči tipkovnice
bajtni stolpciP [stolpci] = {9, 8, 7, 6}; // zatiči stolpcev tipkovnice
Tipkovnica = Tipkovnica (makeKeymap (gumbi), vrsticaP, stolpciP, vrstice, stolpci); // ustvarite tipkovnico
void setup () {
Serial.begin (9600); }
void loop () {
char buttonPressed = pad.getKey (); // dobimo char s tipkovnice if (buttonPressed) // pokažemo, kateri gumb je bil pritisnjen na tipkovnici {Serial.println (buttonPressed); }}
Korak: Dodajte mikro servo
Zdaj pa dodajmo servo motor. To je res enostavno dodati našemu trenutnemu projektu, saj ima mikro strežnik samo tri žice.
- Rjava žica gre na ozemljitveno tirnico na plošči
- Rdeča gre za Power rail
- Orange gre na Pin 3 na Arduinu. Ne pozabite, da mora mikro strežnik imeti PWM pin na Arduinu. To je posledica servomotorja, ki uporablja TIMER2
Zdaj pa se samo prepričajmo, da smo mikro servo pravilno povezali in da se premika
#include #include "Servo.h"
vrstice const bajtov = 4; // štiri vrstice, ker je tipkovnica polna
stolpci const byte = 4; // štiri stolpce, enako kot zgoraj
gumbi char [vrstice] [stolpci] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
bajtna vrsticaP [vrstice] = {13, 12, 11, 10}; // vrstni zatiči tipkovnice
bajtni stolpciP [stolpci] = {9, 8, 7, 6}; // zatiči stolpcev tipkovnice
Tipkovnica = Tipkovnica (makeKeymap (gumbi), vrsticaP, stolpciP, vrstice, stolpci); // ustvarite tipkovnico
Servo tokServo; // ustvarite servo objekt za nadzor servo
// na večini plošč je mogoče ustvariti dvanajst servo objektov
int pos = 0; // spremenljivka za shranjevanje položaja servo
void setup () {
Serial.begin (9600); currentServo.attach (3); // pritrdi servo na pin 9 na servo objekt
}
void loop () {
char buttonPressed = pad.getKey (); // dobimo char s tipkovnice if (buttonPressed) // pokažemo, kateri gumb je bil pritisnjen na tipkovnici {Serial.println (buttonPressed); }
currentServo.write (95);
}
Korak 3: Spremenite kodo, da uporabite tipkovnico na strežniku
Vedite, da bomo kodo spremenili tako, da se ob pritisku na določen gumb na tipkovnici servo premakne na določen položaj. Najprej pomembna stvar. Položaj servo za 0 je bil čuden. Ker sem imel servo z neprekinjenim vrtenjem, se je servo, ko se je približal 0, le začel vrteti. Številka, ki sem jo vnesel v kodo, je bila čim nižja, ne da bi se to zgodilo. Kakorkoli že, tukaj je moja zadnja koda:
#include #include
vrstice const bajtov = 4; // štiri vrstice, ker je tipkovnica polna
stolpci const byte = 4; // štiri stolpce, enako kot zgoraj
gumbi char [vrstice] [stolpci] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
bajtna vrsticaP [vrstice] = {13, 12, 11, 10}; // vrstni zatiči tipkovnice
bajtni stolpciP [stolpci] = {9, 8, 7, 6}; // zatiči stolpcev tipkovnice
Tipkovnica = Tipkovnica (makeKeymap (gumbi), vrsticaP, stolpciP, vrstice, stolpci); // ustvarite tipkovnico
Servo myServo; //
void setup () {
Serial.begin (9600); myServo.attach (5); // pritrdi servo na zatiču 9 na servo objekt}
void loop () {
char key = pad.getKey (); // dobimo char s tipkovnice if (key == '0') {myServo.write (11); Serial.println ("0"); zamuda (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); zamuda (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); zamuda (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); zamuda (15); }
če (ključ == '4')
{myServo.write (48); Serial.println ("4"); zamuda (15); }
če (ključ == '5')
{myServo.write (60); Serial.println ("5"); zamuda (15); }
če (ključ == '6')
{myServo.write (72); Serial.println ("6"); zamuda (15); }
če (ključ == '7')
{myServo.write (84); Serial.println ("7"); zamuda (15); }
če (ključ == '8')
{myServo.write (96); Serial.println ("8"); zamuda (15); }
če (ključ == '9')
{myServo.write (108); Serial.println ("9"); zamuda (15); }
če (ključ == '*')
{myServo.write (120); Serial.println ("*"); zamuda (15); }
če (ključ == '#')
{myServo.write (132); Serial.println ("#"); zamuda (15); }
če (ključ == 'A')
{myServo.write (146); Serial.println ("A"); zamuda (15); }
če (ključ == 'B')
{myServo.write (158); Serial.println ("B"); zamuda (15); }
če (ključ == 'C')
{myServo.write (170); Serial.println ("C"); zamuda (15); }
če (ključ == 'D')
{myServo.write (180); Serial.println ("D"); zamuda (15); }}
Priporočena:
Etui za tipkovnico Preonic Rev 3: 4 koraki
Etui za tipkovnico Preonic Rev 3: Pred kratkim sem kupil Preonic Rev. 3 pri Drop.com (vtič brez sramu: https://drop.com/?referer=ZER4PR) in komaj čakal, da ga sestavim. Na žalost nisem naredil dovolj raziskav, da bi ugotovil, da PCB Rev. 3 ne bi ustrezal ohišjem Rev.2 in večina
DIY analogni klicalnik na USB tipkovnico: 4 koraki
DIY Analog Dialer to USB Keyboard: Ta projekt sem naredil samo za zabavo, vendar ta stvar deluje kot običajna tipkovnica z vsem
Arduino kalkulator s tipkovnico 4X4: 4 koraki (s slikami)
Arduino kalkulator z uporabo tipkovnice 4X4: V tej vadnici bomo z Arduinom izdelali lasten kalkulator. Vrednosti lahko pošljete prek tipkovnice (tipkovnica 4 × 4), rezultat pa si lahko ogledate na LCD zaslonu. Ta kalkulator lahko izvaja preproste operacije, kot so seštevanje, odštevanje, množenje
DIY krmilnik za tipkovnico za MAME in virtualni fliper: 4 koraki (s slikami)
DIY krmilnik za tipkovnico za MAME in virtualni fliper: Ta niz navodil vam omogoča, da izdelate svoj krmilnik tipkovnice s starimi tipkovnicami za ceno nekaj žice, spajkanja in kosa lesa. Ti krmilniki so bili uporabljeni v mojih projektih MAME in Virtual Pinball Oglejte si Virtual Pinball Inst
Uporaba Arduino Uno za XYZ pozicioniranje 6 DOF robotske roke: 4 koraki
Uporaba Arduino Uno za XYZ pozicioniranje robotske roke 6 DOF: Ta projekt govori o izvajanju kratke in razmeroma enostavne skice Arduino za zagotavljanje inverzne kinematične postavitve XYZ. Zgradil sem 6 servo robotsko roko, a ko sem prišel do iskanja programske opreme za njeno izvajanje, ni bilo veliko razen custa