İçindekiler:

Tuş Takımı Servo Kilidi: 5 Adım
Tuş Takımı Servo Kilidi: 5 Adım

Video: Tuş Takımı Servo Kilidi: 5 Adım

Video: Tuş Takımı Servo Kilidi: 5 Adım
Video: Akıllı Kilit Sistemi (KeyPad Tuş Takımı & Servo Motor) 2024, Aralık
Anonim
Tuş Takımı Servo Kilidi
Tuş Takımı Servo Kilidi
Tuş Takımı Servo Kilidi
Tuş Takımı Servo Kilidi
Tuş Takımı Servo Kilidi
Tuş Takımı Servo Kilidi

Herkese merhaba, umarım gününüz güzel geçmiştir. Umarım değilse, bu eğitime ve bazı terapötik müziklere biraz açık fikirlilikle geri sarabilirsiniz. Programlama bir güçlük olabilir. Neyse ki, bu öğretici bir güçlük değil, bu yüzden (güçlü bir sesle) adlı popüler bir şeyi başarabilirsiniz: ULTIMATE SERVO KEYPAD LOCK!!! Bu gerçekten benim tanıtımım, umarım beğenmişsinizdir. Her neyse, parmaklarımızı yazmak için ısıtalım. (Harika bir şarkı: can-can şarkısı (klasik müzik)).

Gereçler:

-Senin parmakların

- Ellerin de önemli.

-Arduino için USB kablosu

