Satura rādītājs:

Servo pozicionēšana ar tastatūru: 3 soļi
Servo pozicionēšana ar tastatūru: 3 soļi

Video: Servo pozicionēšana ar tastatūru: 3 soļi

Video: Servo pozicionēšana ar tastatūru: 3 soļi
Video: Как управлять серводвигателем | Внешний ПЛК Arduino 2024, Novembris
Anonim
Servo pozicionēšana ar tastatūru
Servo pozicionēšana ar tastatūru

Šajā pamācībā mēs izveidosim projektu, kas kontrolēs Micro-Servo ar tastatūru, kas to darbina ar Arduino Uno.

Izmantotie materiāli:

Arduino Uno

Maizes dēlis

4x4 tastatūra

Mikroservo

1. darbība: pievienojiet tastatūru

Pieslēdziet tastatūru
Pieslēdziet tastatūru
Pieslēdziet tastatūru
Pieslēdziet tastatūru

Pati pirmā doma, kas jums jādara, ir savienot maizes dēļa barošanas sliedi un zemējuma sliedi no Arduino

  1. Pievienojiet 5V tapu barošanas sliedei (sarkana)
  2. Pievienojiet zemējuma tapu (GND) zemējuma sliedei (zila)

Tagad, kad maizei ir spēks un tā ir iezemēta, mēs varam sākt savienot komponentus.

Tastatūras savienošana ir vienkārša, taču jums jāņem vērā tastatūras un arduino tapas. Tas noderēs, ja pievērsīsim uzmanību savam kodam.

Lietojot vadus, atcerieties sākt no kreisās puses!

  • Pirmā tapa iet uz 13
  • Otrā tapa iet uz 12
  • Trešā tapa iet uz 11
  • Ceturtā tapa iet uz 10
  • Piektā tapa līdz 9
  • Sestā tapa līdz 8
  • Septītā tapa līdz 7
  • Astotā tapa līdz 6

Pieslēdzot tastatūru, neaizmirstiet turēt vaļā digitālo pwm tapu. Mums tas būs vajadzīgs mikroservo

Pirms mēs nonākam pie koda, pārliecinieties, vai esat instalējis tastatūras bibliotēku. To var atrast jūsu skicē, pēc tam skices cilnē, iekļaujot bibliotēku. Bez tā jūs nevarēsit izmantot tastatūru.

Tagad pievērsīsimies kodam un pārliecinieties, vai tastatūra darbojas un sniedz apmeklētās vērtības

Ātrās piezīmes: Pārliecinieties, vai jums ir if paziņojums, lai pārbaudītu tastatūru, pretējā gadījumā tā nedarbosies. Esiet piesardzīgs arī ar kavēšanos, jo tās sajauksies ar taustiņu reģistrētām pogām

#iekļaut

const baitu rindas = 4; // četras rindas, jo tastatūra ir pilna

const baitu kolonnas = 4; // četras kolonnas, tādas pašas kā iepriekš

char pogas [rindas] [kolonnas] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', '' C '}, {'*',' 0 ','#',' D '}};

baitu rindaP [rindas] = {13, 12, 11, 10}; // tastatūras rindas tapas

baitu kolonnasP [kolonnas] = {9, 8, 7, 6}; // tastatūras kolonnu tapas

Tastatūras paliktnis = Tastatūra (makeKeymap (pogas), rinda P, kolonnasP, rindas, kolonnas); // izveidot tastatūru

void setup () {

Sērijas sākums (9600); }

void loop () {

char pogaNospiests = pad.getKey (); // iegūt simbolu no tastatūras, ja (buttonPressed) // parāda, kura poga tika nospiesta uz tastatūras {Serial.println (buttonPressed); }}

2. darbība: pievienojiet Micro Servo

Pievienojiet Micro Servo
Pievienojiet Micro Servo
Pievienojiet Micro Servo
Pievienojiet Micro Servo

Tagad pievienosim servomotoru. Šo ir patiešām viegli pievienot mūsu pašreizējam projektam, jo mikroserverim ir tikai trīs vadi.

  • Brūns vads iet uz maizes dēļa zemējuma sliedi
  • Sarkans iet uz barošanas sliedi
  • Oranžais iet uz Arduino 3. tapu. Atcerieties, ka mikroserverim Arduino jābūt PWM tapai. Tas ir saistīts ar servo, kas izmanto TIMER2

Tagad tikai pārliecināsimies, vai mikro servo esam pieslēguši pareizi un vai tas kustas

#iekļaut #iekļaut "Servo.h"

const baitu rindas = 4; // četras rindas, jo tastatūra ir pilna

const baitu kolonnas = 4; // četras kolonnas, tādas pašas kā iepriekš

char pogas [rindas] [kolonnas] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', '' C '}, {'*',' 0 ','#',' D '}};

