İçindekiler:

Tuş Takımı ile Servo Konumlandırma: 3 Adım
Tuş Takımı ile Servo Konumlandırma: 3 Adım

Video: Tuş Takımı ile Servo Konumlandırma: 3 Adım

Video: Tuş Takımı ile Servo Konumlandırma: 3 Adım
Video: Veichi Servo Motor Sistemleri Eğitimi 2. Gün | SD700, Soket Bağlantıları, Dahili Tuş Takımı 2024, Kasım
Anonim
Tuş Takımı ile Servo Konumlandırma
Tuş Takımı ile Servo Konumlandırma

Bu talimatta, Arduino Uno ile çalıştıran bir tuş takımı ile bir Micro-Servo'yu kontrol edecek bir proje oluşturacağız.

Kullanılan malzemeler:

Arduino Uno

ekmek tahtası

4x4 Tuş Takımı

Mikro Servo

Adım 1: Tuş Takımını Kablolayın

Tuş Takımını Kablolayın
Tuş Takımını Kablolayın
Tuş Takımını Kablolayın
Tuş Takımını Kablolayın

Yapmanız gereken ilk şey, güç rayını ve topraklama rayını breadboard'unuzdaki Arduino'nuzdan bağlamaktır.

  1. 5V pinini güç rayına bağlayın (kırmızı)
  2. Topraklama rayına (mavi) bir Topraklama pimi (GND) bağlayın

Artık devre tahtasına güç geldiğine ve topraklandığına göre, bileşenlerimizi kablolamaya başlayabiliriz.

Tuş Takımını kablolamak kolaydır ancak tuş takımı ve arduino üzerindeki pinlere dikkat etmeniz gerekir. Dikkatimizi kodumuza çevirdiğimizde işimize yarayacaktır.

Tellerinizi kullanırken soldan başlamayı unutmayın!

  • İlk pin 13'e gidiyor
  • İkinci pin 12'ye gidiyor
  • Üçüncü pin 11'e gidiyor
  • Dördüncü pin 10'a gidiyor
  • Beşinci pim 9'a
  • Altıncı Pin'den 8'e
  • Yedinci Pin'den 7'ye
  • Sekizinci Pin'den 6'ya

Tuş takımını bağlarken dijital bir pwm pinini açık tutmayı unutmayın. Mikro servo için buna ihtiyacımız olacak

Koda geçmeden önce Keypad Library'yi kurduğunuzdan emin olun. Eskizinizde bulunabilir, ardından eskiz sekmesinde, kitaplığı içerir. Tuş takımını onsuz kullanamazsınız.

Şimdi koda dönelim ve tuş takımının çalıştığından emin olun ve ilgili değerleri verin

Hızlı Notlar: Tuş takımını kontrol etmek için if ifadesine sahip olduğunuzdan emin olun, aksi takdirde çalışmaz. Ayrıca gecikmelere karşı dikkatli olun, tuş takımından kaydedilen düğmelerle uğraşacaklar

#Dahil etmek

const bayt satırları = 4; //tuş takımı dolu olduğundan beri dört satır

const bayt sütunları = 4; //dört sütun, yukarıdakiyle aynı

