Tugas Pendahuluan 2 Modul II

 



Percobaan 2

 Interrupt Arduino


1. Foto Hardware dan Diagram Blok [Kembali]

        1. Arduino Uno


        2. LCD




        3. IC PCF8574

 

      4. DIP Switch

 

      5. L293D
 
      6. Motor DC
   
      7. Potensiometer
   

 

      8. Baterai


        9. Resistor

       10. Power Supply


     11. Ground




Diagram Blok:



2. Prosedur Percobaan  [Kembali]

Rangkai semua komponen 
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino 
+ jalankan program pada simulasi dan cobakan dengan modul





Prinsip Kerja

    Pada percobaan kali ini kita menggunakan beberapa komponen yaitu Arduino Uno, motor DC, LCD, PCF8574, DIP Switch, Driver L293D, Potensiometer, Baterai, Resistor, power supply, dan Ground.  

    Percobaan kali ini kita hanya akan menggunakan DIP Switch sebagai input untuk memanggil atau men-trigger kodisi interrupt yang mana kondisi ini berarti akan memak sa berhenti semua program utama yang berjalan dan akan menjalankan intruksi yang berada dalam fungsi interrupt ini. Arduino juga akan terhubung dengan PCF8574 yang berfungsi sebagai ekspander I/O yang mana akan mengurangi penggunaan pin dari arduino dan dari PCF8574 akan terhubung ke LCD dan terakhir arduino juga akan tehubung ke motor driver dan motor DC.

    Kemudian kondisi yang kita miliki pada percobaan kali ini yaitu pada program utama yang berjalan yaitu LCD akan melakukan countdown dari 100-0 sementara motor DC akan berputar ke kanan. Lalu kondisi interrupt akan terpanggil disaat kita men-trigger nya menggunakan DIP Switch yang mana akan langsung menghentikan semua program utama sebelumnya dan menjalankan perintah yang berada dalam fungsi interrupt yaitu motor DC akan berhenti selama 4 detik dan akan kembali berputar semula setelah 4 detik.

    Komponen lainnya yaitu Potensiometer yang berfungsi untuk mengatur kontras layar LCD, resistor berfungsi untuk membatasi arus pada rangkaian agar dapat berjalan dengan baik dan terhindar dari kerusakan akibat arus atau tegangan yang berlebihan.

4. Flowchart dan Listing Program [Kembali]




Listing Program:


#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>

// Inisialisasi pin
const int MOTOR_OUT1_PIN = 12;
const int MOTOR_OUT2_PIN = 13;
const int DIPSW_2_PIN = 2;

// Inisialisasi objek LCD
LiquidCrystal_PCF8574 lcd(0x27); // Alamat PCF8574

// Variabel global
volatile bool dipsw_2_state = false; // Volatile digunakan untuk variable yang bisa diakses secara asinkron oleh interrupt

void setup() {
  // Inisialisasi pin mode
  pinMode(MOTOR_OUT1_PIN, OUTPUT);
  pinMode(MOTOR_OUT2_PIN, OUTPUT);
  pinMode(DIPSW_2_PIN, INPUT_PULLUP); // Dipsw_2 menggunakan pull-up resistor
 
  // Inisialisasi LCD
  lcd.begin(16, 2);
 
  // Attach interrupt untuk Dipsw_2
  attachInterrupt(digitalPinToInterrupt(DIPSW_2_PIN), dipsw2Interrupt, CHANGE);
 
  // Memulai motor berputar ke kanan
  digitalWrite(MOTOR_OUT1_PIN, HIGH);
  digitalWrite(MOTOR_OUT2_PIN, LOW);
}

void loop() {
  // Tampilkan counting dari 100 sampai 0 di LCD
  for (int i = 100; i >= 0; i--) {
    lcd.setCursor(0, 0);
    lcd.print("Counting: ");
    lcd.setCursor(0, 1);
    lcd.print("   ");
    lcd.setCursor(0, 1);
    lcd.print(i);
    delay(1000); // Delay 1 detik
   
    // Cek status Dipsw_2 setiap detik
    if (dipsw_2_state) {
      // Berhenti motor selama 4 detik jika Dipsw_2 aktif
      digitalWrite(MOTOR_OUT1_PIN, LOW);
      digitalWrite(MOTOR_OUT2_PIN, LOW);
      delay(4000); // Delay 4 detik
     
      // Menghidupkan kembali motor berputar ke kanan setelah 4 detik
      digitalWrite(MOTOR_OUT1_PIN, HIGH);
      digitalWrite(MOTOR_OUT2_PIN, LOW);
    }
  }
}

// Fungsi interrupt untuk Dipsw_2
void dipsw2Interrupt() {
  // Membaca status Dipsw_2
  dipsw_2_state = digitalRead(DIPSW_2_PIN);
}


5. Kondisi [Kembali]

    Pada kondisi 2 dari percobaan 2, Motor ke kanan,LCD menampilkan counting dari 100 sampai 0, interrupt maka motor DC berhenti 4 detik.



᭒ HTML↠ klik disini

᭒ Rangkaian↠ klik disini

᭒ Video Percobaan↠ klik disini

᭒ Program↠ klik disini

᭒ Datasheet Arduino↠ klik disini

᭒ Datasheet Potensiometer↠ klik disini

᭒ Datasheet LCD↠ klik disini

᭒ Datasheet DIP Switch↠ klik disini

᭒ Datasheet L293D↠ klik disini

᭒ Datasheet Sensor LDR↠ klik disini

᭒ Datasheet Motor DC↠ klik disini

᭒ Datasheet PCF8574↠ klik disini

Subscribe to receive free email updates:

0 Response to "Tugas Pendahuluan 2 Modul II"

Posting Komentar