Kazalo:

Servo pozicioniranje s tipkovnico: 3 koraki
Servo pozicioniranje s tipkovnico: 3 koraki

Video: Servo pozicioniranje s tipkovnico: 3 koraki

Video: Servo pozicioniranje s tipkovnico: 3 koraki
Video: Как управлять серводвигателем | Внешний ПЛК Arduino 2024, Julij
Anonim
Servo pozicioniranje s tipkovnico
Servo pozicioniranje s tipkovnico

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

Povežite tipkovnico
Povežite tipkovnico
Povežite tipkovnico
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

  1. Priključite 5V pin na napajalno tirnico (rdeča)
  2. 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

Dodajte mikro servo
Dodajte mikro servo
Dodajte mikro servo
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: