Senin, 18 Maret 2024

TP 1 P2K7



MODUL 2
PERCOBAAN 2 KONDISI 7

1. Prosedur
[Kembali]

+ Rangkai semua komponen sesuai kondisi yang dipilih
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino di proteus
+ jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
+ Selesai

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


        1. Arduino Uno

        2. DIP SWITCH 





        3. LCD



        4. Resistor

        5. Power Supply


         6. Ground
       



7. Motor

8. IC I2C

 


9. Potensiometer



                                                                        
1. Dipsw
2. LCD 2X16
3. Arduino Uno
4. motor
5. LMO16L
6. Buzzer
7. LED-RED
8. POT-HG
9. Resistor
10. PCF8574



            b. Digram Blok





3. Rangkaian Simulasi dan Prinsip kerja [Kembali]




PRINSIP KERJA

        Rangkaian percobaan M2P2 menggunakan interrupt Arduino untuk mengintegrasikan operasi sebuah motor DC, LCD, dan LED dengan cara yang spesifik. Motor DC diatur untuk berputar ke kanan selama 5 detik sebelum berhenti selama 3 detik, kemudian berputar ke kiri selama 5 detik, dan berhenti lagi selama 7 detik. Paralel dengan operasi motor, LCD menampilkan countdown dari 50 sampai 0. Ketika interrupt terjadi, sistem melakukan dua tindakan utama: mengulangi proses counting pada LCD dari 50 dan menghentikan operasi motor DC selama 3 detik. Interrupt ini dapat dipicu oleh event eksternal, seperti tombol yang ditekan, memungkinkan kontrol interaktif atas proses counting dan operasi motor. Ini menciptakan sebuah loop dimana motor dan display LCD berinteraksi sesuai dengan kondisi interrupt yang ditentukan, menunjukkan penggunaan interrupt dalam mengelola tugas-tugas simultan dan interaktif dalam sistem embedded.

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, 16, 2);

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
    M2P2 (Interrupt Arduino - LCD,LED, dan Motor DC)
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 LCD 2X16 klik disini
Download listing program klik disini

Tidak ada komentar:

Posting Komentar