-Her türlü arduino mevcut (Arduino Mega'm var)

-Matrix Tuş Takımı (tuş takımı - ebay, tuş takımı - amazon)

-Mikro veya Standart servo (mikro servo kullanıyorum)

-*Opsiyonel* Breadboard - herhangi bir tür

-*Opsiyonel* Güç kaynağı (5V)

Adım 1: Şematik Zaman

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

Peki, ilk ne yapmalı? Arduino'yu bilgisayara bağlayın. Ardından tuş takımını bağlayın. *Not - arduino üzerindeki ilk dijital pin olarak tuş takımındaki son pinden gelen pinleri bağlamanız gerekir. Ve bundan sonra sağdan sola gidin*. Tuş takımının arduino üzerinde 2-9 pinleri vardır. Servo, dijital sinyaller olarak pin 10'a sahiptir. Arduino, tuş takımı ve servo ile 5V'nin topraklarını da bağlayın. *Ayrıca, servonun en iyi şekilde harici bir güç kaynağıyla veya 5V'luk (duvar prizi) bir adaptörle kullanıldığını unutmayın, ancak yine de isteğe bağlıdır.* Toprakları ve 5V'u fiziksel olarak bağlamanız gerekmez, demek istediğim şu ki sadece Arduino'dan servoya bir tel takmak için. Bu şema yeni başlayanlara yardımcı olmuyor, bu yüzden kısa ayrıntılı açıklamama izin verin. Temel olarak, son pin 2'dir ve birincisi 9'dur, ikisi 8'dir, üçü 7'dir vb. Soldan sağa gidin 2 2.

Adım 2: Kodlama Zamanı

Kodlama Zamanı!
Kodlama Zamanı!
Kodlama Zamanı!
Kodlama Zamanı!

Tamam, şimdi kodlama kısmına geldik! Gerçek sihrin gerçekleştiği yer burası! Yani önce keypad ve servoyu test etmek için bir test programı var. Buraya:

//www.elegoo.com//2016.12.9

/* @file CustomKeypad.pde

|| @versiyon 1.0 || @yazar Alexander Brevig || @contact [email protected] || || @açıklama || | Tuş takımı boyutunu ve tuş değerlerini değiştirmeyi gösterir. || # */ #Dahil etmek

const bayt SATIRLAR = 4; //dört satır

const bayt COLS = 4; //dört sütun //keypadlerin düğmeleri üzerindeki sembolleri tanımlayın char hexaKeys[ROWS][COLS] = { {'1', '2', '3', 'A'}, {'4', '5 ', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; bayt rowPins[SATIR] = {9, 8, 7, 6}; //tuş takımının satır pin çıkışlarına bağlan bayt colPins[COLS] = {5, 4, 3, 2}; // tuş takımının sütun pinlerine bağlanın

//NewKeypad sınıfının bir örneğini başlat

Tuş takımı özelKeypad = Tuş takımı(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

geçersiz kurulum(){

Seri.başla(9600); } void loop(){ char customKey = customKeypad.getKey(); if (customKey){ Serial.println(customKey); } }

//www.elegoo.com//2016.12.08 #include

Servo myservo; // bir servoyu kontrol etmek için servo nesnesi yarat

// çoğu kartta on iki servo nesnesi oluşturulabilir

int konum = 0; // servo konumunu saklamak için değişken

geçersiz kurulum() {

myservo.attach(9); // pin 9'daki servoyu servo nesnesine bağlar }

boşluk döngüsü () {

for (konum = 0; konum = 0; konum -= 1) { // 180 dereceden 0 dereceye gider myservo.write(poz); // servoya 'pos' gecikmesi(15) değişkeninde pozisyona gitmesini söyle; // servonun pozisyona ulaşması için 15ms bekler } }

İşte proje kodu (Dürüst olacağım, pek bir şey yapmadım, sadece servo kısmını ekledim, tüm kodu yapanlara teşekkürler!):

#include Password.h

#include Tuş Takımı

/*

|| Matris Tuş Takımını Kullanarak Basit Parola Girişi || 05.04.2012 Güncellemeler Nathan Sobieck: [email protected] || *

/* şifreyi doğrulamak içindir

//# şifre denemesini sıfırlamak içindir

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

#Dahil etmek

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

Şifre şifre = Şifre ("1234");

Servo myservo; // bir servoyu kontrol etmek için servo nesnesi yarat

#define servoPin 10

const bayt SATIRLAR = 4; // Dört satır

const bayt COLS = 4; // sütunlar // Keymap karakter anahtarlarını tanımlayın[ROWS][COLS] = { {'1', '2', '3', 'A'}, {'4', '5', '6', ' B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} };

byte rowPins[ROWS] = { 9, 8, 7, 6 }; // ROW0, ROW1, ROW2 ve ROW3 tuş takımını bu Arduino pinlerine bağlayın.

bayt colPins[COLS] = { 5, 4, 3, 2, }; // COL0, COL1 ve COL2 tuş takımını bu Arduino pinlerine bağlayın.

// Tuş Takımını Oluştur

Tuş takımı tuş takımı = Tuş takımı(makeKeymap(tuşlar), rowPins, colPins, ROWS, COLS);

geçersiz kurulum() {

myservo.attach(servoPin); // pin 9'daki servoyu servo nesnesine bağlar

Seri.başla(9600);

keypad.addEventListener(keypadEvent); // bu tuş takımı için bir olay dinleyicisi ekle

myservo.write(0);

}

boşluk döngüsü () {

keypad.getKey();

}

//bazı özel olaylarla ilgilen

void keypadEvent(KeypadEvent eKey) { switch (keypad.getState()) { case PRESSED: switch (eKey) { case '*': checkPassword(); kırmak; varsayılan: password.append(eKey); } } }

geçersiz checkPassword() {

if (password.evaluate() == true) { Serial.println("Success"); //Çalışırsa çalıştırılacak kodu ekleyin

myservo.write(180);

gecikme(3000);

myservo.write(0);

parola sıfırlama();

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

Serial.println("Yanlış");

myservo.write(0);

//Çalışmadıysa çalıştırılacak kodu ekleyin

}

}

Adım 3: Tüm Bunlar Ne Anlama Geliyor?

Bütün bunlar ne anlama geliyor?
Bütün bunlar ne anlama geliyor?

Yukarıdaki kod (ilk kod), Servo'ya "süpürmesi" veya sadece 0'dan 180 dereceye gitmesi için bir sinyal verecektir. Ya da sadece soldan sağa veya sağdan sola yarım bir dönüş çemberini tamamlamak. Kod hakkında daha fazla ayrıntı istiyorsanız, size söyleyebilirim. Sadece lütfen sor. Zarar yok, sadece küçük bir soru. Hadi ama, yapabilirsin! Her neyse, ortadaki kod tuş takımının her düğmesini test ediyor. Ve kodun sonuncusu, "1234" şifresini yazdığınızda servo ile "kilidi açar", tahmin ettiniz, tuş takımı.

4. Adım: Sorun Giderme

Sorun giderme
Sorun giderme

S: Tuş takımım çalışmıyor.

C: İlk pinin 9 olduğunu unutmayın, o yüzden oradan aşağı inin. Ayrıca arduino'yu bilgisayarın USB portuna bağladığınızdan ve Arduino'yu programladığınızdan emin olun.

S: Servo çalışmıyor.

C: Servo pininin pin 10 olduğunu ve ortak bir toprağa ihtiyacınız olduğunu unutmayın, eğer doğrudan Arduino'dan bağlanıyorsanız, turuncu pinin (mikro servo üzerindeki) pin 10 olduğunu, kırmızı pinin 5V olduğunu ve kahverengi pin GND pinidir.

S: Arduino çalışmıyor:

A: Bağladın mı? Bu kişisel bir sorun gibi geliyor

Adım 5: Herhangi Bir Sorunuz Varsa Yorum Kısmından Sormaktan Çekinmeyin ve Abone Olmayı Unutmayın

Hoşçakal, öğreticimi görüntülediğiniz için teşekkürler. Eğlenceliydi.

Önerilen: