Isi kandungan:

Positoning Servo Dengan Pad Kekunci: 3 Langkah
Positoning Servo Dengan Pad Kekunci: 3 Langkah

Video: Positoning Servo Dengan Pad Kekunci: 3 Langkah

Video: Positoning Servo Dengan Pad Kekunci: 3 Langkah
Video: Proses pasang Ring Jantung atau Cincin Jantung #cardio #cardiology #ringjantung 2024, Julai
Anonim
Servo Positoning Dengan Pad Kekunci
Servo Positoning Dengan Pad Kekunci

Dalam instruksional ini, kami akan membuat projek yang akan mengendalikan Micro-Servo dengan papan kekunci yang menjalankannya dengan Arduino Uno.

Bahan yang Digunakan:

Arduino Uno

Papan roti

Pad Kekunci 4x4

Servo Mikro

Langkah 1: Kabel Pad Kekunci

Kabel Pad Kekunci
Kabel Pad Kekunci
Kabel Pad Kekunci
Kabel Pad Kekunci

Fikiran pertama yang perlu anda lakukan ialah memasang wayar rel dan landasan pada papan roti dari Arduino anda

  1. Sambungkan pin 5V ke rel kuasa (merah)
  2. Sambungkan pin Ground (GND) ke landasan landasan (biru)

Setelah papan roti mempunyai kuasa dan dibumikan, kita dapat mula memasang komponen.

Pendawaian Papan Kekunci adalah mudah tetapi anda perlu mengambil perhatian pada pin pada papan kekunci dan arduino. Ini akan menjadi berguna apabila kita memperhatikan kod kita.

Ingatlah untuk memulakan di sebelah kiri semasa menggunakan wayar anda!

  • Pin pertama pergi ke 13
  • Pin kedua menuju ke 12
  • Pin ketiga menuju ke 11
  • Pin keempat pergi ke 10
  • Pin kelima hingga 9
  • Pin Keenam hingga 8
  • Pin Ketujuh hingga 7
  • Pin Kelapan hingga 6

Semasa memasang papan kekunci, ingat untuk memastikan pin pwm digital terbuka. Kami memerlukannya untuk servo mikro

Sebelum kita mendapatkan kod, pastikan bahawa anda telah memasang Perpustakaan Keypad. Ia boleh didapati di sketsa anda, kemudian tab sketsa, termasuk perpustakaan. Anda tidak akan dapat menggunakan pad kekunci tanpa itu.

Sekarang mari kita beralih ke kod dan pastikan pad kekunci berfungsi dan memberikan nilai yang dihadiri

Nota Pantas: Pastikan anda mempunyai pernyataan if untuk memeriksa papan kekunci, jika tidak, ia tidak akan berfungsi. Juga berhati-hati dengan kelewatan, mereka akan merosakkan butang yang didaftarkan dari papan kekunci

#sertakan

baris const byte = 4; // empat baris sejak pad kekunci penuh

lajur bait const = 4; // empat lajur, sama seperti di atas

butang char [baris] [lajur] = {

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

bait barisP [baris] = {13, 12, 11, 10}; // pin baris kekunci

bait lajurP [lajur] = {9, 8, 7, 6}; // pin lajur pad kekunci

Pad kekunci = Pad kekunci (makeKeymap (butang), barisP, lajurP, baris, lajur); // buat pad kekunci

batal persediaan () {

Serial.begin (9600); }

gelung kosong () {

butang charTekanan = pad.getKey (); // dapatkan char dari papan kekunci jika (buttonPressed) // tunjukkan butang apa yang ditekan pada papan kekunci {Serial.println (buttonPressed); }}

Langkah 2: Tambahkan Servo Mikro

Tambah Servo Mikro
Tambah Servo Mikro
Tambah Servo Mikro
Tambah Servo Mikro

Sekarang mari tambah motor servo. Yang ini sangat senang ditambahkan pada projek kami sekarang kerana pelayan mikro hanya mempunyai tiga wayar.

  • Kawat coklat menuju ke landasan rel di papan roti
  • Merah menuju ke rel Power
  • Orange menuju ke Pin 3 di Arduino. Ingat pelayan mikro mesti mempunyai pin PWM di Arduino. Ini disebabkan oleh servo menggunakan TIMER2

Sekarang mari kita pastikan bahawa kita memasang kabel servo mikro dengan betul dan ia bergerak

#masuk #masuk "Servo.h"

baris const byte = 4; // empat baris sejak pad kekunci penuh

lajur bait const = 4; // empat lajur, sama seperti di atas

butang char [baris] [lajur] = {

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

bait barisP [baris] = {13, 12, 11, 10}; // pin baris kekunci

bait lajurP [lajur] = {9, 8, 7, 6}; // pin lajur pad kekunci

Pad kekunci = Pad Kekunci (makeKeymap (butang), barisP, lajurP, baris, lajur); // buat pad kekunci

Servo semasaServo; // buat objek servo untuk mengawal servo

// dua belas objek servo boleh dibuat di kebanyakan papan

int pos = 0; // pemboleh ubah untuk menyimpan kedudukan servo

batal persediaan () {

Serial.begin (9600); currentServo.attach (3); // melekatkan servo pada pin 9 pada objek servo

}

gelung kosong () {

butang charTekanan = pad.getKey (); // dapatkan char dari papan kekunci jika (buttonPressed) // tunjukkan butang apa yang ditekan pada papan kekunci {Serial.println (buttonPressed); }

currentServo.write (95);

}

Langkah 3: Ubahsuai Kod untuk Menggunakan Pad Kekunci pada Servo

Ketahui bahawa kita akan mengubah kod kita sehingga apabila kita menekan butang tertentu pada papan kekunci, servo bergerak ke posisi tertentu. Perkara yang penting terlebih dahulu. Kedudukan servo untuk 0 adalah pelik. Oleh kerana saya mempunyai servo putaran berterusan, setiap kali mendekati 0, servo baru mula berputar. Nombor yang saya masukkan dalam kod adalah serendah yang saya boleh pergi tanpa itu berlaku. Bagaimanapun, inilah kod terakhir saya:

#sertakan #sertakan

baris const byte = 4; // empat baris sejak pad kekunci penuh

lajur bait const = 4; // empat lajur, sama seperti di atas

butang char [baris] [lajur] = {

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

bait barisP [baris] = {13, 12, 11, 10}; // pin baris kekunci

bait lajurP [lajur] = {9, 8, 7, 6}; // pin lajur pad kekunci

Pad kekunci = Pad Kekunci (makeKeymap (butang), barisP, lajurP, baris, lajur); // buat pad kekunci

Servo myServo; //

batal persediaan () {

Serial.begin (9600); myServo.attach (5); // melekatkan servo pada pin 9 pada objek servo}

gelung kosong () {

kunci char = pad.getKey (); // dapatkan char dari papan kekunci jika (key == '0') {myServo.write (11); Serial.println ("0"); kelewatan (15); } jika (kunci == '1') {myServo.write (12); Serial.println ("1"); kelewatan (15); } jika (kunci == '2') {myServo.write (24); Serial.println ("2"); kelewatan (15); } jika (kunci == '3') {myServo.write (36); Serial.println ("3"); kelewatan (15); }

jika (kunci == '4')

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

jika (kunci == '5')

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

jika (kunci == '6')

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

jika (kunci == '7')

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

jika (kunci == '8')

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

jika (kunci == '9')

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

jika (kunci == '*')

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

jika (kunci == '#')

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

jika (kunci == 'A')

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

jika (kunci == 'B')

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

jika (kunci == 'C')

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

jika (kunci == 'D')

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

Disyorkan: