TP 1 M2

 



Percobaan 2 Kondisi 7

Interupt Arduino

1. Foto Hardware dan Diagram Blok [Kembali]


        1. Arduino Uno

        2. DIP SWITCH 





        3. LCD



        4. Resistor

        5. Power Supply


         6. Ground
       



7. Motor

8. IC I2C

 


9. Potensiometer


  • Diagram Blok:





2. Prosedur Percobaan  [Kembali]

Langkah-langkah percobaan :

1. Siapkan alat dan bahan yaitu dengan komponen utama Arduino Uno, DIPSWITCH, IC     I2C, MOTOR dan LCD

2. Rangkai sesuai gambar percobaan

3. Rancang kerja rangkaian sesuai flowchat

4. Tekan tombol “Play” untuk menjalankan simulasi




Prinsip Kerja

Rangkaian ini bekerja dengan mengendalikan motor DC dan menampilkan informasi pada LCD 16x2.

Motor DC:

  • Berputar ke kanan selama 5 detik.
  • Mati selama 3 detik.
  • Berputar ke kiri selama 5 detik.
  • Mati selama 7 detik.

LCD 16x2:

  • Menampilkan hitungan mundur dari 50 sampai 0.
  • Hitungan mundur diulang dari 50 setelah mencapai 0.
  • Motor DC berhenti selama 3 detik setelah hitungan mundur selesai.

Dipswitch:

  • Digunakan untuk memberikan interupsi pada hitungan mundur.
  • Ketika tombol dipswitch ditekan, hitungan mundur akan kembali ke 50.

Cara kerja:

  1. Ketika rangkaian dihidupkan, motor DC akan berputar ke kanan selama 5 detik.
  2. LCD 16x2 akan menampilkan hitungan mundur dari 50 sampai 0.
  3. Ketika hitungan mundur mencapai 0, motor DC akan mati selama 3 detik.
  4. Setelah 3 detik, motor DC akan berputar ke kiri selama 5 detik.
  5. LCD 16x2 akan kembali menampilkan hitungan mundur dari 50 sampai 0.
  6. Ketika hitungan mundur mencapai 0, motor DC akan mati selama 7 detik.
  7. Siklus ini akan terus diulang.

Interrupt:

  • Ketika tombol dipswitch ditekan, hitungan mundur akan terhenti.
  • Hitungan mundur akan kembali ke 50.
  • Motor DC akan berhenti.

4. Flowchart dan Listing Program [Kembali]

FLOWCHART





#include  <LiquidCrystal_I2C.h>

#define tombol 2   // pin 2 (pin interrupt) bernama tombol
#define motorPin 11  // pin 11 untuk motor

#define motorDelay 500 // Waktu rotasi motor dalam milidetik
#define stopDelay 300  // Waktu motor berhenti dalam milidetik
#define restartDelay 700 // Waktu sebelum penghitungan dimulai ulang dalam milidetik

volatile int count = 50; // Mulai dari 50

LiquidCrystal_I2C lcd(0x27, 20, 4);

void setup() {
  lcd.init();
  lcd.backlight();
  pinMode(tombol, INPUT);
  pinMode(motorPin, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(2), tombol_ditekan, FALLING);
}

void loop() { // Main Program
  // Rotasi motor ke kanan selama 5 detik
  digitalWrite(motorPin, HIGH);
  delay(motorDelay);

  // Stop motor selama 3 detik
  digitalWrite(motorPin, LOW);
  delay(stopDelay);

  // Rotasi motor ke kiri selama 5 detik
  digitalWrite(motorPin, HIGH);
  delay(motorDelay);

  // Stop motor selama 3 detik
  digitalWrite(motorPin, LOW);
  delay(stopDelay);

  // LCD menampilkan counting dari 50 sampai 0
  lcd.setCursor(0, 0);
  lcd.print("Count: ");
  lcd.setCursor(0, 1);
  lcd.print(count);
  
  // Pengurangan integer count dengan angka 1
  count -= 1;

  // Jika count mencapai 0, reset kembali ke 50 dan tunggu 3 detik
  if (count < 0) {
    count = 50;
    delay(stopDelay);
  }
}

// Fungsi interrupt tombol ditekan
void tombol_ditekan() {
  count = 50; // Mengatur ulang hitungan
  delay(restartDelay);
}


5. Kondisi [Kembali]

Percobaan 2 Kondisi 7
Motor ke kanan 5 detik lalu mati 3 detik berputar ke kiri 5 detik dan mati 7 detik ,LCD menampilkan counting dari 50 sampai 0, interrupt counting diulang dari 50 dan motor DC berhenti 3 detik



HTML Disini
Simulasi Disini
Gambar Hardware Disini
Video Simulasi Disini
Listing Program Disini
 Data Sheet IC  I2C Disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet Dipswitch  klik disini
Datasheet LCD klik disini











  




Komentar

Postingan populer dari blog ini