Laporan Akhir 1






1. Prosedur Percobaan [Kembali]

  • Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
  • Buat program di aplikasi arduino IDE
  • Compile program yang telah dibuat, upload ke dalam Arduino Uno 
  • Uji coba program pada rangkaian percobaan


2. Foto Hardware dan Diagram Blok [Kembali]

        1. Arduino Uno



        2. Motor Servo


        3. Keypad


        4. Kabel Jumper


        5. Breadboard



Diagram Blok:






Prinsip Kerja

Pada rangkaian ini menggunakan komponen inti diantaranya mikrokontroler Arduino Uno (ATMEGA328P-PU), motor servo, dan keypad 4x4.

Mikrokontroler ATMEGA328P-PU adalah inti rangkaian, yang mengelola pengoperasian motor servo. Keypad berperan sebagai input, terhubung ke mikrokontroler melalui pin 3-9 pada arduino.  Sedangkan motor servo terhubung ke pin 11 sebagai output. 

Ketika Arduino menerima inputan sinyal digital dari keypad, maka Arduino akan menangkapnya sebagai sebuah instruksi, dan meneruskan ke motor servo yang membaca sinyal PWM. Lalu sesuai dengan pola dan case-case pada program yang mana terdapat 9 case pada program, selisih tiap 1 tombol adalah rotasi motor servo sebesar 45 derajat. Motor akan berputar sebesar sudut yang telah diinstruksikan pada program.
 

4. Flowchart dan Listing Program [Kembali]





Listing Program:

#include // Memasukkan library Servo untuk mengendalikan servo motor. #include // 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. Kondisi [Kembali]

    Percobaan 4 Modul 2: Input Keypad Menggerakkan Motor Servo Sesuai Dengan Inputan Keypad 










Posting Komentar

0 Komentar