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
Rangkaian ini menggunakan komponen antara lain yaitu Arduino Uno, keypad, dan Motor Servo
Rangkaian ini bekerja dengan menghubungkan keypad ke Arduino Uno dan servo motor ke Arduino Uno. Pada rangkaian ini arduino akan menerima input dari keypad dan mengontrol servo motor. 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.
Tombol 1: 0 derajat
Tombol 2: 45 derajat
Tombol 3: 90 derajat
Tombol 4: 135 derajat
Tombol 5: 180 derajat
Tombol 6: 135 derajat
Tombol 7: 90 derajat
Tombol 8: 45 derajat
Tombol 9: 0 derajat
Arduino mengirimkan sinyal kontrol ke servo motor dengan nilai yang sesuai dengan sudut yang ditentukan. Lalu motor servo menerima sinyal kontrol dan berputar ke sudut yang 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
Komentar
Posting Komentar