Tugas Pendahuluan 1: Kontrol Lampu Lorong
1. Prosedur[kembali]
- Menyiapkan alat dan bahan.
- Merangkai komponen pada breadboard sesuai dengan gambar rangkaian percobaan.
- Menghubungkan masing masing pin input output.
- Mengunggah program menggunakan ST-LINK ke mikrokontroler.
- Jalankan Rangkaian
2. Hardware dan Diagram Blok[kembali]
- STM32F103C8
- Touch Sensor
- PIR Sensor
- LED
- Buzzer
- 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]
}
}
}
6. Kondisi [kembali]
7. Video Simulasi [kembali]
8. Download File [kembali]
Komentar
Posting Komentar