Percobaan 4 Kondisi 3
1. Prosedur [Kembali]
Rangkailah seperti rangkaian berikut
Buka Arduino IDE dan masukan listing program Upload program ke arduino
Variasikan tombol yang ditekan dan amati keluarannya pada Motor Servo PWM
2. Hardware dan Diagram Blok [Kembali]
a. Arduino
b. Keypad
c. Motor Servo
- Rangkaian
- Prinsip Kerja
Pada percobaan 4 ini kita menggunakan 3 komponen yaitu Keypad sebagai inputan, Arduino sebagai Microntroller dan Motor servo sebagai Output. Prinsip kerja dari rangkaian ini ketika Arduino menerima inputan sinyal digital dari Keypad 4x4 yang mana kaki column dan row dihubungkan ke kaki arduino pada kaki 3-9 sesuai dengan program, maka Arduino akan menangkapnya sebagai sebuah instruksi, yang mana akan meneruskan ke Motor servo yang membaca sinyal pwm dihubungkan pada pin 11 pada kaki Arduino. Lalu sesuai dengan pola dan case-case pada program yang mana terdapat 9 case pada program akan ditampilkan berupa PWM 0-255 dengan jarak antar sudut 28 key.
- 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(0); // 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 28 degrees
servoMotor.write(28);
break;
case '2':
// Move servo to position 56 degrees
servoMotor.write(56);
break;
case '3':
// Move servo to position 84 degrees
servoMotor.write(84);
break;
case '4':
// Move servo to position 112 degrees
servoMotor.write(112);
break;
case '5':
// Move servo to position 140 degrees
servoMotor.write(140);
break;
case '6':
// Move servo to position 168 degrees
servoMotor.write(168);
break;
case '7':
// Move servo to position 196 degrees
servoMotor.write(196);
break;
case '8':
// Move servo to position 224 degrees
servoMotor.write(224);
break;
case '9':
// Move servo to position 255 degrees
servoMotor.write(255);
break;
default:
break;
}
}
}
Keypad 1 hingga 9 memberikan PWM 0-255 dengan jarak PWM antar Key 28
7. Video Simulasi
HTML klik disini
Simulasi klik disini
Gambar Simulasi klik disini
Video Simulasi klik disini
Listring Program klik disini
Video Simulasi klik disini
Listring Program klik disini