TUGAS PENDAHULUAN 2 MODUL 2

 



Percobaan 4 Kondisi 2

Kontrol Motor Servo dengan PWM

1. Foto Hardware dan Diagram Blok [Kembali]

     Arduino Uno
            
    



    DipSwitch
        
        
  
     
 
 
Motor Servo



Diagram Blok:





2. Prosedur Percobaan  [Kembali]

1. Susun semua komponen.
2. Buat program menggunakan aplikasi Arduino IDE.
3. Unggah program ke Arduino setelah selesai.
4. Jalankan program pada simulasi dan uji dengan modul.


Rangkaian Simulasi
 




Prinsip Kerja

        Program ini mengontrol pergerakan motor servo menggunakan keypad pada Arduino. Saat tombol keypad ditekan, program membaca karakter yang sesuai dan menggerakkan motor servo ke posisi tertentu berdasarkan karakter tersebut. Langkah awal program adalah menginisialisasi motor servo dan keypad. Motor servo terhubung ke pin PWM pada Arduino (misalnya pin 11) dan diatur ke posisi awal 90 derajat menggunakan perintah servoMotor.write(90). Kemudian, keypad disiapkan untuk digunakan.
        Selama program berjalan, Arduino terus memantau apakah ada tombol yang ditekan pada keypad. Saat tombol ditekan, program menggunakan struktur switch-case untuk menentukan tindakan selanjutnya berdasarkan karakter tombol yang ditekan. Setiap karakter tombol langsung dihubungkan ke posisi sudut tertentu untuk motor servo. Perintah servoMotor.write() digunakan untuk menggerakkan motor servo ke sudut yang sesuai dengan karakter yang ditekan. Keypad 1 hingga 9, misalnya, memberikan PWM dari 180 hingga 0 dengan jarak PWM antar tombolnya sebesar 20. Jika tombol yang ditekan tidak cocok dengan yang diprogram, tidak ada aksi yang diambil pada motor servo.

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); 
 
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': 
        // Move servo to position 0 degrees 
        servoMotor.write(280); 
        break; 
      case '2': 
        // Move servo to position 45 degrees 
        servoMotor.write(160); 
        break; 
      case '3': 
        // Move servo to position 90 degrees 
        servoMotor.write(140); 
        break; 
      case '4': 
        // Move servo to position 135 degrees 
        servoMotor.write(120); 
        break; 
      case '5': 
        // Move servo to position 180 degrees 
        servoMotor.write(100); 
        break; 
      case '6': 
        // Move servo to position 135 degrees 
        servoMotor.write(80); 
        break; 
      case '7': 
        // Move servo to position 90 degrees 
        servoMotor.write(60); 
break; 
case '8': 
// Move servo to position 45 degrees 
servoMotor.write(40); 
break; 
case '9': 
// Move servo to position 0 degrees 
servoMotor.write(20); 
break; 
default: 
break; 
}


5. Kondisi [Kembali]

Keypad 1 hingga 9 memberikan PWM 180-0 dengan jarak PWM antar key 20

6. Video Simulasi [Kembali]


    Download HTML
    Download Rangkaian
   
Download Program
   
Download Video Simulasi
    Download Datasheet 7-Segment
    
Download Datasheet Arduino Uno


 











Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

MODUL 3 KOMUNIKASI

DAFTAR ISI      1. Pendahuluan      2. Tujuan      3. Alat dan Bahan      4. Dasar Teori      5. Percobaan Percobaan ... T...