Բովանդակություն:

Servo Positoning ստեղնաշարի միջոցով. 3 քայլ
Servo Positoning ստեղնաշարի միջոցով. 3 քայլ

Video: Servo Positoning ստեղնաշարի միջոցով. 3 քայլ

Video: Servo Positoning ստեղնաշարի միջոցով. 3 քայլ
Video: Lesson 97: Controlling Servo Motor using Rotary Encoder and Display Angle On LCD 2024, Նոյեմբեր
Anonim
Servo Positoning ստեղնաշարի միջոցով
Servo Positoning ստեղնաշարի միջոցով

Այս ուսանելի ծրագրում մենք կստեղծենք նախագիծ, որը վերահսկելու է միկրո-սերվոն `ստեղնաշարով, որն աշխատում է Arduino Uno- ով:

Օգտագործված նյութեր.

Արդուինո Ունո

Breadboard

4x4 ստեղնաշար

Միկրո-սերվո

Քայլ 1: Միացրեք ստեղնաշարը

Լարել ստեղնաշարը
Լարել ստեղնաշարը
Լարել ստեղնաշարը
Լարել ստեղնաշարը

Ամենաառաջին միտքը, որ դուք պետք է անեք, ձեր Arduino- ից ձեր հացահատիկի վրա էլեկտրահաղորդման և հիմնավորման երկաթուղին միացնելն է

  1. 5V կապը միացրեք հոսանքի գծին (կարմիր)
  2. Միացրեք հիմնավոր կապը (GND) հիմնավորման ռելսին (կապույտ)

Այժմ, երբ հացահատիկն ունի ուժ և հիմնավորված, մենք կարող ենք սկսել միացնել մեր բաղադրիչները:

Ստեղնաշարի միացումը հեշտ է, բայց դուք պետք է ուշադրություն դարձնեք ստեղնաշարի և arduino- ի կապում: Դա օգտակար կլինի, երբ մենք ուշադրություն դարձնենք մեր ծածկագրին:

Հիշեք, որ լարերը օգտագործելիս սկսեք ձախից:

  • Առաջին քորոցը 13 է
  • Երկրորդ քորոցը անցնում է 12 -ի
  • Երրորդ փինն անցնում է 11 -ին
  • Չորրորդ քորոցը հասնում է 10 -ի
  • Հինգերորդ կապում մինչև 9
  • Վեցերորդ կապում դեպի 8
  • Յոթերորդ կապում դեպի 7
  • Ութերորդ կապում դեպի 6

Ստեղնաշարը միացնելիս հիշեք, որ թվային pwm կապը բաց պահեք: Մեզ դա անհրաժեշտ կլինի միկրո-սերվոյի համար

Նախքան ծածկագրին հասնելը, համոզվեք, որ դուք տեղադրել եք Ստեղնաշարի գրադարանը: Այն կարելի է գտնել ձեր ուրվագծում, այնուհետև ուրվագծերի ներդիրում, ներառել գրադարանը: Առանց դրա դուք չեք կարողանա օգտագործել ստեղնաշարը:

Այժմ եկեք դիմենք ծածկագրին և համոզվենք, որ ստեղնաշարն աշխատում է և տալիս է ներկա արժեքները

Արագ նշումներ. Համոզվեք, որ ունեք ստեղնաշարը ստուգելու if հայտարարությունը, հակառակ դեպքում այն չի աշխատի: Նաև ուշադիր եղեք ուշացումներից, դրանք կխառնվեն ստեղնաշարից գրանցված կոճակների հետ

#ներառում

const բայթ տողեր = 4; // չորս տող, քանի որ ստեղնաշարը լիքն է

const բայթ սյուներ = 4; // չորս սյունակ, նույնը, ինչ վերևում

նշանի կոճակներ [տողեր] [սյուներ] = {

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

բայթ rowP [տողեր] = {13, 12, 11, 10}; // ստեղնաշարի տողերի կապում

բայթ սյուներ P [սյուներ] = {9, 8, 7, 6}; // ստեղնաշարի սյունակ

Ստեղնաշարի պահոց = Ստեղնախումբ (makeKeymap (կոճակներ), rowP, սյուներ P, տողեր, սյուներ); // ստեղծել ստեղնաշար

void setup () {

Serial.begin (9600); }

դատարկ շրջան () {

char buttonPressed = pad.getKey (); // ստացեք ստեղնաշարի նշանը, եթե (buttonPressed) // ցույց տվեք, թե ինչ կոճակ է սեղմված ստեղնաշարի վրա {Serial.println (buttonPressed); }}

Քայլ 2: Ավելացրեք Micro Servo

Ավելացրեք Micro Servo
Ավելացրեք Micro Servo
Ավելացրեք Micro Servo
Ավելացրեք Micro Servo

Այժմ եկեք ավելացնենք servo շարժիչը: Այս մեկն իսկապես հեշտ է ավելացնել մեր ընթացիկ նախագծին, քանի որ միկրո սերվերն ունի ընդամենը երեք լար:

  • Շագանակագույն մետաղալարն անցնում է հացահատիկի վրա հիմնավորող երկաթուղով
  • Կարմիրը գնում է դեպի Power երկաթուղի
  • Orange- ն անցնում է Arduino- ի Pin 3 -ին: Հիշեք, որ միկրո սերվերը պետք է ունենա PWM կապ Arduino- ում: Դա պայմանավորված է TIMER2- ի օգտագործող servo- ով

Հիմա եկեք պարզապես համոզվենք, որ միկրո սերվերը միացրել ենք ճիշտ և այն շարժվում է

#ներառել #ներառել «Servo.h»

const բայթ տողեր = 4; // չորս տող, քանի որ ստեղնաշարը լիքն է

const բայթ սյուներ = 4; // չորս սյունակ, նույնը, ինչ վերևում

նշանի կոճակներ [տողեր] [սյուներ] = {

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

բայթ rowP [տողեր] = {13, 12, 11, 10}; // ստեղնաշարի տողերի կապում

բայթ սյուներ P [սյուներ] = {9, 8, 7, 6}; // ստեղնաշարի սյունակ

Ստեղնաշարի պահոց = Ստեղնախումբ (makeKeymap (կոճակներ), rowP, սյուներ P, տողեր, սյուներ); // ստեղծել ստեղնաշար

Servo currentServo; // ստեղծել servo օբյեկտ, որը վերահսկում է servo- ն

// տասներկու servo օբյեկտ կարող է ստեղծվել տախտակների մեծ մասի վրա

int pos = 0; // փոփոխական ՝ սերվոյի դիրքը պահելու համար

void setup () {

Serial.begin (9600); currentServo.attach (3); // ամրացնում է servo- ն 9 -րդ կապի վրա servo օբյեկտին

}

դատարկ շրջան () {

char buttonPressed = pad.getKey (); // ստացեք ստեղնաշարի նշանը, եթե (buttonPressed) // ցույց տվեք, թե ինչ կոճակ է սեղմված ստեղնաշարի վրա {Serial.println (buttonPressed); }

currentServo.write (95);

}

Քայլ 3. Փոփոխեք ծածկագիրը `Servo- ում ստեղնաշարի օգտագործման համար

