Სარჩევი:

სერვო პოზიტიონირება კლავიატურით: 3 ნაბიჯი
სერვო პოზიტიონირება კლავიატურით: 3 ნაბიჯი

ვიდეო: სერვო პოზიტიონირება კლავიატურით: 3 ნაბიჯი

ვიდეო: სერვო პოზიტიონირება კლავიატურით: 3 ნაბიჯი
ვიდეო: სერვო ძრავის ამუშავება არდუინოთი +კოდი | servo arduino 2024, ივლისი
Anonim
სერვო პოზიტიონირება კლავიატურით
სერვო პოზიტიონირება კლავიატურით

ამ ინსტრუქციურად ჩვენ შევქმნით პროექტს, რომელიც გააკონტროლებს მიკრო სერვისს კლავიატურით, რომელიც მუშაობს Arduino Uno– ით.

გამოყენებული მასალები:

არდუინო უნო

პურის დაფა

4x4 კლავიატურა

მიკრო სერვო

ნაბიჯი 1: დააინსტალირეთ კლავიატურა

მავთულის კლავიატურა
მავთულის კლავიატურა
მავთულის კლავიატურა
მავთულის კლავიატურა

პირველი, რაც თქვენ უნდა გააკეთოთ, არის მავთულხლართები ელექტროგადამცემი სარკინიგზო და საყრდენი რკინიგზის თქვენს დაფაზე თქვენი არდუინოდან

  1. შეაერთეთ 5V პინი ელექტროგადამცემი ხაზთან (წითელი)
  2. შეაერთეთ სახმელეთო პინი (GND) დამიწების რელსთან (ლურჯი)

ახლა, როდესაც პურის დაფას აქვს ძალა და დაფუძნებულია, ჩვენ შეგვიძლია დავიწყოთ ჩვენი კომპონენტების გაყვანილობა.

კლავიატურის გაყვანილობა ადვილია, მაგრამ თქვენ უნდა გაითვალისწინოთ კლავიატურის და არდუინოს ქინძისთავები. ეს გამოგვადგება, როდესაც ჩვენს კოდს მივაქცევთ ყურადღებას.

გახსოვდეთ, რომ თქვენი მავთულის გამოყენებისას მარცხნივ უნდა დაიწყოთ!

  • პირველი პინი მიდის 13 -ზე
  • მეორე პინი მიდის 12 -ზე
  • მესამე პინი მიდის 11 -ზე
  • მეოთხე პინი მიდის 10 -ზე
  • მეხუთე პინი 9 -მდე
  • მეექვსე პინი 8 -მდე
  • მეშვიდე მიამაგრეთ 7 -ზე
  • მერვე პინი 6 -მდე

კლავიატურის გაყვანილობისას გახსოვდეთ, რომ ციფრული pwm პინი ღია იყოს. ჩვენ დაგვჭირდება მიკრო სერვოზე

სანამ კოდს მივაღწევთ, დარწმუნდით, რომ დაინსტალირებული გაქვთ კლავიატურის ბიბლიოთეკა. ის შეიძლება ნახოთ თქვენს ესკიზში, შემდეგ ესკიზის ჩანართში, შეიტანოთ ბიბლიოთეკა. თქვენ ვერ შეძლებთ კლავიატურის გამოყენებას მის გარეშე.

ახლა მივმართოთ კოდს და დავრწმუნდეთ, რომ კლავიატურა მუშაობს და იძლევა დამსწრე მნიშვნელობებს

სწრაფი შენიშვნები: დარწმუნდით, რომ გაქვთ if განცხადება კლავიატურის შესამოწმებლად, წინააღმდეგ შემთხვევაში ის არ იმუშავებს. ასევე ფრთხილად იყავით შეფერხებების გამო, ისინი არეულობენ ღილაკებს, რომლებიც რეგისტრირებულია კლავიატურადან

#ჩართეთ

კონსტ ბაიტის რიგები = 4; // ოთხი რიგი, რადგან კლავიატურა სავსეა

const ბაიტის სვეტები = 4; // ოთხი სვეტი, იგივე, რაც ზემოთ

char ღილაკები [რიგები] [სვეტები] = {

{'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 () {

სერიული.დაწყება (9600); }

ბათილი მარყუჟი () {

char buttonPressed = pad.getKey (); // მიიღეთ char საწყისი კლავიატურადან თუ (buttonPressed) // აჩვენეთ რა ღილაკი იყო დაჭერილი კლავიატურაზე {Serial.println (buttonPressed); }}

ნაბიჯი 2: დაამატეთ მიკრო სერვო

დაამატეთ მიკრო სერვო
დაამატეთ მიკრო სერვო
დაამატეთ მიკრო სერვო
დაამატეთ მიკრო სერვო

ახლა მოდით დავამატოთ სერვო ძრავა. ეს მართლაც ადვილია დაამატოთ ჩვენს მიმდინარე პროექტს, რადგან მიკრო სერვერს აქვს მხოლოდ სამი მავთული.

  • ყავისფერი მავთული მიდის დამიწების რელსზე პურის დაფაზე
  • წითელი მიდის დენის რკინიგზაზე
  • ნარინჯისფერი მიდის პინ 3 -ზე არდუინოზე. გახსოვდეთ, მიკრო სერვერს უნდა ჰქონდეს PWM პინი Arduino– ზე. ეს გამოწვეულია სერვერის გამოყენებით TIMER2

ახლა ჩვენ უბრალოდ უნდა დავრწმუნდეთ, რომ ჩვენ მიყვანილი გვაქვს მიკრო სერვო სწორად და რომ ის მოძრაობს

#მოიცავს #მოიცავს "Servo.h"

კონსტ ბაიტის რიგები = 4; // ოთხი სტრიქონი, რადგან კლავიატურა სავსეა

const ბაიტის სვეტები = 4; // ოთხი სვეტი, იგივე, რაც ზემოთ

char ღილაკები [რიგები] [სვეტები] = {

{'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 () {

სერიული.დაწყება (9600); currentServo.attach (3); // მიმაგრებს servo პინ 9 -ზე servo ობიექტს

}

ბათილი მარყუჟი () {

char buttonPressed = pad.getKey (); // მიიღეთ char საწყისი კლავიატურადან თუ (buttonPressed) // აჩვენეთ რა ღილაკი იყო დაჭერილი კლავიატურაზე {Serial.println (buttonPressed); }

currentServo.write (95);

}

ნაბიჯი 3: შეცვალეთ კოდი, რომ გამოიყენოთ კლავიატურა სერვოზე

იცოდეთ, ჩვენ ვაპირებთ შევცვალოთ ჩვენი კოდი ისე, რომ როდესაც კლავიატურაზე კონკრეტულ ღილაკს ვაჭერთ, სერვო გადადის კონკრეტულ პოზიციაზე. პირველ რიგში მნიშვნელოვანი რამ. 0 -ის სერვო პოზიცია უცნაური იყო. მას შემდეგ, რაც მე მქონდა უწყვეტი ბრუნვის სერვო, როდესაც ის 0 -ს მიუახლოვდებოდა, სერვო უბრალოდ იწყებდა ტრიალს. კოდი, რომელიც ჩავწერე, იმდენად დაბალი იყო, რამდენადაც შემეძლო ამის გარეშე. ყოველ შემთხვევაში, აქ არის ჩემი საბოლოო კოდი:

#ჩართეთ #ჩართეთ

კონსტ ბაიტის რიგები = 4; // ოთხი სტრიქონი, რადგან კლავიატურა სავსეა

const ბაიტის სვეტები = 4; // ოთხი სვეტი, იგივე, რაც ზემოთ

char ღილაკები [რიგები] [სვეტები] = {

{'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 () {

სერიული.დაწყება (9600); myServo.attach (5); // ანიჭებს servo პინ 9 -ს servo ობიექტს}

ბათილი მარყუჟი () {

char გასაღები = pad.getKey (); // მიიღეთ char საწყისი კლავიატურადან if (გასაღები == '0') {myServo.write (11); Serial.println ("0"); დაგვიანება (15); } if (გასაღები == '1') {myServo.write (12); Serial.println ("1"); დაგვიანება (15); } if (გასაღები == '2') {myServo.write (24); Serial.println ("2"); დაგვიანება (15); } if (გასაღები == '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); }

თუ (გასაღები == 'A')

{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); }}

გირჩევთ: