Praktikum up&uc_Modul 2_Interupt

Percobaan II

Interupt Arduino

1. Prosedur [Kembali]

  • Rangkailah seperti rangkaian berikut
  • Buka Arduino IDE dan masukan listing Program
  • Upload program ke arduino
  • Mencoba rangkaiannya dengan memvariasikan kondisi interupt (Falling, Rising, High dan Low)

2. Hardware dan Diagram Blok [Kembali]


Diagram Blok:


Gambar 2. Simulasi Rangkaian

Prinsip Kerja:
    
    Jalan kerja dari rangkaian ini ialah, arduino akan terus menghitung angka dan menyalakan LED, angka tersebut akan terus bertambah dan ditampilkan pada LCD. perhitungan angka ini akan terus +1 hingga diberikan interupt, dimana interupt pada rangkaian ini digunakan pada pin 2. ketika pin interupt atau pin 2 mengalami kondisi falling (perubahan logika dari logika 1 ke logika 0), maka interupt akan terjadi. 
    Interupt yang terjadi ialah menghulang angka yang dihitung, mematikan LED dan menyalakan buzzer, dikarenakan interupt hanya terjadi ketika kondisi Falling maka program menghitung dan menyalakan LED akan dilulang lagi hingga pin interupt/pin 2 mengalami kondisi Falling kembali.

4. Flowchart dan Listing Program [Kembali]

Flowchart:
Flowchart Program

Listing Program:

#include<LiquidCrystal_I2C.h>
#define LED 13 //pin 13 bernama LED
#define tombol 2 //pin 2 (pin interrupt) bernama tombol
#define buzzer 11

volatile byte led_nyala = LOW; //kondisi mula-mula LED mati
static int count = 0;
volatile byte buzzer_nyala = LOW;
LiquidCrystal_I2C lcd(0x27, 20, 4);

void setup() {
  lcd.init();
  lcd.backlight();
  pinMode(LED,OUTPUT);
  pinMode(tombol,INPUT);
  attachInterrupt(digitalPinToInterrupt(2),tombol_ditekan, FALLING); //pin 2 (interrupt 0) digunakan sebagai interrupt eksternal
}
 
void loop() { //Main Program
  digitalWrite(LED,HIGH);
  digitalWrite(buzzer,LOW);
  lcd.setCursor(0,0);
  lcd.print("Count:");
  lcd.setCursor(0,1);
  lcd.print(count);
  count += 1; // menambahkan integer count dengan angka 1
  delay(1000);
}
 
//membuat fungsi bernama tombol_ditekan, fungsi ini (ISR) dieksekusi secara otomatis setelah arduino memperoleh sinyal interrupt di pin 2
void tombol_ditekan()
{
  digitalWrite(LED,LOW);
  digitalWrite(buzzer,HIGH);
  count = 0;
  delay(100000);
}

5. Video Demo [Kembali]

6. Kondisi [Kembali]

    Main program akan berjalan terus dimana pada main program angka akan terus bertambah 1 dan LED akan selalu menyala ketika pin 2 diubah dari kondisi logika 1 ke logika 2 maka akan terjadi interupt yang akan mengulang angka dan mematikan LED dan menyalakan buzzer.

᭒ HTML↠ klik disini
᭒ Simulasi ↠ klik disini
᭒ Gambar Hardware ↠ klik disini
᭒ Gambar Simulasi ↠ klik disini
᭒ Video Demo ↠ klik disini
᭒ Video Simulasi ↠ klik disini
᭒ Listring Program ↠ klik disini



Komentar

Postingan Populer