TP 2

 



Percobaan 2

 Interrupt pada 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. Potensiomotor
   

 

      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 rangkaian pada percobaan kali ini kita di perintahkan untuk membuat Pada kondisi 2 dari percobaan 2, Motor ke kanan,LCD menampilkan counting dari 100 sampai 0, interrupt maka motor DC berhenti 4 detik, sehingga disini kita melakukan perintah dengan menambahkan program pada arduino uno dengan kondisi yang kita dapatkan sehingga perintah yang telah diberikan bisa dijalankan dengan baik.


4. Flowchart dan Listing Program [Kembali]





Listing Program:


#include <Wire.h> #include <LiquidCrystal_PCF8574.h> // Inisialisasi pin const int MOTOR_OUT1_PIN = 12; // Pin untuk kontrol motor (output 1) const int MOTOR_OUT2_PIN = 13; // Pin untuk kontrol motor (output 2) 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); // Mengatur pin motor sebagai output pinMode(MOTOR_OUT2_PIN, OUTPUT); // Mengatur pin motor sebagai 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.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
᭒ Aplikasi↠ klik disini
᭒ Video Percobaan↠ klik disini

    










Tidak ada komentar:

Posting Komentar

BAHAN PRESENTASI UNTUK MATA KULIAH ELEKTRONIKA 2022 Oleh : Anugrah Illahi NIM. 2110951013   Dosen Pengampu : Dr. Darwison, S. T., M. T. NIDN...