Tugas Pendahuluan 2 - 2

 





Tugas Pendahuluan 2
== Percobaan 4 Kondisi 3==


  1. Membuka proteus
  2. Buka file proteus yang sudah disesuaikan dengan kondisi
  3. Running rangkaiannya
  4. Sesuaikan dengan kondisi yang diinginkan




Arduino Uno


LCD

Keypad





Sebelum menjalankan rangkaian, compile terlebih dahulu listing program pada arduino IDE dan pastikan kembali file .HEX pada arduino diproteus sesuai dengan yang ada di hasil compiling arduino IDE.


Pada gambar diatas adalah rangkaian sebelum dijalankan.



Pada gambar rangkaian diatas adalah rangkaian setelah rangkaian dijalankan, dimana disini keypad 3x4 sebagai input dan motor sebagai output. Yang ingin kita lihat disini adalah sudut dari motor servo yang berubah sesuai dengan tombol keypad ditekan, disini jaraknya adalah 28. Sehingga, setiap key ditekan akan menghasilkan sudut servo seperti ini:

1 => 0
2 => 28 
3 => 56
4 => 84
5 => 112
6 => 140
7 => 168
8 => 196
9 => 224






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

Servo servoMotor; 
const int servoPin = 11; // Mendefinisikan PWM pin untuk 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); 

// Calculate PWM step size
const int pwmStep = 255 / 8; // Jumlah tombol keypad minus 1, Langkah PWM 255/8 = 31 langkah

void setup() { 
  servoMotor.attach(servoPin); // Mendefinisikan pin yang akan digunakan untuk menghubungkan servo motor ke Arduino
  servoMotor.write(90); // Initial position 
  Serial.begin(9600); 

void loop() { //membaca tombol yang ditekan pada keypad dan menggerakkan servo sesuai dengan tombol
  char key = keypad.getKey(); 
   
  if (key != NO_KEY) { 
    Serial.println(key); 
     
    // Perform actions based on the key pressed 
    switch (key) { 
      case '1': 
        servoMotor.write(0); // PWM 0
        break; 
      case '2': 
        servoMotor.write(pwmStep * 1); // PWM 28
        break; 
      case '3': 
        servoMotor.write(pwmStep * 2); // PWM 56
        break; 
      case '4': 
        servoMotor.write(pwmStep * 3); // PWM 84
        break; 
      case '5': 
        servoMotor.write(pwmStep * 4); // PWM 112
        break; 
      case '6': 
        servoMotor.write(pwmStep * 5); // PWM 140
        break; 
      case '7': 
        servoMotor.write(pwmStep * 6); // PWM 168
        break; 
      case '8': 
        servoMotor.write(pwmStep * 7); // PWM 196
        break; 
      case '9': 
        servoMotor.write(pwmStep * 8); // PWM 224
        break; 
      default: 
        break; 
    } 
  } 
}


Modul 1: Percobaan 4 Kondisi 3
"SKeypad 1 hingga 9 memberikan PWM 0-255 dengan jarak PWM antar Key 28"

Tidak ada komentar:

Posting Komentar

  PRATIKUM SISTEM DIGITAL TAHUN 2022 OLEH : Tyas Ananda Putri 2010952036 JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS ANDALAS PADANG 2021