1. Rangkai rangkaian pada alat sesuai dengan modul.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.
2. Hardware dan Diagram Blok
[Kembali]
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Prinsip Kerja :
Pada percobaan ini, kita menggunakan keypad sebagai inputan. Sedangkan yang berfungsi sebagai keluaran atau output adalah motor servo. Beberapa tahapan prinsip kerjanya adalah:
1. Inisialisasi: Pada awalnya, servo motor dihubungkan dan diberi posisi awal pada 90 derajat. Selain itu, keypad juga diinisialisasi dengan menentukan jumlah baris dan kolom, serta memetakan tombol-tombolnya.
2. Loop Utama: Program akan terus berjalan di dalam loop utama. Setiap iterasi dari loop, program akan memeriksa tombol mana yang ditekan pada keypad.
3. Pemeriksaan Tombol: Jika tombol pada keypad ditekan, karakter yang sesuai akan dibaca dari keypad.
4. Aksi Berdasarkan Tombol: Berdasarkan tombol yang ditekan, program akan melakukan aksi tertentu terhadap servo motor:
- Tombol 1: Memindahkan servo ke posisi 0 derajat.
- Tombol 2: Memindahkan servo ke posisi 45 derajat.
- Tombol 3: Memindahkan servo ke posisi 90 derajat.
- Tombol 4: Memindahkan servo ke posisi 135 derajat.
- Tombol 5: Memindahkan servo ke posisi 180 derajat.
- Tombol 6: Memindahkan servo ke posisi 135 derajat (sama dengan tombol 4).
- Tombol 7: Memindahkan servo ke posisi 90 derajat (sama dengan tombol 3).
- Tombol 8: Memindahkan servo ke posisi 45 derajat (sama dengan tombol 2).
- Tombol 9: Memindahkan servo ke posisi 0 derajat (sama dengan tombol 1).
4. Flowchart dan Listing Program
[Kembali]
Flowchart :
#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
6. Video Demo [Kembali]
7. Soal Analisa
[Kembali]
1. Apakah motor servo dapat berfungsi tanpa PWM? Kenapa hal seperti itu bisa terjadi?
2. Bagaimana cara motor servo bisa bergerak sesuai arah yang ditekan pada keypad nilai apa yang diberikan oleh keypad pada motor servo?
Datasheet Keypad Download
Datasheet motor servo Download
Tidak ada komentar:
Posting Komentar