TP 1 MODUL 2


Percobaan 4 Kondisi 4

 Matriks

1. Prosedur [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi dan cobakan sesuai kondisi


  • Rangkaian






  • Prinsip Kerja
     Pada percobaan ini digunakan Arduino UNO dan IDE sebagai kontrolernya, lalu motor servo sebagai yang akan diatur PWM nya dan Keypad sebagai pengatur derajat putar motor servo. Derajat putar motor servo diatur oleh PWM dan sudah diintruksikan pada Arduino IDE yang terhubung dengan Arduino UNO.

  • 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); 

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

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

4. Kondisi [Kembali]

Keypad 1 dengan 9 memberikan PWM 255-0 dengan jarak PWM antar Key 28

Download HTML
Download Rangkaian 










Tidak ada komentar:

Posting Komentar