karakter düğmeleri[satırlar][sütunlar] = {

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

bayt satırP[satırlar] = {13, 12, 11, 10}; // tuş takımının satır pinleri

bayt sütunlarıP[sütunlar] = {9, 8, 7, 6}; // tuş takımının sütun pinleri

Tuş takımı = Tuş takımı(makeKeymap(düğmeler), satırP, sütunlarP, satırlar, sütunlar); // tuş takımı oluştur

geçersiz kurulum(){

Seri.başla(9600); }

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

char buttonPressed = pad.getKey(); //karakteri tuş takımından al if(buttonPressed) //tuş takımında hangi butona basıldığını göster { Serial.println(buttonPressed); } }

Adım 2: Mikro Servo'yu ekleyin

Mikro Servo'yu ekleyin
Mikro Servo'yu ekleyin
Mikro Servo'yu ekleyin
Mikro Servo'yu ekleyin

Şimdi servo motoru ekleyelim. Mikro sunucunun sadece üç kablosu olduğundan, bunu mevcut projemize eklemek gerçekten çok kolay.

  • Kahverengi tel, breadboard üzerindeki topraklama rayına gidiyor
  • Kırmızı, Güç rayına gider
  • Orange, Arduino'daki Pin 3'e gider. Mikro sunucunun Arduino üzerinde bir PWM pinine sahip olması gerektiğini unutmayın. Bunun nedeni TIMER2 kullanan servodur.

Şimdi mikro servoyu doğru bağladığımızdan ve hareket ettiğinden emin olalım.

#include #include "Servo.h"

const bayt satırları = 4; //tuş takımı dolu olduğundan beri dört satır

const bayt sütunları = 4; //dört sütun, yukarıdakiyle aynı

karakter düğmeleri[satırlar][sütunlar] = {

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

bayt satırP[satırlar] = {13, 12, 11, 10}; // tuş takımının satır pinleri

bayt sütunlarıP[sütunlar] = {9, 8, 7, 6}; // tuş takımının sütun pinleri

Tuş takımı = Tuş takımı(makeKeymap(düğmeler), satırP, sütunlarP, satırlar, sütunlar); // tuş takımı oluştur

Servo akımıServo; // 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(){

Seri.başla(9600); akımServo.attach(3); // pin 9'daki servoyu servo nesnesine bağlar

}

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

char buttonPressed = pad.getKey(); //karakteri tuş takımından al if(buttonPressed) //tuş takımında hangi butona basıldığını göster { Serial.println(buttonPressed); }

akımServo.write(95);

}

Adım 3: Servodaki Tuş Takımını Kullanmak için Kodu Değiştirin

Kodumuzu, tuş takımında belirli bir düğmeye bastığımızda servo belirli bir konuma hareket edecek şekilde değiştireceğimizi bilin. Önce önemli bir şey. 0 için servo konumu garipti. Sürekli dönüş servom olduğu için 0'a her yaklaştığında servo dönmeye başladı. Koda koyduğum sayı, bu olmadan gidebileceğim kadar düşüktü. Her neyse, işte son kodum:

#include #include

const bayt satırları = 4; //tuş takımı dolu olduğundan beri dört satır

const bayt sütunları = 4; //dört sütun, yukarıdakiyle aynı

karakter düğmeleri[satırlar][sütunlar] = {

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

bayt satırP[satırlar] = {13, 12, 11, 10}; // tuş takımının satır pinleri

bayt sütunlarıP[sütunlar] = {9, 8, 7, 6}; // tuş takımının sütun pinleri

Tuş takımı = Tuş takımı(makeKeymap(düğmeler), satırP, sütunlarP, satırlar, sütunlar); // tuş takımı oluştur

Servo myServo; //

geçersiz kurulum(){

Seri.başla(9600); myServo.attach(5); // pin 9'daki servoyu servo nesnesine bağlar }

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

karakter tuşu = pad.getKey(); //karakteri klavyeden al if(key == '0') { myServo.write(11); Serial.println("0"); gecikme(15); } if(key == '1') { myServo.write(12); Seri.println("1"); gecikme(15); } if(key == '2') { myServo.write(24); Seri.println("2"); gecikme(15); } if(key == '3') { myServo.write(36); Seri.println("3"); gecikme(15); }

if(anahtar == '4')

{ myServo.write(48); Seri.println("4"); gecikme(15); }

if(anahtar == '5')

{ myServo.write(60); Seri.println("5"); gecikme(15); }

if(anahtar == '6')

{ myServo.write(72); Seri.println("6"); gecikme(15); }

if(anahtar == '7')

{ myServo.write(84); Seri.println("7"); gecikme(15); }

if(anahtar == '8')

{ myServo.write(96); Seri.println("8"); gecikme(15); }

if(anahtar == '9')

{ myServo.write(108); Seri.println("9"); gecikme(15); }

if(anahtar == '*')

{ myServo.write(120); Seri.println("*"); gecikme(15); }

if(anahtar == '#')

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

if(anahtar == 'A')

{ myServo.write(146); Seri.println("A"); gecikme(15); }

if(anahtar == 'B')

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

if(anahtar == 'C')

{ myServo.write(170); Seri.println("C"); gecikme(15); }

if(anahtar == 'D')

{ myServo.write(180); Seri.println("D"); gecikme(15); } }

Önerilen: