Modul 2 Percobaan 4
Kontrol Motor Servo dengan PWM
1. Prosedur [Kembali]
- Rangkai semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai masukkan program ke arduino
- Jalankan program pada simulasi dan cobakan dengan modul
- Lihat hasil pada 7-Segment
- Rangkaian
- Prinsip Kerja
Servo.h adalah untuk mengontrol motor servo dan Keypad.h untuk mengontrol keypad.
bagian-bagian program ini diantaranya:
1.Mendefinisikan Variabel:
servoPin: Menentukan pin PWM untuk motor servo.
numRows dan numCols: Menentukan jumlah baris dan kolom pada keypad.
keys: Array karakter untuk menyimpan layout keypad.
rowPins dan colPins: Menentukan pin pada Arduino yang terhubung dengan baris dan kolom keypad.
keypad: Menginisialisasi keypad.
2.Setup:
Program menginisialisasi motor servo.
Menentukan posisi awal motor servo (biasanya 90 derajat).
Mengatur komunikasi serial dengan kecepatan 9600 baud.
3.Loop Utama:
Program memeriksa apakah ada tombol keypad yang ditekan menggunakan fungsi keypad.getKey().
Jika ada tombol yang ditekan (key != NO_KEY), program mencetak tombol tersebut ke Serial Monitor dan melakukan aksi sesuai dengan tombol yang ditekan menggunakan struktur switch-case.
4.Aksi Motor Servo:
Setiap case dalam switch-case mengatur posisi motor servo sesuai dengan tombol yang ditekan pada keypad. Misalnya, jika tombol ‘1’ ditekan, motor servo akan diposisikan pada 0 derajat, jika tombol ‘2’ ditekan, motor servo akan diposisikan pada 45 derajat, dan seterusnya.
5.Loop Berlanjut:
Setelah menjalankan aksi yang sesuai dengan tombol yang ditekan, program kembali ke awal loop untuk terus memonitor input dari keypad dan mengontrol motor servo.
- Flowchart
- Listing Program
//M2P4
#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;
}
}
}
Percobaan 4 Kontrol Motor Servo dengan PWM.
- HTML klik disini
- Gambar Hardware klik disini
- Gambar Simulasi klik disini
- Video Demo klik disini
- Listring Program klik disini
Tidak ada komentar:
Posting Komentar