baitu rindaP [rindas] = {13, 12, 11, 10}; // tastatūras rindas tapas

baitu kolonnasP [kolonnas] = {9, 8, 7, 6}; // tastatūras kolonnu tapas

Tastatūras paliktnis = Tastatūra (makeKeymap (pogas), rinda P, kolonnasP, rindas, kolonnas); // izveidot tastatūru

Servo strāvaServo; // izveidot servo objektu, lai kontrolētu servo

// Lielākajā daļā dēļu var izveidot divpadsmit servo objektus

int pos = 0; // mainīgais, lai saglabātu servo pozīciju

void setup () {

Sērijas sākums (9600); currentServo.attach (3); // piestiprina servo 9. tapā pie servo objekta

}

void loop () {

char pogaNospiests = pad.getKey (); // iegūt simbolu no tastatūras, ja (buttonPressed) // parāda, kura poga tika nospiesta uz tastatūras {Serial.println (buttonPressed); }

currentServo.write (95);

}

3. darbība: mainiet kodu, lai izmantotu servo tastatūru

Ziniet, ka mēs modificēsim savu kodu tā, lai, nospiežot noteiktu tastatūras pogu, servo pārvietotos uz noteiktu pozīciju. Vispirms svarīga lieta. Servo pozīcija uz 0 bija dīvaina. Tā kā man bija nepārtrauktas rotācijas servo, ikreiz, kad tas pietuvojās 0, servo tikko sāka griezties. Skaitlis, ko es ievietoju kodā, bija tik zems, cik es varēju iet bez tā. Jebkurā gadījumā, šeit ir mans galīgais kods:

#iekļaut #iekļaut

const baitu rindas = 4; // četras rindas, jo tastatūra ir pilna

const baitu kolonnas = 4; // četras kolonnas, tādas pašas kā iepriekš

char pogas [rindas] [kolonnas] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', '' C '}, {'*',' 0 ','#',' D '}};

baitu rindaP [rindas] = {13, 12, 11, 10}; // tastatūras rindas tapas

baitu kolonnasP [kolonnas] = {9, 8, 7, 6}; // tastatūras kolonnu tapas

Tastatūras paliktnis = Tastatūra (makeKeymap (pogas), rinda P, kolonnasP, rindas, kolonnas); // izveidot tastatūru

Servo myServo; //

void setup () {

Sērijas sākums (9600); myServo.attach (5); // piestiprina servo 9. tapā pie servo objekta}

void loop () {

char taustiņš = pad.getKey (); // iegūt simbolu no tastatūras, ja (taustiņš == '0') {myServo.write (11); Serial.println ("0"); kavēšanās (15); } ja (atslēga == '1') {myServo.write (12); Serial.println ("1"); kavēšanās (15); } ja (atslēga == '2') {myServo.write (24); Serial.println ("2"); kavēšanās (15); } ja (atslēga == '3') {myServo.write (36); Serial.println ("3"); kavēšanās (15); }

ja (atslēga == '4')

{myServo.write (48); Serial.println ("4"); kavēšanās (15); }

ja (atslēga == '5')

{myServo.write (60); Serial.println ("5"); kavēšanās (15); }

ja (atslēga == '6')

{myServo.write (72); Serial.println ("6"); kavēšanās (15); }

ja (atslēga == '7')

{myServo.write (84); Serial.println ("7"); kavēšanās (15); }

ja (atslēga == '8')

{myServo.write (96); Serial.println ("8"); kavēšanās (15); }

ja (atslēga == '9')

{myServo.write (108); Serial.println ("9"); kavēšanās (15); }

ja (atslēga == '*')

{myServo.write (120); Serial.println ("*"); kavēšanās (15); }

ja (atslēga == '#')

{myServo.write (132); Serial.println ("#"); kavēšanās (15); }

ja (atslēga == 'A')

{myServo.write (146); Serial.println ("A"); kavēšanās (15); }

ja (atslēga == 'B')

{myServo.write (158); Serial.println ("B"); kavēšanās (15); }

ja (atslēga == 'C')

{myServo.write (170); Serial.println ("C"); kavēšanās (15); }

ja (atslēga == 'D')

{myServo.write (180); Serial.println ("D"); kavēšanās (15); }}

Ieteicams: