LAPORAN AKHIR MODUL 2 PERCOBAAAN 4
Modul 2 PWM, ADC, dan Interrupt
- Buatlah rangkaian sesuai dengan kondisi yang telah dipilih
- Buat Program pada software Arduino IDE
- Masukkan program yang telah dibuat pada software Arduino IDE sebagai library Arduino
- Jalankan rangkaian, sesuai dengan kondisi yang diinginkan
- Lihat output pada putaran motor servo dengan menekan keypad
a. Hardware
b. Diagram Blok
a. Rangkaian Simulasi
Pada percobaan kali ini terdapat keypad sebagai inputan dan motor servo sebagai outputannya. Rangkaian ini bekerja sesuai dengan program yang telah kita masukkan pada ARDUINO, ketika kita menekan angka 1 pada keypad maka motor servo akan berada pada posisi 0 derajat, ketika kita menekan angka 2 pada keypad maka motor servo akan berada pada posisi 45 derajat, ketika kita menekan angka 3 pada keypad maka motor servo akan berada pada posisi 90 derajat, ketika kita menekan angka 4 pada keypad maka motor servo akan berada pada posisi 135 derajat, ketika kita menekan angka 5 pada keypad maka motor servo akan berada pada posisi 180 derajat, ketika kita menekan angka 6 pada keypad maka motor servo akan berada pada posisi 135 derajat, ketika kita menekan angka 7 pada keypad maka motor servo akan berada pada posisi 90 derajat, ketika kita menekan angka 8 pada keypad maka motor servo akan berada pada posisi 45 derajat, dan ketika kita menekan angka 9 pada keypad maka motor servo akan berada pada posisi 0 derajat.
Hal ini sesuai dengan program yang telah kita masukkan pada arduino.
a. Flowchart
b. 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;
}
}
}
Keypad 1 hingga 9 memberikan PWM 0-180 dengan jarak PWM antar key 45
Download HTML klik disini
Download Program Arduino klik disini
Download Video Demo klik disini
Download Gambar Hardware klik disini
Download Gambar Simulasi klik disini
Download Datasheet Motor Servo klik disini
Komentar
Posting Komentar