Tugas Pendahuluan 2
== Percobaan 4 Kondisi 3==
- Membuka proteus
- Buka file proteus yang sudah disesuaikan dengan kondisi
- Running rangkaiannya
- Sesuaikan dengan kondisi yang diinginkan
Keypad
Sebelum menjalankan rangkaian, compile terlebih dahulu listing program pada arduino IDE dan pastikan kembali file .HEX pada arduino diproteus sesuai dengan yang ada di hasil compiling arduino IDE.
Pada gambar diatas adalah rangkaian sebelum dijalankan.
1 => 0
2 => 28
3 => 56
4 => 84
5 => 112
6 => 140
7 => 168
8 => 196
9 => 224
#include <Servo.h>
#include <Keypad.h>
Servo servoMotor;
const int servoPin = 11; // Mendefinisikan PWM pin untuk 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);
// Calculate PWM step size
const int pwmStep = 255 / 8; // Jumlah tombol keypad minus 1, Langkah PWM 255/8 = 31 langkah
void setup() {
servoMotor.attach(servoPin); // Mendefinisikan pin yang akan digunakan untuk menghubungkan servo motor ke Arduino
servoMotor.write(90); // Initial position
Serial.begin(9600);
}
void loop() { //membaca tombol yang ditekan pada keypad dan menggerakkan servo sesuai dengan tombol
char key = keypad.getKey();
if (key != NO_KEY) {
Serial.println(key);
// Perform actions based on the key pressed
switch (key) {
case '1':
servoMotor.write(0); // PWM 0
break;
case '2':
servoMotor.write(pwmStep * 1); // PWM 28
break;
case '3':
servoMotor.write(pwmStep * 2); // PWM 56
break;
case '4':
servoMotor.write(pwmStep * 3); // PWM 84
break;
case '5':
servoMotor.write(pwmStep * 4); // PWM 112
break;
case '6':
servoMotor.write(pwmStep * 5); // PWM 140
break;
case '7':
servoMotor.write(pwmStep * 6); // PWM 168
break;
case '8':
servoMotor.write(pwmStep * 7); // PWM 196
break;
case '9':
servoMotor.write(pwmStep * 8); // PWM 224
break;
default:
break;
}
}
}
Modul 1: Percobaan 4 Kondisi 3
"SKeypad 1 hingga 9 memberikan PWM 0-255 dengan jarak PWM antar Key 28"
Tidak ada komentar:
Posting Komentar