LA1 M2
MODUL 2
PERCOBAAN 4
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 motor servo dengan menekan tombol keypad
- Rangkaian Simulasi
- Prinsip Kerja
Pada percobaan 4 Kondisi 1 ini diminta untuk keypad 1 hingga 9 memberikan PWM 0-180 dengan jarak PWM antar key 20. Disini kita menggunakan keypad sebagai inputan dan output berupa motor servo yang dimana seperti yang diketahui motor servo itu bergerak secara presisi berdasakan sudutnya dengan menggunakan input berupa PWM nya. Nah percobaan kali ini kita akan mengatur sudut nya sesuai yang ada pada kondisi.
- 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(20);
break;
case '2':
// Move servo to position 45 degrees
servoMotor.write(40);
break;
case '3':
// Move servo to position 90 degrees
servoMotor.write(60);
break;
case '4':
// Move servo to position 135 degrees
servoMotor.write(80);
break;
case '5':
// Move servo to position 180 degrees
servoMotor.write(100);
break;
case '6':
// Move servo to position 135 degrees
servoMotor.write(120);
break;
case '7':
// Move servo to position 90 degrees
servoMotor.write(140);
break;
case '8':
// Move servo to position 45 degrees
servoMotor.write(160);
break;
case '9':
// Move servo to position 0 degrees
servoMotor.write(180);
break;
default:
break;
}
}
}
Ketika 1 switch aktif 7-Segment menghitung mundur dari 9
HTML klik disini
Gambar Hardware klik disini
Gambar Simulasi klik disini
Video Demo klik disini
Listring Program klik disini
Komentar
Posting Komentar