Daftar Isi:

Penempatan Servo Dengan Keypad: 3 Langkah
Penempatan Servo Dengan Keypad: 3 Langkah

Video: Penempatan Servo Dengan Keypad: 3 Langkah

Video: Penempatan Servo Dengan Keypad: 3 Langkah
Video: Multiple Servo Control with Arduino Uno R3 2024, November
Anonim
Penempatan Servo Dengan Keypad
Penempatan Servo Dengan Keypad

Dalam instruksi ini kami akan membuat proyek yang akan mengontrol Servo Mikro dengan keypad yang menjalankannya dengan Arduino Uno.

Bahan-bahan yang digunakan:

Arduino Uno

Papan tempat memotong roti

Papan tombol 4x4

Mikro-Servo

Langkah 1: Hubungkan Keypad

Hubungkan Keypad
Hubungkan Keypad
Hubungkan Keypad
Hubungkan Keypad

Hal pertama yang perlu Anda lakukan adalah memasang kabel power rail dan grounding rail pada papan tempat memotong roti Anda dari Arduino Anda

  1. Hubungkan pin 5V ke rel listrik (merah)
  2. Hubungkan pin Ground (GND) ke rel grounding (biru)

Sekarang papan tempat memotong roti memiliki daya dan diarde, kita dapat mulai memasang kabel komponen kita.

Menghubungkan Keypad mudah tetapi Anda perlu memperhatikan pin pada keypad dan arduino. Ini akan berguna ketika kita mengalihkan perhatian kita ke kode kita.

Ingatlah untuk mulai dari kiri saat menggunakan kabel Anda!

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

Saat memasang kabel pada keypad, ingatlah untuk menjaga pin pwm digital tetap terbuka. Kami akan membutuhkannya untuk mikro-servo

Sebelum kita masuk ke kode, pastikan Anda telah menginstal Perpustakaan Keypad. Itu dapat ditemukan di sketsa Anda, lalu tab sketsa, sertakan perpustakaan. Anda tidak akan dapat menggunakan keypad tanpanya.

Sekarang mari kita beralih ke kode dan pastikan keypad berfungsi dan memberikan nilai yang dihadiri

Catatan Cepat: Pastikan Anda memiliki pernyataan if untuk memeriksa keypad, jika tidak maka tidak akan berfungsi. Juga berhati-hatilah terhadap penundaan, mereka akan mengacaukan tombol yang didaftarkan dari keypad

#termasuk

baris byte const = 4; //empat baris sejak keypad penuh

kolom byte const = 4; //empat kolom, sama seperti di atas

tombol char[baris][kolom] = {

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

byte rowP[baris] = {13, 12, 11, 10}; //baris pin pada keypad

byte kolomP[kolom] = {9, 8, 7, 6}; //pin kolom pada keypad

Papan tombol = Papan tombol(makeKeymap(tombol), barisP, kolomP, baris, kolom); //buat papan tombol

batalkan pengaturan(){

Serial.begin(9600); }

lingkaran kosong(){

char buttonPressed = pad.getKey(); //ambil karakter dari keypad if(buttonPressed) //tampilkan tombol apa yang ditekan pada keypad { Serial.println(buttonPressed); } }

Langkah 2: Tambahkan Servo Mikro

Tambahkan Servo Mikro
Tambahkan Servo Mikro
Tambahkan Servo Mikro
Tambahkan Servo Mikro

Sekarang mari kita tambahkan motor servo. Yang ini sangat mudah untuk ditambahkan ke proyek kami saat ini karena server mikro hanya memiliki tiga kabel.

  • Kawat coklat menuju ke grounding rail di papan tempat memotong roti
  • Merah pergi ke Power rail
  • Oranye masuk ke Pin 3 di Arduino. Ingat server mikro harus memiliki pin PWM di Arduino. Ini karena servo menggunakan TIMER2

Sekarang mari kita pastikan bahwa kita menghubungkan servo mikro dengan benar dan itu bergerak

#include #include "Servo.h"

baris byte const = 4; //empat baris sejak keypad penuh

kolom byte const = 4; //empat kolom, sama seperti di atas

tombol char[baris][kolom] = {

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

byte rowP[baris] = {13, 12, 11, 10}; //baris pin pada keypad

byte kolomP[kolom] = {9, 8, 7, 6}; //pin kolom pada keypad

Papan tombol = Papan tombol(makeKeymap(tombol), barisP, kolomP, baris, kolom); //buat papan tombol

Servo saat iniServo; // buat objek servo untuk mengontrol servo

// dua belas objek servo dapat dibuat di sebagian besar papan

int pos = 0; // variabel untuk menyimpan posisi servo

batalkan pengaturan(){

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

}

lingkaran kosong(){

char buttonPressed = pad.getKey(); //ambil karakter dari keypad if(buttonPressed) //tampilkan tombol apa yang ditekan pada keypad { Serial.println(buttonPressed); }

currentServo.write(95);

}

Langkah 3: Ubah Kode untuk Menggunakan Keypad di Servo

Ketahuilah bahwa kita akan memodifikasi kode kita sehingga ketika kita menekan tombol tertentu pada keypad, servo bergerak ke posisi tertentu. Suatu hal yang penting terlebih dahulu. Posisi servo untuk 0 aneh. Karena saya memiliki servo rotasi kontinu, setiap kali mendekati 0, servo mulai berputar. Nomor yang saya masukkan ke dalam kode serendah mungkin tanpa itu terjadi. Bagaimanapun, inilah kode terakhir saya:

#sertakan #sertakan

baris byte const = 4; //empat baris sejak keypad penuh

kolom byte const = 4; //empat kolom, sama seperti di atas

tombol char[baris][kolom] = {

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

byte rowP[baris] = {13, 12, 11, 10}; //baris pin pada keypad

byte kolomP[kolom] = {9, 8, 7, 6}; //pin kolom pada keypad

Papan tombol = Papan tombol(makeKeymap(tombol), barisP, kolomP, baris, kolom); //buat papan tombol

Servo myServo; //

batalkan pengaturan(){

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

lingkaran kosong(){

kunci karakter = pad.getKey(); //ambil karakter dari keypad if(key == '0') { myServo.write(11); Serial.println("0"); penundaan (15); } if(kunci == '1') { myServo.write(12); Serial.println("1"); penundaan (15); } if(kunci == '2') { myServo.write(24); Serial.println("2"); penundaan (15); } if(kunci == '3') { myServo.write(36); Serial.println("3"); penundaan (15); }

jika(kunci == '4')

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

jika(kunci == '5')

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

jika(kunci == '6')

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

jika(kunci == '7')

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

jika(kunci == '8')

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

jika(kunci == '9')

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

jika(kunci == '*')

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

jika(kunci == '#')

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

jika(kunci == 'A')

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

jika(kunci == 'B')

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

jika(kunci == 'C')

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

jika(kunci == 'D')

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

Direkomendasikan: