Chrome Pointer

LA 1 M2 Prak Up Uc

Percobaan IV

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]

1. Arduino


2. Motor Servo

3.Keypad


Block Diagram :

3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]





Rangkaian ini bekerja dengan membaca input dari keypad yang terhubung ke pin Arduino 6-9 (baris) dan 3-5 (kolom). Ketika tombol ditekan, Arduino menerima sinyal dan menerjemahkannya menjadi karakter. Karakter ini kemudian digunakan untuk menentukan sudut servo motor yang diinginkan.

Output dari rangkaian ini adalah sinyal PWM yang dikirim ke servo motor melalui pin 11 Arduino. Sinyal PWM ini mengendalikan sudut servo motor. Sudut servo motor yang diinginkan ditentukan oleh tombol yang ditekan pada keypad.

Contohnya, jika tombol "3" ditekan, Arduino akan membaca karakter "3" dan memerintahkan servo motor untuk berputar ke 90 derajat. Servo motor kemudian akan menerima sinyal PWM dari Arduino yang memungkinkannya untuk berputar ke 90 derajat.

terdapat beberapa case yang dapat terjadi pada percobaan ini
 
1 ===> Berputar 0 derajat
2 ===> Berputar 45 derajat
3 ===> Berputar 90 derajat
4 ===> Berputar 135 derajat
5 ===> Berputar 180 derajat
6 ===> Berputar 135 derajat
7 ===> Berputar 90 derajat
8 ===> Berputar 45 derajat
9 ===> Berputar 0 derajat


Flowchart :





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;
 }
 }
}


Percobaan 4









Tidak ada komentar:

Posting Komentar