Laporan Akhir 1 uP dan uC Modul 2
Laporan Akhir 1 Modul 2
(Percobaan 3)
- Memahami prinsip kerja PWM pada mikrokontroler
- Memahami prinsip kerja ADC pada mikrokontroleR
- Memahamai prinsip Interupt pada mikrokontroler
- Menggunakan PWM dan ADC pada Arduino
2. Hardware dan Diagram Blok [Kembali]
4. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Pada rangkaian ini, tombol terhubung ke pin A0-A3, 12, dan 13 Arduino sebagai input, sedangkan 8 LED terhubung ke pin 2-9 sebagai output. Saat tombol pertama (terhubung ke pin 13) ditekan, LED pertama aktif. Namun, ketika tombol kedua dan seterusnya ditekan, LED berikutnya tidak aktif karena program Arduino membaca input yang sama dengan kondisi awal, menyebabkan LED tidak berubah. LED pertama bisa aktif karena menerima logika LOW saat ditekan, sehingga menyebabkan perbedaan logika antara kondisi awal dan akhir sehingga LED pertama menyala.
Listing Program :
#include <Servo.h> // Memasukkan library Servo untuk mengendalikan servo motor.
#include <Keypad.h> // Memasukkan library Keypad untuk membaca input dari keypad.
Servo servoMotor; // Membuat objek servoMotor dari kelas Servo untuk mengendalikan servo.
const int servoPin = 11; // Mendefinisikan pin yang terhubung ke servo motor.
const int numRows = 4; // Mendefinisikan jumlah baris pada keypad.
const int numCols = 3; // Mendefinisikan jumlah kolom pada keypad.
// 7. Mendefinisikan layout tombol pada keypad.
char keys[numRows][numCols] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
// Mendefinisikan pin GPIO yang terhubung ke baris pada keypad.
byte rowPins[numRows] = {9, 8, 7, 6};
// Mendefinisikan pin GPIO yang terhubung ke kolom pada keypad.
byte colPins[numCols] = {5, 4, 3};
// Membuat objek keypad dengan konfigurasi yang ditentukan.
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, numRows, numCols);
void setup() {
servoMotor.attach(servoPin); // Menghubungkan servo motor ke pin yang ditentukan.
servoMotor.write(90); // Mengatur posisi awal servo motor ke 90 derajat.
Serial.begin(9600); // Memulai komunikasi serial dengan baud rate 9600.
}
void loop() {
char key = keypad.getKey(); // Membaca tombol yang ditekan pada keypad.
if (key != NO_KEY) { // Memeriksa apakah ada tombol yang ditekan.
Serial.println(key); //Mencetak tombol yang ditekan ke serial monitor.
// 17. Menentukan aksi berdasarkan tombol yang ditekan.
switch (key) {
case '1': // Jika tombol 1 ditekan,
servoMotor.write(0); // menggerakkan servo ke 0 derajat.
break;
case '2': // Jika tombol 2 ditekan,
servoMotor.write(45); // menggerakkan servo ke 45 derajat.
break;
case '3': // Jika tombol 3 ditekan,
servoMotor.write(90); // menggerakkan servo ke 90 derajat.
break;
case '4': // Jika tombol 4 ditekan,
servoMotor.write(135); // menggerakkan servo ke 135 derajat.
break;
case '5': // Jika tombol 5 ditekan,
servoMotor.write(180); // menggerakkan servo ke 180 derajat.
break;
case '6': // Tombol 6 memiliki fungsi yang sama dengan tombol 4,
servoMotor.write(135); // menggerakkan servo ke 135 derajat lagi.
break;
case '7': // Tombol 7 memiliki fungsi yang sama dengan tombol 3,
servoMotor.write(90); // menggerakkan servo ke 90 derajat lagi.
break;
case '8': // Tombol 8 memiliki fungsi yang sama dengan tombol 2,
servoMotor.write(45); // menggerakkan servo ke 45 derajat lagi.
break;
case '9': // Tombol 9 memiliki fungsi yang sama dengan tombol 1,
servoMotor.write(0); // menggerakkan servo ke 0 derajat lagi.
break;
// Tidak ada aksi default yang diperlukan.
default:
break;
}
}
}
5. Link Download [Kembali]
HTML klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Keypad klik disini
Datasheet Motor Servo klik disini






Tidak ada komentar:
Posting Komentar