LAPORAN AKHIR 1 (MODUL II PWM, ADC, dan Interrupt)





MODUL II  PWM, ADC, dan Interrupt

    • Rangkailah seperti rangkaian berikut 
    • Buka Arduino IDE dan masukan listing program Upload program ke arduino 
    • Variasikan tombol yang ditekan dan amati keluarannya pada LCD

Hardware

Flowchart








Prinsip Kerja
    Program mengimpor dua library yaitu Servo.h untuk mengontrol motor servo dan Keypad.h untuk mengontrol keypad.
Mendefinisikan Variabel: Program mendefinisikan beberapa variabel seperti servoPin untuk menentukan pin PWM untuk motor servo, numRows dan numCols untuk menentukan jumlah baris dan kolom pada keypad, keys sebagai array karakter untuk menyimpan layout keypad, rowPins dan colPins untuk menentukan pin pada Arduino yang terhubung dengan baris dan kolom keypad, dan keypad untuk menginisialisasi keypad.

Pada bagian setup, program menginisialisasi motor servo, menentukan posisi awal motor servo (90 derajat), dan mengatur komunikasi serial dengan kecepatan 9600 baud.
Loop: Program masuk ke dalam loop utama. Pada setiap iterasi loop, program memeriksa apakah ada tombol keypad yang ditekan dengan menggunakan fungsi keypad.getKey().
Pemrosesan Input: Jika ada tombol yang ditekan (key != NO_KEY), program akan mencetak tombol yang ditekan ke Serial Monitor dan melakukan aksi sesuai dengan tombol yang ditekan menggunakan struktur switch-case.
Aksi Motor Servo: Setiap case dalam switch-case mengatur posisi motor servo sesuai dengan tombol yang ditekan pada keypad. Misalnya, jika tombol '1' ditekan, motor servo akan diposisikan pada 0 derajat, jika tombol '2' ditekan, motor servo akan diposisikan pada 45 derajat, dan seterusnya.
Loop Continues: Setelah menjalankan aksi yang sesuai dengan tombol yang ditekan, program kembali ke awal loop untuk terus memonitor input dari keypad dan mengontrol motor servo.
Prinsip kerja utama dari program ini adalah membaca input dari keypad dan mengubahnya menjadi perintah untuk mengatur posisi motor servo. 



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(0); 
        break; 
      case '2': 
        // Move servo to position 45 degrees 
        servoMotor.write(45); 
        break; 
      case '3': 
        // Move servo to position 90 degrees 
        servoMotor.write(90); 
        break; 
      case '4': 
        // Move servo to position 135 degrees 
        servoMotor.write(135); 
        break; 
      case '5': 
        // Move servo to position 180 degrees 
        servoMotor.write(180); 
        break; 
      case '6': 
        // Move servo to position 135 degrees 
        servoMotor.write(135); 
        break; 
      case '7': 
        // Move servo to position 90 degrees 
        servoMotor.write(90); 

break; 
case '8': 
// Move servo to position 45 degrees 
servoMotor.write(45); 
break; 
case '9': 
// Move servo to position 0 degrees 
servoMotor.write(0); 
break; 
default: 
break; 
}





    Percobaan 4 Kontrol Motor Servo dengan PWM







File HTML klik disini
Rangkaian Simulasi Proteus klik disini
File Video Rangkaian klik disini
File Arduino klik disini
Datasheet  klik disini
 












Tidak ada komentar:

Posting Komentar