Իմացեք, որ մենք պատրաստվում ենք փոփոխել մեր կոդը այնպես, որ երբ մենք սեղմում ենք ստեղնաշարի որոշակի կոճակ, սերվոն տեղափոխվում է որոշակի դիրքի: Կարևոր բան առաջին հերթին. 0 -ի սերվոյի դիրքը տարօրինակ էր: Քանի որ ես ունեի անընդհատ պտտվող սերվո, երբ այն մոտենում էր 0 -ին, սերվոն պարզապես սկսում էր պտտվել: Համարը, որը ես տեղադրել եմ ծածկագրում, այնքան ցածր էր, որքան կարող էի գնալ, եթե դա տեղի չունենար: Ամեն դեպքում, ահա իմ վերջնական կոդը.

#ներառել #ներառել

const բայթ տողեր = 4; // չորս տող, քանի որ ստեղնաշարը լիքն է

const բայթ սյուներ = 4; // չորս սյունակ, նույնը, ինչ վերևում

նշանի կոճակներ [տողեր] [սյուներ] = {

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

բայթ rowP [տողեր] = {13, 12, 11, 10}; // ստեղնաշարի տողերի կապում

բայթ սյուներ P [սյուներ] = {9, 8, 7, 6}; // ստեղնաշարի սյունակ

Ստեղնաշարի պահոց = Ստեղնախումբ (makeKeymap (կոճակներ), rowP, սյուներ P, տողեր, սյուներ); // ստեղծել ստեղնաշար

Servo myServo; //

void setup () {

Serial.begin (9600); myServo.attach (5); // ամրացնում է 9 -րդ կապի servo- ն servo օբյեկտին}

դատարկ շրջան () {

char բանալին = pad.getKey (); // ստացեք նշանը ստեղնաշարից if (key == '0') {myServo.write (11); Serial.println ("0"); ուշացում (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); ուշացում (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); ուշացում (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); ուշացում (15); }

եթե (բանալին == '4')

{myServo.write (48); Serial.println ("4"); ուշացում (15); }

եթե (բանալին == '5')

{myServo.write (60); Serial.println ("5"); ուշացում (15); }

եթե (բանալին == '6')

{myServo.write (72); Serial.println ("6"); ուշացում (15); }

եթե (բանալին == '7')

{myServo.write (84); Serial.println ("7"); ուշացում (15); }

եթե (բանալին == '8')

{myServo.write (96); Serial.println ("8"); ուշացում (15); }

եթե (բանալին == '9')

{myServo.write (108); Serial.println ("9"); ուշացում (15); }

եթե (բանալին == '*')

{myServo.write (120); Serial.println ("*"); ուշացում (15); }

եթե (բանալին == '#')

{myServo.write (132); Serial.println ("#"); ուշացում (15); }

եթե (բանալին == 'Ա')

{myServo.write (146); Serial.println ("A"); ուշացում (15); }

եթե (բանալին == 'B')

{myServo.write (158); Serial.println ("B"); ուշացում (15); }

եթե (բանալին == 'C')

{myServo.write (170); Serial.println ("C"); ուշացում (15); }

եթե (բանալին == 'D')

{myServo.write (180); Serial.println ("D"); ուշացում (15); }}

Խորհուրդ ենք տալիս: