Mündəricat:

Klaviatura Servo Kilidi: 5 addım
Klaviatura Servo Kilidi: 5 addım

Video: Klaviatura Servo Kilidi: 5 addım

Video: Klaviatura Servo Kilidi: 5 addım
Video: КАК НАСТРОИТЬ L4D2 2024, Noyabr
Anonim
Klaviatura Servo Kilidi
Klaviatura Servo Kilidi
Klaviatura Servo Kilidi
Klaviatura Servo Kilidi
Klaviatura Servo Kilidi
Klaviatura Servo Kilidi

Hər kəsə salam, inşallah gününüz xoş keçər. Ümid etmirəmsə, bu dərsliyə və bəzi müalicəvi musiqiyə açıq fikirlə geri dönə bilərsiniz. Proqramlaşdırma çətin ola bilər. Şükürlər olsun ki, bu dərslik çətin deyil, buna görə də (qüdrətli səslə) adlı məşhur bir işi həyata keçirə bilərsiniz: ULTIMATE SERVO KEYPAD LOCK !!! Bu, həqiqətən mənim təqdimatımdır, ümid edirəm bəyənmisiniz. Hər halda yazmaq üçün barmaqlarımızı istiləşdirək. (Sərin bir mahnı: can-can mahnısı (klassik musiqi)).

Təchizat:

-Barmaqlarınız

-Əlləriniz də vacibdir

-Arduino üçün USB kabeli

-İstənilən növ arduino mövcuddur (məndə Arduino Mega var)

- Matrix Keypad (klaviatura - ebay, klaviatura - amazon)

-Mikro və ya standart servo (mikro servo istifadə edirəm)

-* İsteğe bağlı* Breadboard - istənilən növ

-* İsteğe bağlı* Enerji təchizatı (5V)

Addım 1: Şematik Zaman

Şematik Zaman!
Şematik Zaman!
Şematik Zaman!
Şematik Zaman!

Yaxşı, əvvəlcə nə etməli? Arduino'yu kompüterə bağlayın. Növbəti düyməni bağlayın. *Qeyd - sancaqları klaviaturadakı son pindən arduinonun ilk rəqəmsal pininə bağlamalısınız. Və bundan sonra sağdan sola gedin*. Klaviatura arduinoda 2-9 sancaqlar var. Servo rəqəmsal siqnal kimi pin 10 -a malikdir. Arduino, klaviatura, servo və 5V əsaslarını da bağlayın. * Həm də unutmayın - servonun ən yaxşı şəkildə xarici bir enerji mənbəyi və ya 5V (divar plug -in) olan bir adapterlə istifadə edildiyini, ancaq yenə də isteğe bağlı olduğunu söyləyə bilərik. Arduinodan servoya tel bağlamaq üçün. Bu sxem yeni başlayanlar üçün kömək etmir, buna görə qısa bir şəkildə izah etməyə icazə verin. Əsasən, son pin 2, birincisi 9, ikisi 8, üçü 7 və s. Soldan sağa gedin 2 2.

Addım 2: Kodlaşdırma vaxtı

Kodlama vaxtı!
Kodlama vaxtı!
Kodlama vaxtı!
Kodlama vaxtı!

Tamam, indi kodlaşdırma hissəsinə keçdik! Əsl sehrin olduğu yer budur! Beləliklə, əvvəlcə klaviatura və servonun sınanması üçün bir test proqramı var. Burada:

//www.elegoo.com//2016.12.9

/* @fayl CustomKeypad.pde

|| @versiya 1.0 || @müəllif Alexander Brevig || @əlaqə saxlayın [email protected] || || @description || | Klaviatura ölçüsünü və açar dəyərlərini dəyişdirdiyini nümayiş etdirir. || # */ # daxil edin

const bayt ROWS = 4; // dörd sıra

const baytı COLS = 4; // dörd sütun // klaviatura düymələrindəki simvolları təyin 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 bayt colPins [pinləri] satır pinouts qoşulmaq [COLS] = {5, 4, 3, 2}; // klaviaturanın sütun pinoutlarına qoşulun

// NewKeypad sinifinin bir nümunəsini işə salın

Klaviatura xüsusiKeypad = Klaviatura (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

boş quraşdırma () {

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

//www.elegoo.com//2016.12.08 #daxil edin

Servo xidməti; // servoya nəzarət etmək üçün servo obyekti yaradın

// əksər lövhələrdə on iki servo obyekt yaradıla bilər

int pos = 0; // servo mövqeyini saxlamaq üçün dəyişən

boş quraşdırma () {

myservo.attach (9); // pin 9 -dakı servonu servo obyektə bağlayır}

boşluq döngəsi () {

for (pos = 0; pos = 0; pos -= 1) {// 180 dərəcədən 0 dərəcəyə qədər gedir myservo.write (pos); // servoya dəyişən 'pos' gecikməsindəki mövqeyə getməsini söyləyin (15); // servonun mövqeyə çatması üçün 15ms gözləyir}}

Budur layihə kodu (sizə qarşı səmimi deyim, çox şey etmədim, sadəcə servo hissəsini əlavə etdim, bütün kodu hazırlayan insanlara təşəkkür edirəm!):

#Şifrə daxil edin.h

#klaviatura daxil edin

/*

|| Matrix Keypad istifadə edərək sadə parol girişi || 4/5/2012 Yeniləmələr Nathan Sobieck: [email protected] || *

/* şifrəni təsdiq etməkdir

//# parol cəhdini sıfırlamaqdır

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

#daxil edin

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

Şifrə şifrəsi = Şifrə ("1234");

Servo xidməti; // servoya nəzarət etmək üçün servo obyekti yaradın

#servoPin 10 təyin edin

const bayt ROWS = 4; // Dörd sıra

const baytı COLS = 4; // sütunlar // Klaviatura düymələrini təyin edin [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', ' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {'*',' 0 ','#',' D '}};

bayt rowPins [ROWS] = {9, 8, 7, 6}; // Klaviatura ROW0, ROW1, ROW2 və ROW3 -ü bu Arduino sancaqlarına qoşun.

bayt colPins [COLS] = {5, 4, 3, 2,}; // Klaviatura COL0, COL1 və COL2 -ni bu Arduino pinlərinə qoşun.

// Klaviatura yaradın

Klaviatura klaviaturası = Klaviatura (makeKeymap (düymələr), rowPins, colPins, ROWS, COLS);

boş quraşdırma () {

myservo.attach (servoPin); // 9 nömrəli servo servo obyektə yapışdırır

Serial.begin (9600);

keypad.addEventListener (keypadEvent); // bu klaviatura üçün hadisə dinləyicisi əlavə edin

myservo.write (0);

}

boşluq döngəsi () {

klaviatura.getKey ();

}

// bəzi xüsusi hadisələrə diqqət yetirin

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

etibarsız checkPassword () {

if (password.evaluate () == true) {Serial.println ("Uğur"); // İşləyirsə işə salınması üçün kod əlavə edin

myservo.write (180);

gecikmə (3000);

myservo.write (0);

parol.reset ();

} başqa əgər (password.evaluate () == false) {

Serial.println ("Səhv");

myservo.write (0);

// işləməsə işə salınacaq kod əlavə edin

}

}

Addım 3: Bütün bunlar nə deməkdir?

Bütün bunlar nə deməkdir?
Bütün bunlar nə deməkdir?

Yuxarıdakı kod (birincisi) Servoya "süpürmək" və ya sadəcə 0 ilə 180 dərəcə arasında getmək üçün bir siqnal verəcəkdir. Və ya soldan sağa və ya sağdan sola yarım dönmə dövrəsini tamamlayın. Kod haqqında daha ətraflı məlumat istəsəniz sizə deyə bilərəm. Sadəcə soruşun. Zərər yoxdur, sadəcə kiçik bir sual. Buyurun, edə bilərsiniz! Hər halda, ortadakı kod klaviaturanın hər düyməsini sınayır. Və kodun sonuncusu "1234" parolunu yazdığınız zaman klaviatura ilə servo ilə "açılır".

Addım 4: Problemlərin aradan qaldırılması

Giderme
Giderme

S: Klaviaturam işləmir.

A: İlk pin 9 olduğunu unutmayın, oradan enin. Arduino'yu kompüterin USB portuna bağladığınızdan və Arduino proqramlaşdırdığınızdan da əmin olun.

S: Servo işləmir.

A: Servo pininin 10 pin olduğunu və ortaq bir yerə ehtiyacınız olduğunu unutmayın, əgər birbaşa Arduinodan bağlanırsınızsa, narıncı pinin (mikro servoda) pin 10, qırmızı pin 5V olduğunu və qəhvəyi pin GND pinidir.

S: Arduino işləmir:

A: Hətta bağladınızmı? Bu şəxsi problem kimi səslənir

Addım 5: Hər hansı bir sualınız varsa, şərh bölməsində soruşun və Abunə olmağı unutmayın

Sağol, dərsimi izlədiyiniz üçün təşəkkürlər. Əyləncəli oldu.

Tövsiyə: