Tugas Pendahuluan 2




MODUL 1

TUGAS PENDAHULUAN 2


1. Prosedur [kembali]

1. Membuka Wokwi lalu membuat proyek baru dengan memilih board STM32 Nucleo C031C6. Setelah itu menambahkan beberapa komponen pendukung seperti push button sebagai input, LED sebagai indikator cahaya, buzzer sebagai indikator suara, serta resistor yang berfungsi membatasi arus.

2. Selanjutnya merangkai komponen dengan menghubungkan push button ke salah satu pin input mikrokontroler (misalnya PA0) dan diberi konfigurasi pull-down ke GND. LED dihubungkan ke pin output (contohnya PB0) melalui resistor, sedangkan buzzer disambungkan ke pin output lain (misalnya PB1). Semua jalur VCC dan GND juga dipastikan tersambung dengan benar.

3. Kemudian menuliskan program pada editor Wokwi untuk membaca status push button sebagai pengganti sensor jarak. Dalam hal ini, tombol yang ditekan dianggap sebagai kondisi objek mendekat, sedangkan saat tidak ditekan diasumsikan objek berada jauh.

4. Berikutnya ditambahkan logika pada program, dimana ketika tombol tidak ditekan maka LED dan buzzer dalam keadaan mati. Saat tombol mulai ditekan, LED menyala sebagai tanda objek mulai mendekat, dan pada kondisi tertentu (misalnya penekanan penuh atau logika tambahan) buzzer ikut aktif sebagai indikasi jarak sangat dekat.

5. Setelah itu simulasi dijalankan dengan menekan tombol start di Wokwi, lalu dilakukan pengujian dengan menekan dan melepas push button untuk merepresentasikan perubahan jarak objek.

6. Hasil pengamatan menunjukkan bahwa ketika tombol ditekan, LED akan menyala dan buzzer dapat ikut aktif sebagai peringatan. Sebaliknya, saat tombol dilepas, semua output kembali mati, sehingga sistem ini mampu menggambarkan secara sederhana prinsip kerja sensor jarak untuk parkir mundur.


2. Hardware [kembali]

a) STM32 NUCLEO G474RE


    b) LED



    c) Buzzer



    d) Resistor



    e) Infrared Sensor



    f) Switch



       g) Diagram Blok


3. Rangkaian Simulasi dan Prinsip Kerja [kembali]


Prinsip Kerja : 

Rangkaian ini bekerja dengan prinsip deteksi durasi input untuk memicu respons berkelanjutan pada output. Ketika sensor infrared (dalam hal ini push button) mendeteksi keberadaan benda, ia akan mengirimkan sinyal logika ke pin input mikrokontroler (terlihat terhubung ke area port A0/A1). Mikrokontroler kemudian akan mulai menghitung durasi sinyal aktif tersebut menggunakan fungsi timer internal. Jika benda terdeteksi hanya dalam waktu singkat (kurang dari 15 detik), sistem mungkin hanya memberikan respons sesaat atau mengabaikannya sebagai gangguan, tergantung pada konfigurasi program dasar.

Namun, apabila sensor mendeteksi benda secara terus-menerus hingga melampaui ambang batas 15 detik, mikrokontroler akan mengeksekusi perintah untuk mengaktifkan LED merah (pada pin D2) dan Buzzer (pada pin D9) secara permanen selama kondisi tersebut terpenuhi. Sesuai dengan instruksi, selama sensor masih mendeteksi benda (sinyal tetap HIGH/LOW stabil), arus listrik akan terus dialirkan ke buzzer sehingga ia tetap berbunyi nyaring dan LED merah akan terus menyala tanpa putus. Sistem ini baru akan mematikan kedua output tersebut atau kembali ke kondisi siaga apabila sensor IR tidak lagi mendeteksi adanya benda di depannya.


4. Flowchart dan Listing Program [kembali]



Listing Program : 

// --- DEFINISI PIN ---
#define SWITCH_PIN     PA0
#define IR_SENSOR_PIN  PA1

#define LED_GREEN      PB0
#define LED_RED        PB1
#define BUZZER         PB2

// --- VARIABEL TIMER ---
unsigned long startTime = 0;
bool detecting = false;

void setup() {
  // Input
  pinMode(SWITCH_PIN, INPUT);      // pakai pull eksternal
  pinMode(IR_SENSOR_PIN, INPUT);   // pakai pull-down eksternal

  // Output
  pinMode(LED_GREEN, OUTPUT);
  pinMode(LED_RED, OUTPUT);
  pinMode(BUZZER, OUTPUT);

  // Default OFF
  digitalWrite(LED_GREEN, LOW);
  digitalWrite(LED_RED, LOW);
  digitalWrite(BUZZER, LOW);
}

void loop() {

  // === 1. CEK SWITCH ===
  // Switch aktif saat HIGH (sesuai referensi kode Anda)
  if (digitalRead(SWITCH_PIN) == HIGH) {

    // === 2. CEK IR SENSOR ===
    // LOW = mendeteksi benda
    if (digitalRead(IR_SENSOR_PIN) == LOW) {

      // Jika baru mulai deteksi
      if (!detecting) {
        detecting = true;
        startTime = millis();
      }

      // Hitung durasi deteksi
      if (millis() - startTime >= 15000) {
        // === KONDISI ALARM ===
        digitalWrite(LED_RED, HIGH);
        digitalWrite(LED_GREEN, LOW);
        digitalWrite(BUZZER, HIGH);
      }

    } else {
      // === TIDAK MENDETEKSI ===
      detecting = false;

      digitalWrite(LED_RED, LOW);
      digitalWrite(LED_GREEN, HIGH);
      digitalWrite(BUZZER, LOW);
    }

  } else {
    // === SWITCH OFF ===
    detecting = false;

    digitalWrite(LED_GREEN, LOW);
    digitalWrite(LED_RED, LOW);
    digitalWrite(BUZZER, LOW);
  }

  delay(10); // ringan, tidak mengganggu timing utama
}


5. Video Demo [kembali]


6. Kondisi [kembali]

Percobaan 1 Kondisi 6

Buatlah rangkaian seperti pada gambar percobaan 2 dengan kondisi ketika infrared sensor mendeteksi benda secara terus-menerus selama lebih dari 15 detik , maka buzzer tetap berbunyi dan LED merah tetap menyala.


7. Video Simulasi [kembali]


8. Link Download [kembali]

Komentar

Postingan populer dari blog ini