Laporan Akhir 2 Modul II
Percobaan 2
Kontrol Motor Servo dengan PWM
1. Foto Hardware dan Diagram Blok [Kembali]
3. Keypad
Diagram Blok:
2. Prosedur Percobaan [Kembali]
+ Rangkai semua komponen
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino
+ jalankan program pada simulasi dan cobakan dengan modul
Prinsip Kerja
Pada percobaan kali ini kita menggunakan beberapa komponen yaitu Arduino Uno, Keypad dan motor servo
Percobaan kali ini kita hanya akan menggunakan Keypad sebagai input dan motor servo sebagai output yang akan menerima sinyal PWM dari arduino Ketika tombol pada keypad ditekan, Arduino membaca input dari keypad dan mengidentifikasi tombol yang ditekan. Berdasarkan tombol yang ditekan, Arduino menentukan sudut yang sesuai untuk servo motor. Untuk kondisi dari tombol-tombolnya yaitu seperi dibawah:
Tombol 1 akan menggerakkan motor servo sebesar 0 derajat
Tombol 2 akan menggerakkan motor servo sebesar 45 derajat
Tombol 3 akan menggerakkan motor servo sebesar 90 derajat
Tombol 4 akan menggerakkan motor servo sebesar 135 derajat
Tombol 5 akan menggerakkan motor servo sebesar 180 derajat
Tombol 6 akan menggerakkan motor servo sebesar 135 derajat
Tombol 7 akan menggerakkan motor servo sebesar 90 derajat
Tombol 8 akan menggerakkan motor servo sebesar 45 derajat
Tombol 9 akan menggerakkan motor servo sebesar 0 derajat
Dari kondisi atau case diatas maka arduino mengirimkan sinyal PWM ke servo motor dengan nilai yang sesuai dengan nilai sudut yang ditentukan. Lalu motor servo menerima sinyal PWM dan berputar ke sudut yang telah ditentukan.
4. Flowchart dan Listing Program [Kembali]
Flowchart
Listing Program:
#include <Servo.h>
#include <Keypad.h>
Servo servoMotor;
const int servoPin = 11; // PWM pin for servo
const int numRows = 4; // Number of rows in keypad
const int numCols = 3; // Number of columns in keypad
char keys[numRows][numCols] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
byte rowPins[numRows] = {9, 8, 7, 6}; // Rows 0 to 3
byte colPins[numCols] = {5, 4, 3}; // Columns 0 to 2
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, numRows, numCols);
void setup() {
servoMotor.attach(servoPin);
servoMotor.write(90); // Initial position
Serial.begin(9600);
}
void loop() {
char key = keypad.getKey();
if (key != NO_KEY) {
Serial.println(key);
// Perform actions based on the key pressed
switch (key) {
case '1':
// Move servo to position 0 degrees
servoMotor.write(0);
break;
case '2':
// Move servo to position 45 degrees
servoMotor.write(45);
break;
case '3':
// Move servo to position 90 degrees
servoMotor.write(90);
break;
case '4':
// Move servo to position 135 degrees
servoMotor.write(135);
break;
case '5':
// Move servo to position 180 degrees
servoMotor.write(180);
break;
case '6':
// Move servo to position 135 degrees
servoMotor.write(135);
break;
case '7':
// Move servo to position 90 degrees
servoMotor.write(90);
break;
case '8':
// Move servo to position 45 degrees
servoMotor.write(45);
break;
case '9':
// Move servo to position 0 degrees
servoMotor.write(0);
break;
default:
break;
}
}
}
Motor servo akan bergerak sesuai masukkan tombol keypad yang mana tiap tombol keypad memiliki sudut rotasi tertentu.
᭒ HTML↠ klik disini
᭒ Video Percobaan↠ klik disini
᭒ Program↠ klik disini
᭒ Datasheet Arduino↠ klik disini
᭒ Datasheet Motor Servo↠ klik disini
᭒ Datasheet Keypad↠ klik disini





0 Response to "Laporan Akhir 2 Modul II"
Posting Komentar