Mundarija:

Klaviatura yordamida xizmat ko'rsatish pozitsionizatsiyasi: 3 qadam
Klaviatura yordamida xizmat ko'rsatish pozitsionizatsiyasi: 3 qadam

Video: Klaviatura yordamida xizmat ko'rsatish pozitsionizatsiyasi: 3 qadam

Video: Klaviatura yordamida xizmat ko'rsatish pozitsionizatsiyasi: 3 qadam
Video: Noutbook klaviaturasini yoqish #shorts 2024, Noyabr
Anonim
Klaviatura yordamida xizmat ko'rsatish pozitsionizatsiyasi
Klaviatura yordamida xizmat ko'rsatish pozitsionizatsiyasi

Bu yo'riqnomada biz Arduino Uno bilan ishlaydigan klaviatura yordamida mikro-Servo boshqaradigan loyihani yaratamiz.

Ishlatilgan materiallar:

Arduino Uno

Non paneli

4x4 klaviatura

Mikro-Servo

1 -qadam: Klaviatura simini ulang

Klaviaturani sim bilan ulang
Klaviaturani sim bilan ulang
Klaviaturani sim bilan ulang
Klaviaturani sim bilan ulang

Siz qilishingiz kerak bo'lgan birinchi narsa - bu Arduino -dan non panelidagi elektr rampasi va topraklama simini ulash

  1. 5V pinni elektr tarmog'iga ulang (qizil)
  2. Topraklama pinini (GND) topraklama rayiga ulang (ko'k)

Endi non paneli kuchga ega va erga ulangan bo'lsa, biz o'z komponentlarimizni ulashni boshlashimiz mumkin.

Klaviaturani ulash oson, lekin siz klaviatura va arduino pimlariga e'tibor berishingiz kerak. Bizning kodimizga e'tibor qaratsak, bu juda foydali bo'ladi.

Simlarni ishlatganda chapdan boshlashni unutmang!

  • Birinchi pin 13 ga to'g'ri keladi
  • Ikkinchi pin 12 ga to'g'ri keladi
  • Uchinchi pin 11 ga to'g'ri keladi
  • To'rtinchi pin 10 ga to'g'ri keladi
  • Beshinchi pin 9gacha
  • Oltinchi pin 8gacha
  • Ettinchi pin 7gacha
  • Sakkizinchi pin 6 ga

Klaviaturani ulashda raqamli pwm pinini ochiq saqlashni unutmang. Bizga mikro-servo uchun kerak bo'ladi

Kodni olishdan oldin, klaviatura kutubxonasini o'rnatganingizga ishonch hosil qiling. Uni eskizda, so'ngra eskizlar tabida, kutubxonada topish mumkin. Siz klaviaturadan foydalana olmaysiz.

Keling, kodga murojaat qilaylik va klaviatura ishlayotganiga va qatnashgan qiymatlarni berishiga ishonch hosil qilaylik

Tez eslatmalar: Klaviaturani tekshirish uchun if iborasi borligiga ishonch hosil qiling, aks holda u ishlamaydi. Kechiktirishlardan ham ehtiyot bo'ling, ular klaviaturadan ro'yxatdan o'tgan tugmachalarni buzadi

#qo'shing

const bayt qatorlari = 4; // klaviatura to'ldirilganligi uchun to'rt qator

const bayt ustunlari = 4; // yuqoridagi kabi to'rtta ustun

char tugmalari [qatorlar] [ustunlar] = {

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

bayt qatorP [qatorlar] = {13, 12, 11, 10}; // klaviaturaning qator pinlari

bayt ustunlariP [ustunlar] = {9, 8, 7, 6}; // klaviatura ustun ustunlari

Klaviatura paneli = Klaviatura (makeKeymap (tugmalar), rowP, ustunlarP, satrlar, ustunlar); // klaviatura yaratish

bo'sh o'rnatish () {

Serial.begin (9600); }

void loop () {

char tugmasi Pressed = pad.getKey (); // agar tugmani bosilsa // belgini klaviaturadan oling. }}

2 -qadam: Mikro Servo qo'shing

Mikro Servo qo'shing
Mikro Servo qo'shing
Mikro Servo qo'shing
Mikro Servo qo'shing

Endi servo motorni qo'shamiz. Buni hozirgi loyihamizga qo'shish juda oson, chunki mikro serverda faqat uchta sim bor.

  • Jigarrang sim non taxtasida topraklama rayiga o'tadi
  • Qizil Quvvat rayiga o'tadi
  • Apelsin Arduino -dagi 3 -pinga o'tadi. Esda tutingki, mikro serverda Arduino -da PWM pin bo'lishi kerak. Bu TIMER2 yordamida servo bilan bog'liq

Keling, biz mikro servo simini to'g'ri ulaganimizga va uning harakatlanishiga ishonch hosil qilaylik

#qo'shish #qo'shish "Servo.h"

const bayt qatorlari = 4; // klaviatura to'ldirilganligi uchun to'rt qator

const bayt ustunlari = 4; // yuqoridagi kabi to'rtta ustun

char tugmalari [qatorlar] [ustunlar] = {

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

bayt qatorP [qatorlar] = {13, 12, 11, 10}; // klaviaturaning qator pinlari

bayt ustunlariP [ustunlar] = {9, 8, 7, 6}; // klaviatura ustun ustunlari

Klaviatura paneli = Klaviatura (makeKeymap (tugmalar), rowP, ustunlarP, satrlar, ustunlar); // klaviatura yaratish

Servo oqimi Servo; // servoni boshqarish uchun servo ob'ekt yaratish

// ko'pgina taxtalarda o'n ikkita servo ob'ektni yaratish mumkin

int pos = 0; // servo holatini saqlash uchun o'zgaruvchi

bo'sh o'rnatish () {

Serial.begin (9600); currentServo.attach (3); // servo ob'ektga 9 -pinli servo biriktiriladi

}

void loop () {

char tugmasi Pressed = pad.getKey (); // agar tugmani bosilsa // tugmachadan belgi olinsa // klaviaturada qaysi tugma bosilganligini ko'rsating {Serial.println (buttonPressed); }

currentServo.write (95);

}

3 -qadam: Servo klaviaturasini ishlatish uchun kodni o'zgartiring

Bilingki, biz o'z kodimizni o'zgartiramiz, shunda biz klaviaturadagi ma'lum bir tugmani bosganimizda, servo ma'lum bir joyga o'tadi. Birinchidan, muhim narsa. 0 uchun servo pozitsiyasi g'alati edi. Menda doimiy aylanish servo bo'lgani uchun, u 0 ga yaqinlashganda, servo aylana boshladi. Kodni kiritgan raqamim, bu sodir bo'lmaguncha, iloji boricha kam edi. Qanday bo'lmasin, mening oxirgi kodim:

#qo'shing #qo'shing

const bayt qatorlari = 4; // klaviatura to'ldirilganligi uchun to'rt qator

const bayt ustunlari = 4; // yuqoridagi kabi to'rtta ustun

char tugmalari [qatorlar] [ustunlar] = {

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

bayt qatorP [qatorlar] = {13, 12, 11, 10}; // klaviaturaning qator pinlari

bayt ustunlariP [ustunlar] = {9, 8, 7, 6}; // klaviatura ustun ustunlari

Klaviatura paneli = Klaviatura (makeKeymap (tugmalar), rowP, ustunlarP, satrlar, ustunlar); // klaviatura yaratish

MyServo xizmat ko'rsatish; //

bo'sh o'rnatish () {

Serial.begin (9600); myServo.attach (5); // servo ob'ektga 9 -pinli servo biriktiriladi}

void loop () {

char tugmachasi = pad.getKey (); // belgini klaviaturadan oling, agar (key == '0') {myServo.write (11); Serial.println ("0"); kechikish (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); kechikish (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); kechikish (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); kechikish (15); }

agar (kalit == '4')

{myServo.write (48); Serial.println ("4"); kechikish (15); }

agar (kalit == '5')

{myServo.write (60); Serial.println ("5"); kechikish (15); }

agar (kalit == '6')

{myServo.write (72); Serial.println ("6"); kechikish (15); }

agar (kalit == '7')

{myServo.write (84); Serial.println ("7"); kechikish (15); }

agar (kalit == '8')

{myServo.write (96); Serial.println ("8"); kechikish (15); }

agar (kalit == '9')

{myServo.write (108); Serial.println ("9"); kechikish (15); }

agar (kalit == '*')

{myServo.write (120); Serial.println ("*"); kechikish (15); }

agar (kalit == '#')

{myServo.write (132); Serial.println ("#"); kechikish (15); }

agar (kalit == 'A')

{myServo.write (146); Serial.println ("A"); kechikish (15); }

agar (kalit == 'B')

{myServo.write (158); Serial.println ("B"); kechikish (15); }

agar (kalit == 'C')

{myServo.write (170); Serial.println ("C"); kechikish (15); }

agar (kalit == 'D')

{myServo.write (180); Serial.println ("D"); kechikish (15); }}

Tavsiya: