Senin, 18 Maret 2024

M2

TP 1: Percobaan 2 Kondisi 7 



MODUL 2
PERCOBAAN 2 KONDISI 7

1. Prosedur
 [Kembali]

1. Rangkai semua komponen sesuai kondisi yang dipilih
2. Buat program di aplikasi arduino IDE
3. Setelah selesai masukkan program ke arduino di proteus
4. Jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
5. Selesai

2. Hardware dan diagram blok [Kembali]
      a. hardware


1. Arduino Uno
2. Dipswitch
3. LCD 16X2
4. PCF8574
4. Motor DC

            b. Digram Blok




3. Rangkaian Simulasi dan Prinsip kerja [Kembali]

Gambar Rangkaian Sebelum Disimulasikan


Gambar Rangkaian Setelah Disimulasikan


PRINSIP KERJA
Pada rangkaian tersebut, Motor berputar ke kanan 5 detik lalu mati 3 detik dan 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.
Pada rangkaian di atas dengan input dipswitch dengan output motor dc dan LCD 16X2, pada saat rangakaian di run motor dc akan beroutar dan LCD menampilkan counting dari 50-0 dengan waktu delay yang cukup lama antara 50 ke 49 dan seterusnya jika saat di run tersebut kita tekan tombol pada dipswict maka counting yang ditampilkan di lcd akan menampilkan kembali counting mulai dari 50 lagi atau kembali ke awal akibat adanya interrupt dari tombol dipswicth yang kita tekan. Pada kondisi ini, dapat memudahkan kita jika ingin memberi perintah untuk menampilkan angka yang kita inginkan tanpa menunggu counting yang ditampilkan pada LCD selesai mengcounting dari 50 sampai 0

4. FlowChart [Kembali]

a. Listing Program 
#include  <LiquidCrystal_I2C.h>

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

#define motorDelay 5000 // Waktu rotasi motor dalam milidetik
#define stopDelay 3000  // Waktu motor berhenti dalam milidetik
#define restartDelay 7000 // 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);
}



b. Flowchart

                                      
5. Kondisi [Kembali]

Kondisi  →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

6. Video Simulasi [Kembali]


   


7. Download File [Kembali]
Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Simulasi Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet Dipswicth klik disini
Download Datasheet motor dc klik disini
Download Datasheet PCF8574 klik disini













































Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

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