Jumat, 22 Maret 2024

TP 1 MODUL 2



Percobaan 2 Kondisi1

Interrupt Arduino

1. Prosedur
[Kembali]
1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
2. Buat program menggunakan Arduino IDE.
3. Transfer program yang telah dibuat ke Arduino yang ada di Proteus.
4. Uji coba program di simulasi sesuai dengan kondisi yang diinginkan.
5. Proses selesai setelah uji coba berhasil dilakukan.

2. Hardware dan Diagram Blok [Kembali]

a. Hardware
 
1. Arduino Uno
 
2. Dipswitch

3. LCD 16X2
Jual Cuci Gudang Lcd Display 1602 + I2c 16x2 16 2 16*2 Biru Blue Di Seller  Algorista - Sanan Wetan, Kota Blitar | Blibli
4. PCF8574
Jual Modul Ekspansi IO 8 Bit PCF8574 Via Port I2C utk Arduino/Raspberry pi  - Kab. Bandung - Diggyshop | Tokopedia
4. Motor DC
Mengenal Motor DC - Enfys
 5. Resistor
Warna Resistor: Pengertian, Tabel, Serta Cara Membaca dan Menghitungnya
b. Diagram Blok

3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
 
Prinsip Kerja
Pada Percobaan 2 kondisi 1 tersebut, Motor berputar ke kanan,LCD menampilkan counting dari 0 sampai 100, setiap kelipatan counting 10 maka akan menghidupkan 1 led dan interrupt membuat counting diulang dari 0, LED mati, dan motor DC berhenti. Pada rangkaian di atas dengan input dipswitch dengan output motor dc dan LCD 16X2, pada saat rangakaian di run motor dc akan berputar dan LCD menampilkan counting dari 0-100 dengan delay dan seterusnya jika saat di run tersebut kita tekan tombol pada dipswict memakai pull down dimana kondisi awal vo = 0. maka counting yang ditampilkan di lcd akan menampilkan kembali counting mulai dari 0 lagi atau kembali ke awal akibat adanya interrupt dari tombol dipswicth yang kita tekan.


 
4. Flowcharth dan Listing Program [Kembali]
a. Flowcharth

b. Listing Program
#include <LiquidCrystal_I2C.h>

#define LED1 13
#define LED2 12
#define LED3 11
#define LED4 10
#define motorPin1 9
#define interruptPin 2

volatile bool buttonPressed = false; // Flag untuk menandakan bahwa tombol telah ditekan
int count = 0;                        // Variabel untuk menyimpan nilai count

LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C, jumlah kolom, jumlah baris LCD

void setup()
{
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(motorPin1, OUTPUT);
  pinMode(interruptPin, INPUT_PULLUP);

  attachInterrupt(digitalPinToInterrupt(interruptPin), interruptServiceRoutine, FALLING);

  lcd.init();
  lcd.backlight();
}

void loop()
{
  count++;

  // Menampilkan nilai count pada LCD
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Count: ");
  lcd.print(count);

  // Memeriksa apakah count adalah kelipatan 10 dan menyalakan LED sesuai
  if (count % 10 == 0)
  {
    switch (count / 10)
    {
    case 1:
      digitalWrite(LED1, HIGH);
      break;
    case 2:
      digitalWrite(LED2, HIGH);
      break;
    case 3:
      digitalWrite(LED3, HIGH);
      break;
    case 4:
      digitalWrite(LED4, HIGH);
      break;
    }
  }

  // Memutar motor ke kanan
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);

  delay(100);

  // Mematikan motor
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);

  // Menunggu 100ms sebelum iterasi berikutnya
  delay(100);

  // Memeriksa apakah count sudah mencapai 100
  if (count >= 100)
  {
    // Mematikan program
    while (true)
    {
      // Do nothing, program berhenti di sini
    }
  }
}

// Fungsi untuk menangani interrupt
void interruptServiceRoutine()
{
  count = 0; // Mengulang count menjadi 0
  // Mematikan semua LED
  digitalWrite(LED1, LOW);
  digitalWrite(LED2, LOW);
  digitalWrite(LED3, LOW);
  digitalWrite(LED4, LOW);
}
 
5. Kondisi [Kembali]
Percobaan 2 Kondisi 1
Motor ke kanan,LCD menampilkan counting dari 0 sampai 100, setiap counting kelipatan 10 maka hidup 1 LED,ketika diberi interrupt maka counting diulang dari 0 dan 1 led mati

5. Video Simulasi [Kembali]
 




7. Download File [Kembali]

HTML klik disini  
Simulasi  klik disini
Gambar Simulasi  klik disini 
Video Simulasi  klik disini 
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Dipswitch klik disini
Datasheet LCD 16x2 klik disini
Datasheet PCF8574 klik disini
Datasheet Motor DC klik disini
Datasheet Potensiometer klik disini
Datasheet Resistor klik disini








Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

MODUL 4

Modul 4 [menuju akhir] [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Percobaan Percob...