LA 2 M2
Percobaan 4
Kontrol Motor Servo dengan PWM
1. Foto Hardware dan Diagram Blok [Kembali]
3. Keypad
4. Kabel Jumper
5. Papan Breadboard
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 untuk mengendalikan motor servo dengan tombol-tombol pada keypad. Berikut cara kerjanya:
- Hubungan Komponen: Keypad dan motor servo dihubungkan ke Arduino Uno.
- Input Keypad: Ketika tombol pada keypad ditekan, Arduino membaca input dan mengidentifikasi tombolnya.
- Penentuan Sudut: Berdasarkan tombol yang ditekan, Arduino menentukan sudut yang sesuai untuk motor servo.
- Kontrol Servo: Arduino mengirimkan sinyal kontrol ke servo motor dengan nilai yang sesuai dengan sudut yang ditentukan.
- Pergerakan Servo: Motor servo menerima sinyal kontrol dan berputar ke sudut yang ditentukan.
Daftar Sudut:
- 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
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.
Download File HTML klik disini
Download Video Percobaan klik disini
Download File Program klik disini
Download File Datasheet Arduino klik disini
Download File Datasheet Motor Servo klik disini
Download File Datasheet Keypad klik disini
Komentar
Posting Komentar