TP 1

Modul 2
PWM, ADC, dan Interrupt

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]
      1. Arduino Uno

      2. motor

      3. LED

      4. Resistor
      5. Power Supply
      6. Ground
      7. LCD

      8. Dipswitch

Diagram Blok :


3. Rangkaian Simulasi dan Prinsip kerja [Kembali]

  • Rangkaian Sebelum Disimulasikan
                                    

  • Rangkaian Setelah Disimulasikan
                                        

PRINSIP KERJA
    saat program dijalankan dan masuk ke komponen arduino. Selanjutnya, program terus berjalan dalam loop utama, pada saat awal jalannya rangkaian maka akan terjadi proses counting pada LCD yang menampilkan counting dari 0 sampai dengan 50. saat proses counting mencapai nilai maksimal maka motor akan berputar, dimana arah putarannya itu ke kana selama 3 detik lalu berhenti selama 2 detik dan selanjutnya akan berputar ke kiri selama 3 detik dan berhenti selama 2 detik.
apabila dilakukan interrupt (falling dimana switch dari high ke low) maka proses pada loop utama yang sedang berjalan akan langsung dipindahkan ke void interrupt dimana pada bagian ini proses yang terjadi misal counting yang sedang berjalan akan kembali ke 0, motor yang sedang berputar akan berhenti dan LED yang tadinya mati akan hidup selama 4 detik. Saat proses interrupt selesai maka akan kembali k




e loop awal

4. FlowChart [Kembali]

a. Listing Program 


#include <LiquidCrystal_I2C.h>

// Definisikan pin
const int motorPin1 = 5;    // Motor pin 1
const int motorPin2 = 6;    // Motor pin 2
const int enablePin = 7;    // Enable pin untuk motor
const int ledPin = 13;      // Pin LED
const int switchPin = 2;    // Pin untuk switch
volatile int count = 0;     // Variabel untuk menghitung interrupt
LiquidCrystal_I2C lcd(0x27, 20, 4); // Inisialisasi LCD

void setup() {
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(enablePin, OUTPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(switchPin, INPUT_PULLUP); // Mengatur switchPin sebagai input dengan pull-up resistor
 
  // Inisialisasi LCD
  lcd.init();
  lcd.backlight();
 
  // Attach interrupt
  attachInterrupt(digitalPinToInterrupt(switchPin), interruptHandler, RISING);
}

void loop() {

  for (int i = 0; i <= 50; i++) {
    lcd.setCursor(0, 0);
    lcd.print("Count: ");
    lcd.print(count);
      digitalWrite(ledPin, LOW); // Nyalakan LED

    count += 1; // Menambahkan integer count dengan angka 1
    delay(200); // Tunda 200 ms
    if (count > 50) {
      count = 0;
    }
  }

  // Putar motor ke kanan selama 3 detik
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(enablePin, HIGH); // Kecepatan penuh
  delay(3000);
 
  // Berhenti selama 2 detik
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  analogWrite(enablePin, 0); // Motor berhenti
  delay(2000);
 
  // Putar motor ke kiri selama 3 detik
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  analogWrite(enablePin, 255); // Kecepatan penuh
  delay(3000);
 
  // Berhenti selama 2 detik
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  analogWrite(enablePin, 0); // Motor berhenti

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Count: ");
  lcd.print(count);
  delay(2000);
  }

void interruptHandler() {
  count = 0; // Reset count saat terjadi interrupt
    // Berhenti 4 detik setelah setiap putaran
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  delay(4000);
  digitalWrite(ledPin, HIGH); // Matikan LED
delay(3000);

}


b. Flowchart

5. Kondisi [Kembali]
Kondisi  : Percobaan 2 Kondisi 5
        Motor ke kanan selama 3 detik lalu mati 2 detik ke kiri 3 detik dan mati 2 detik ,LCD menampilkan counting dari 0 sampai 50, interrupt counting diulang dari 0 dan motor DC berhenti 4 detik dan 1 led hidup setiap kali dilakukan interrupt

6. Video Simulasi [Kembali]



7. Download File [Kembali]
Download Simulasi Rangkaian Klik disini
Download HTML Klik disini
Download Video Simulasi Klik disini
Download Datasheet ARDUINO UNO klik disini

Komentar

Postingan populer dari blog ini

Cover

Cover uP dan uC