Tugas Pendahuluan 1: Kontrol Lampu Lorong



 1. Prosedur[kembali]

  1. Menyiapkan alat dan bahan.
  2. Merangkai komponen pada breadboard sesuai dengan gambar rangkaian percobaan.
  3. Menghubungkan masing masing pin input output.
  4. Mengunggah program menggunakan ST-LINK ke mikrokontroler.
  5. Jalankan Rangkaian

 2. Hardware dan Diagram Blok[kembali]

  1. STM32F103C8 
  2. Touch Sensor 
  3. PIR Sensor 
  4. LED 
  5. Buzzer 
  6. Resistor

 3. Rangkaian Simulasi dan Prinsip kerja [kembali]



 4. Flowchart dan Listing Program[kembali]


#include "stm32f1xx_hal.h" // [cite: 159]

uint8_t system_enable = 0; // [cite: 160]
uint8_t touch_last = 0; // [cite: 160]
uint8_t pir_first_trigger = 1; // [cite: 160]

int main(void) {
    HAL_Init(); // [cite: 164]
    SystemClock_Config(); // [cite: 165]
    MX_GPIO_Init(); // [cite: 166]

    while (1) {
        uint8_t pir_now = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0); // [cite: 168, 169]
        uint8_t touch_now = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1); // [cite: 169]

        // Logika Touch Sensor untuk Toggle System
        if (touch_now == GPIO_PIN_SET && touch_last == GPIO_PIN_RESET) { // [cite: 170]
            system_enable = !system_enable; // [cite: 172]
            if (system_enable) { // [cite: 173]
                HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); // [cite: 175]
                HAL_Delay(100); // [cite: 176]
                HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); // [cite: 177]
            }
        }
        HAL_Delay(200); // [cite: 180]
        touch_last = touch_now; // [cite: 181]

        // Logika PIR Sensor
        if (pir_now == GPIO_PIN_SET) { // [cite: 182]
            HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); // [cite: 184]
            if (pir_first_trigger) { // [cite: 185]
                HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); // [cite: 187]
                HAL_Delay(100); // [cite: 187]
                HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); // [cite: 188]
                pir_first_trigger = 0; // [cite: 188]
            }
        } else {
            pir_first_trigger = 1; // [cite: 193]
        }

        if (!system_enable) { // [cite: 198]
            HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); // [cite: 200]
        }
    }
}

 5. Video Demo[kembali]

 6. Kondisi [kembali]

1Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi ketika PIR mendeteksi gerakan dan sensor Touch tidak mendeteksi sentuhan, maka LED menyala
2Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi ketika PIR tidak mendeteksi gerakan dan sensor Touch tidak mendeteksi sentuhan, maka LED akan mati
3Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi ketika PIR mendeteksi gerakan selama waktu tertentu kemudian tidak lagi mendeteksi, dan sensor Touch tidak disentuh, LED mati dan Buzzer berbunyi
4Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi PIR mendeteksi gerakan berulang sebelum waktu tunda habis dan sensor Touch tidak disentuh, maka LED tetap menyala
5Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi sensor Touch mendeteksi sentuhan pertama kali, maka LED menyala dan Buzzer berbunyi, serta PIR dinonaktifkan
6Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi sensor Touch aktif dan PIR mendeteksi gerakan serta LED hidup berkedip
7Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi ketika PIR mendeteksi gerakan dan sensor Touch tidak mendeteksi sentuhan, maka Buzzer menyala
8Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi ketika sensor PIR tidak mendeteksi gerakan dan sensor touch tidak mendeteksi sentuhan, maka LED mati dan buzzer tidak berbunyi.
9Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi ketika sensor touch disentuh kembali setelah mode manual aktif, maka sistem kembali ke mode otomatis, buzzer berhenti berbunyi, dan sensor PIR kembali aktif mendeteksi gerakan.
10Buatlah rangkaian seperti pada gambar percobaan 1 dengan kondisi ketika sensor PIR mendeteksi gerakan kemudian tidak ada gerakan lanjutan selama waktu tertentu, maka LED tetap menyala selama delay yang ditentukan dan kemudian mati secara otomatis, sedangkan buzzer hanya berbunyi saat awal deteksi.

 7. Video Simulasi [kembali]

 8. Download File [kembali]


Komentar

Postingan populer dari blog ini