Jumat, 22 Maret 2024

Laporan Akhir 1

 [KEMBALI KE MENU SEBELUMNYA]



Percobaan 2
Interrupt Arduino

1. Foto Hardware dan Diagram Blok [Kembali]

Foto Hardware:

 


Diagram Blok:



2. PROSEDUR PERCOBAAN [Kembali]
  1. Rangkai semua komponen 
  2. Buat program di aplikasi arduino IDE
  3. Setelah selesai masukkan program ke arduino 
  4. Jalankan program pada simulasi dan cobakan dengan modul

3. RANGKAIAN SIMULASI DAN PRINSIP KERJA[Kembali]

Rangkaian Simulasi:


Prinsip Kerja :

Kondisi utama (main program) dari rangkaian ini adalah LCD menampilkan counting dari 0 dan terus bertambah  (+1) , LED hidup dan buzzer tidak berbunyi. Jika diberi interrupt atau gangguan dari dipswitch yang dihubungkan pada pin 2, maka counting akan dimulai lagi dari 0, LED mati dan buzzer berbunyi.

Kondisi ini terjadi sebab terdapat instruksi atau perintah berupa program yang berjalan pada mikrokontroler yang digunakan, yaitu arduino uno. Pada program terdapat inisialisasi masing-masing pin input dan output serta interrupt. Interrupt hanya terjadi pada kondisi FALLING atau dipswitch dari kondisi on ke off sesuai yang diperintahkan pada program.

Program tertera pada bagian 4 (Flowchart dan Listing Program).


4. FLOWCHART DAN LISTING PROGRAM [Kembali]
Flowchart:

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. KONDISI [Kembali]
Kondisi utama (main program), yaitu LCD menampilkan counting dari 0 dan terus bertambah  (+1) , LED hidup dan buzzer tidak berbunyi akan tertunda jika diberi interrupt atau gangguan dari dipswitch yang dihubungkan pada pin 2 dengan kondisi FALLING.

6. VIDEO RANGKAIAN [Kembali]



7. ANALISA [Kembali]
 


8. LINK DOWNLOAD [Kembali]

HTML klik disini

Gambar Hardware  klik disini

Gambar Simulasi  klik disini

Video Demo  klik disini

Listring Program  klik disini





Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

Modul 4

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Tujuan Perancangan 2. Komponen 3. Dasar Teori 4. Listing Program 5. Flowchart...