Modul 2
Percobaan 4
1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
2. Buat program menggunakan Arduino IDE.
3. Compile program yang telah dibuat lalu Upload ke dalam Arduino Uno.
4. Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang diinginkan.
5. Selesai
2. Hardware dan Diagram Blok
[Kembali]
1. Arduino
2. Motor Servo
3.Keypad
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Rangkaian :
4. Flowchart dan Listing Program [Kembali]
Prinsip Kerja :
Pada rangkaian ini, input dari arduino berupa keypad yang bagian row/barsinya terhubung pada pin 6-9 arduino, dan bagian kolomnya terhubung pada pin 3-5 arduino. Untuk inputnya yaitu berupa motor servo yang mana pin logicnya terhubung ke pin 11 arduini (Pin PWM), dan pin ground serta vcc nya terhubung pin ground dan vcc arduino.
Ketika rangkaian di jalankan, input dari keypad berupa angka yang ditekan, akan mengeluarkan output yang seusai angka yang ditekan tersebut. Dimana masing masing angka pada keypad tersebut telah diatur untuk mengatur sudut dari motor servo. berikut pengaturan input dan output dari keypad :
angka 1 ------ memutar servo sejauh 0 derajat
angka 2 ------ memutar servo sejauh 45 derajat
angka 3 ------ memutar servo sejauh 90 derajat
angka 4 ------ memutar servo sejauh 135 derajat
angka 5 ------ memutar servo sejauh 180 derajat
angka 6 ------ memutar servo sejauh 135 derajat
angka 7 ------ memutar servo sejauh 90 derajat
angka 8 ------ memutar servo sejauh 45 derajat
angka 9 ------ memutar servo sejauh 0 derajat
4. Flowchart dan Listing Program [Kembali]
Flowchart :
Listing Program :
#include <Servo.h> // Memasukkan library Servo untuk mengendalikan servo motor.
#include <Keypad.h> // Memasukkan library Keypad untuk membaca input dari keypad.
Servo servoMotor; // Membuat objek servoMotor dari kelas Servo untuk mengendalikan servo.
const int servoPin = 11; // Mendefinisikan pin yang terhubung ke servo motor.
const int numRows = 4; // Mendefinisikan jumlah baris pada keypad.
const int numCols = 3; // Mendefinisikan jumlah kolom pada keypad.
// 7. Mendefinisikan layout tombol pada keypad.
char keys[numRows][numCols] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
// Mendefinisikan pin GPIO yang terhubung ke baris pada keypad.
byte rowPins[numRows] = {9, 8, 7, 6};
// Mendefinisikan pin GPIO yang terhubung ke kolom pada keypad.
byte colPins[numCols] = {5, 4, 3};
// Membuat objek keypad dengan konfigurasi yang ditentukan.
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, numRows, numCols);
void setup() {
servoMotor.attach(servoPin); // Menghubungkan servo motor ke pin yang ditentukan.
servoMotor.write(90); // Mengatur posisi awal servo motor ke 90 derajat.
Serial.begin(9600); // Memulai komunikasi serial dengan baud rate 9600.
}
void loop() {
char key = keypad.getKey(); // Membaca tombol yang ditekan pada keypad.
if (key != NO_KEY) { // Memeriksa apakah ada tombol yang ditekan.
Serial.println(key); //Mencetak tombol yang ditekan ke serial monitor.
// 17. Menentukan aksi berdasarkan tombol yang ditekan.
switch (key) {
case '1': // Jika tombol 1 ditekan,
servoMotor.write(0); // menggerakkan servo ke 0 derajat.
break;
case '2': // Jika tombol 2 ditekan,
servoMotor.write(45); // menggerakkan servo ke 45 derajat.
break;
case '3': // Jika tombol 3 ditekan,
servoMotor.write(90); // menggerakkan servo ke 90 derajat.
break;
case '4': // Jika tombol 4 ditekan,
servoMotor.write(135); // menggerakkan servo ke 135 derajat.
break;
case '5': // Jika tombol 5 ditekan,
servoMotor.write(180); // menggerakkan servo ke 180 derajat.
break;
case '6': // Tombol 6 memiliki fungsi yang sama dengan tombol 4,
servoMotor.write(135); // menggerakkan servo ke 135 derajat lagi.
break;
case '7': // Tombol 7 memiliki fungsi yang sama dengan tombol 3,
servoMotor.write(90); // menggerakkan servo ke 90 derajat lagi.
break;
case '8': // Tombol 8 memiliki fungsi yang sama dengan tombol 2,
servoMotor.write(45); // menggerakkan servo ke 45 derajat lagi.
break;
case '9': // Tombol 9 memiliki fungsi yang sama dengan tombol 1,
servoMotor.write(0); // menggerakkan servo ke 0 derajat lagi.
break;
// Tidak ada aksi default yang diperlukan.
default:
break;
}
}
}
5. Video Demo
[Kembali]
6. Kondisi [Kembali]
Percobaan 4
Input Keypad Menggerakkan Motor Servo Sesuai Dengan Inputan Keypad Tersebut (sesuai modul)
Datasheet Motor Servo klik disini
Tidak ada komentar:
Posting Komentar