Mundarija:

Klaviatura Servo qulfi: 5 qadam
Klaviatura Servo qulfi: 5 qadam

Video: Klaviatura Servo qulfi: 5 qadam

Video: Klaviatura Servo qulfi: 5 qadam
Video: Ступни украли ► 1 Прохождение Signalis 2024, Iyul
Anonim
Servo qulfi klaviaturasi
Servo qulfi klaviaturasi
Servo qulfi klaviaturasi
Servo qulfi klaviaturasi
Servo qulfi klaviaturasi
Servo qulfi klaviaturasi

Hammaga salom, kuningiz yaxshi o'tdi degan umiddaman. Agar umid qilmasangiz, siz bu darslik va terapevtik musiqaga ochiq fikr bilan qaytishingiz mumkin. Dasturlash qiyin bo'lishi mumkin. Yaxshiyamki, bu darslik qiyinchilik tug'dirmaydi, shuning uchun siz mashhur ovozni (kuchli ovozda) bajarishingiz mumkin: ULTIMATE SERVO KEYPAD LOCK !!! Bu haqiqatan ham mening kirishim, umid qilamanki sizga yoqdi. Qanday bo'lmasin, yozish uchun barmoqlarimizni isitib olaylik. (Ajoyib qo'shiq: mumkin bo'lgan qo'shiq (klassik musiqa)).

Ta'minot:

-Barmoqlaringiz

-Sizning qo'llaringiz ham muhim

-Arduino uchun USB kabeli

-Arduino -ning har qanday turi mavjud (menda Arduino Mega bor)

Matrix klaviaturasi (klaviatura - ebay, klaviatura - amazon)

-Mikro yoki standart servo (men mikro servo ishlataman)

-* Ixtiyoriy* Non paneli - har qanday turdagi

-* Ixtiyoriy* Quvvat manbai (5V)

1 -qadam: sxematik vaqt

Sxematik vaqt!
Sxematik vaqt!
Sxematik vaqt!
Sxematik vaqt!

Xo'sh, birinchi navbatda nima qilish kerak? Arduino -ni kompyuterga ulang. Keyingi klaviaturani ulang. *Eslatma - pinlarni klaviaturadagi oxirgi pindan arduino -dagi birinchi raqamli pin sifatida ulashingiz kerak. Va keyin o'ngdan chapga o'ting*. Klaviatura arduino-da 2-9-pinlarga ega. Servo raqamli signal sifatida 10 -pinga ega. Arduino, klaviatura, servo va 5V asoslarini ham bog'lang. * Shuni ham unutmangki, servo tashqi quvvat manbai yoki 5V (devorga ulanadigan) adapter bilan eng yaxshi ishlatiladi, lekin bu ixtiyoriydir. faqat Arduinodan servoga sim ulash uchun. Ushbu sxema yangi boshlanuvchilarga yordam bermaydi, shuning uchun qisqacha tushuntirishga ruxsat bering. Asosan, oxirgi pin 2 va birinchisi 9, ikkitasi 8, uchtasi 7 va boshqalar. Chapdan o'ngga 2 2.

2 -qadam: Kodlash vaqti

Kodlash vaqti!
Kodlash vaqti!
Kodlash vaqti!
Kodlash vaqti!

Xo'sh, endi biz kodlash qismiga o'tamiz! Bu erda haqiqiy sehr bo'ladi! Shunday qilib, avval klaviatura va servoni sinab ko'rish uchun test dasturi mavjud. Bu yerda:

//www.elegoo.com//2016.12.9

/* @FaylKeypad.pde

|| @version 1.0 || @muallif Aleksandr Brevig || @contact [email protected] || || @ta'rif || | Klaviatura o'lchami va kalit qiymatlarining o'zgarishini ko'rsatadi. || # */ # qo'shing

const bayt ROWS = 4; // to'rt qator

const bayt COLS = 4; // to'rtta ustun // klaviatura tugmalaridagi belgilarni belgilaydi char hexaKeys [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5 ',' 6 ',' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {'*',' 0 ','#',' D '}}; bayt rowPins [ROWS] = {9, 8, 7, 6}; // klaviatura baytlari colPins [COLS] = {5, 4, 3, 2}; // klaviatura ustun ustunlariga ulanish

// NewKeypad sinfining namunasini ishga tushiring

CustomKeypad klaviaturasi = Klaviatura (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

bo'sh o'rnatish () {

Serial.begin (9600); } void loop () {char customKey = customKeypad.getKey (); if (customKey) {Serial.println (customKey); }}

//www.elegoo.com//2016.12.08 #qo'shing

Xizmat ko'rsatish xizmati; // 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 () {

myservo.attach (9); // servo ob'ektga 9 -pinli servo biriktiriladi}

void loop () {

uchun (pos = 0; pos = 0; pos -= 1) {// 180 darajadan 0 darajagacha boradi myservo.write (pos); // servo o'zgarmaydigan 'pos' kechikishidagi holatga o'tishini ayt (15); // servo holatiga yetguncha 15ms kutadi}}

Mana, loyiha kodi (siz bilan rostini aytsam, men juda ko'p ish qilmaganman, faqat servo qismini qo'shganman, hamma kodni yaratgan odamlarga rahmat aytaman!):

#parolni kiriting.h

#klaviaturani o'z ichiga oladi

/*

|| Matrisli klaviatura yordamida oddiy parol kiritish || 5.04.2012 Yangilanishlar Natan Sobieck: [email protected] || *

/* - parolni tasdiqlash

//# - parolni qayta tiklash urinishi

/////////////////////////////////////////////////////////////////

#qo'shing

//https://www.arduino.cc/playground/uploads/Code/Password.zip #include //https://www.arduino.cc/playground/uploads/Code/Keypad.zip

Parol paroli = Parol ("1234");

Xizmat ko'rsatish xizmati; // servoni boshqarish uchun servo ob'ekt yaratish

#servoPin 10 ni aniqlang

const bayt ROWS = 4; // To'rt qator

const bayt COLS = 4; // ustunlar // Klaviatura xaritasi tugmalarini belgilang [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', ' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {'*',' 0 ','#',' D '}};

bayt rowPins [ROWS] = {9, 8, 7, 6}; // ROW0, ROW1, ROW2 va ROW3 klaviaturasini ushbu Arduino pinlariga ulang.

bayt colPins [COLS] = {5, 4, 3, 2,}; // COL0, COL1 va COL2 klaviaturasini ushbu Arduino pinlariga ulang.

// Klaviaturani yarating

Klaviatura klaviaturasi = Klaviatura (makeKeymap (tugmalar), rowPins, colPins, ROWS, COLS);

bo'sh o'rnatish () {

myservo.attach (servoPin); // servo ob'ektga 9 -pinli servo biriktiriladi

Serial.begin (9600);

keypad.addEventListener (klaviaturaEvent); // ushbu klaviatura uchun voqea tinglovchisini qo'shing

myservo.write (0);

}

void loop () {

klaviatura.getKey ();

}

// ba'zi maxsus voqealarga e'tibor bering

void keypadEvent (KeypadEvent eKey) {switch (keypad.getState ()) {case PRESSED: switch (eKey) {case '*': checkPassword (); tanaffus; standart: password.append (eKey); }}}

bekor checkPassword () {

if (password.evaluate () == true) {Serial.println ("Muvaffaqiyat"); // Agar u ishlayotgan bo'lsa, ishga tushirish uchun kod qo'shing

myservo.write (180);

kechikish (3000);

myservo.write (0);

parol.reset ();

} if if if (password.evaluate () == false) {

Serial.println ("Noto'g'ri");

myservo.write (0);

// ishlamayotgan bo'lsa, ishga tushirish uchun kod qo'shing

}

}

3 -qadam: Bularning barchasi nimani anglatadi?

Bularning barchasi nimani anglatadi?
Bularning barchasi nimani anglatadi?

Yuqoridagi kod (birinchisi) Servoga "supurish" yoki faqat 0 dan 180 darajaga o'tish uchun signal beradi. Yoki chapdan o'ngga yoki o'ngdan chapga yarim aylanani to'ldirish. Agar siz kod haqida ko'proq ma'lumotga ega bo'lishni istasangiz, men sizga ayta olaman. Iltimos, faqat so'rang. Hech qanday zarar yo'q, shunchaki oddiy savol. Qani, qila olasiz! Yaxshiyamki, o'rtadagi kod klaviaturaning har bir tugmachasini tekshiradi. Kodning oxirgi qismi "1234" parolini kiritganingizda, servo bilan "qulfini ochadi", siz taxmin qilganingizdek, klaviatura.

4 -qadam: Muammolarni bartaraf etish

Muammolarni bartaraf qilish; nosozliklarni TUZATISH
Muammolarni bartaraf qilish; nosozliklarni TUZATISH

Savol: Mening klaviaturam ishlamayapti.

Javob: Esda tutingki, birinchi pin - 9, u erdan pastga tushing. Bundan tashqari, arduino -ni kompyuterning USB portiga ulab, Arduino -ni dasturlashingizga ishonch hosil qiling.

Savol: Servo ishlamayapti.

Javob: Shuni esda tutingki, servo pin 10 -pinli va sizga umumiy nuqta kerak, agar siz Arduino -dan to'g'ridan -to'g'ri ulansangiz, apelsinli pin (mikro servoda) 10 -pin, qizil pin 5V va jigarrang pin - GND pin.

Savol: Arduino ishlamayapti:

Javob: Siz hatto uladingizmi? Bu shaxsiy muammoga o'xshaydi

5 -qadam: Agar sizda biron bir savol bo'lsa, sharhlar bo'limida so'rang va obuna bo'lishni unutmang

Xayr, mening darsligimni ko'rganingiz uchun tashakkur. Bu qiziqarli bo'ldi.

Tavsiya: