Jumat, 29 Maret 2024


1.  Prosedur [Kembali]
  1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
  2. Buat program menggunakan Arduino IDE.
  3. Compile program yang telah dibuat lalu Upload ke dalam Arduino Uno.
  4. Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang diinginkan.
  5. Selesai

2. Hardware dan Diagram Blok [Kembali]

a) Modul Arduino 


b) Keypad 



c) Servo



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Simulasi Rangkaian


Prinsip Kerja
Pada rangkaian tersebut, membutuhkan servo motor untuk mengontrol alat yang kami gunakan. Kami menggunakan Arduino untuk mengontrol servo motor melalui keypad. Mikrokontroller Arduino akan terus menerus melakukan skanning keypad. Ketika salah satu tombol pada keypad ditekan, mikrokontroller akan mendeteksi tombol mana yang ditekan. Data yang masuk ke Arduino akan dikoloskan oleh program yang telah diupload. Keluaran nanti yaitu putaran sudut dari motor servo yang besar di tentukan berdasarkan program

4. Flowchart dan Listing Program [Kembali]

Flowchart


Listing Program
#include <Servo.h>
#include <Keypad.h>

Baris ini mengimpor dua library yang dibutuhkan, yaitu Servo.h untuk mengontrol servo motor dan Keypad.h untuk menggunakan keypad.

Servo servoMotor;

Baris ini membuat objek servoMotor dari kelas Servo yang akan digunakan untuk mengontrol servo motor.

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

Baris ini mendefinisikan pin PWM yang akan digunakan untuk mengontrol servo motor, yaitu pin 11. dan mendefinisikan jumlah baris dan kolom pada keypad yang digunakan.

char keys[numRows][numCols] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'}
};

Baris ini mendefinisikan pemetaan tombol pada keypad dalam bentuk array dua dimensi.

byte rowPins[numRows] = {9, 8, 7, 6}; // Rows 0 to 3
byte colPins[numCols] = {5, 4, 3}; // Columns 0 to 2

Baris ini mendefinisikan pin-pin yang terhubung dengan baris dan kolom pada keypad.

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, numRows, numCols);

Baris ini membuat objek keypad dari kelas Keypad dengan menggunakan pemetaan tombol, pin-pin baris, pin-pin kolom, dan jumlah baris dan kolom yang telah didefinisikan sebelumnya.

void setup() {
  servoMotor.attach(servoPin); tu
  servoMotor.write(90); // Initial position
  Serial.begin(9600);
}

Fungsi setup() dijalankan sekali pada saat awal program dijalankan. Baris pertama menghubungkan objek servoMotor dengan pin PWM yang telah didefinisikan sebelumnya. Baris kedua mengatur posisi awal servo motor ke 90 derajat. Baris ketiga memulai komunikasi serial dengan baud rate 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;
    }
  }
}

Fungsi loop() dijalankan berulang-ulang selama program berjalan. Baris pertama membaca tombol yang ditekan pada keypad dan menyimpannya dalam variabel key. Jika tombol ditekan (key != NO_KEY), program akan mencetak tombol yang ditekan ke serial monitor dan mengeksekusi kode di dalam blok switch untuk menggerakkan servo motor sesuai dengan tombol yang ditekan.
Kode di dalam blok switch menggunakan pernyataan case untuk memeriksa nilai key dan mengeksekusi kode yang sesuai. Misalnya, jika tombol '1' ditekan, servo motor akan digerakkan ke posisi 0 derajat dengan perintah servoMotor.write(0). Setiap case lainnya menggerakkan servo motor ke posisi yang berbeda sesuai dengan tombol yang ditekan.

5. Kondisi [Kembali]

Modul 2 Percobaan 4

6.  Video Simulasi [Kembali]






7. Download File [Kembali]
HTML                    klik disini
File Rangkaian       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

Entri yang Diunggulkan

Laporan Akhir Project M4

Laporan Akhir Demo Project [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Percobaan   ...