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
Pada percobaan keempat dengan Kondisi 1, tugasnya adalah menggunakan keypad angka 1 hingga 9 untuk menghasilkan nilai PWM antara 0 hingga 180. Setiap tombol pada keypad akan menghasilkan nilai PWM yang berbeda, dengan selisih antara nilai PWM dari tombol yang satu dengan yang lainnya adalah 20. Dalam eksperimen ini, keypad digunakan sebagai alat input, sedangkan motor servo akan menjadi outputnya. Motor servo bergerak secara presisi sesuai dengan sudut yang ditentukan oleh nilai PWM yang diberikan kepadanya. Jadi, konsepnya adalah menggunakan keypad untuk mengontrol sudut motor servo dengan mengatur nilai-nilai PWM yang sesuai, yang berada dalam rentang 0 hingga 180, dengan selisih antara setiap nilai PWM adalah 20.
- 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
Tidak ada komentar:
Posting Komentar