LA 1
b. Hardware dan Diagram Blok[Kembali]
HARDWARE
1. STM32F103C8
Microcontroller | ARM Cortex-M3 |
Operating Voltage | 3.3 V |
Input Voltage (recommended) | 5 V |
Input Voltage (limit) | 2 – 3.6 V |
Digital I/O Pins | 32 |
PWM Digital I/O Pins | 15 |
Analog Input Pins | 10 (dengan resolusi 12-bit ADC) |
DC Current per I/O Pin | 25 mA |
DC Current for 3.3V Pin | 150 mA |
Flash Memory | 64 KB |
SRAM | 20 KB |
EEPROM | Emulasi dalam Flash |
Clock Speed | 72 MHz |
2. Touch Sensor
SPESIFIKASI :
- Konsumsi daya yang rendah
- Bisa menerima tegangan dari 2 ~ 5.5V DC
- Dapat menggantikan fungsi saklar tradisional
- Dilengkapi 4 lobang baut untuk memudahkan pemasangan
- Tegangan kerja : 2v s/d 5.5v (optimal 3V)
- Output high VOH : 0.8 VCC (typical)
- Output low VOL : 0.3 VCC (max)
- Arus Output Pin Sink (@ VCC 3V, VOL 0.6V) : 8 mA
- Arus Output pin pull-up (@ VCC=3V, VOH=2.4V) : 4 mA
- Waktu respon (low power mode): max 220 ms
- Waktu respon (touch mode): max 60 ms
- Ukuran: 24 mm x 24 mm x 7.2 mm
4. PIR Sensor
5. LED
6. Buzzer
7. Resistor
c. Rangkaian Simulasi dan Prinsip Kerja[Kembali]
Prinsip Kerja
Sistem alarm perimeter pintu ini bekerja dengan memanfaatkan kombinasi sensor sentuh (touch sensor) dan sensor inframerah (IR). Pada awalnya, mikrokontroler akan melakukan inisialisasi terhadap semua komponen yang digunakan, terutama IR sensor dan touch sensor. Touch sensor berfungsi sebagai saklar utama untuk mengaktifkan atau menonaktifkan sistem keamanan.
Ketika touch sensor dalam kondisi aktif (ON), sistem akan mulai memantau kondisi dari sensor inframerah. IR transmitter akan memancarkan sinar inframerah yang diterima oleh IR receiver. Selama sinar tersebut tidak terhalang, sistem menganggap kondisi aman sehingga LED dan buzzer tetap dalam keadaan mati.
Namun, ketika sinar inframerah terputus (misalnya karena pintu dibuka atau ada objek yang menghalangi), maka IR receiver akan mendeteksi perubahan tersebut dan mengirimkan sinyal ke mikrokontroler. Mikrokontroler kemudian akan mengaktifkan LED dan buzzer sebagai tanda adanya gangguan atau penyusup.
Sebaliknya, jika touch sensor dalam kondisi OFF, maka sistem tidak akan melakukan pemantauan, sehingga LED dan buzzer tetap dalam keadaan mati meskipun terjadi gangguan pada sensor inframerah. Dengan demikian, sistem ini memungkinkan pengguna untuk mengontrol kapan alarm diaktifkan dan memberikan peringatan secara otomatis ketika terjadi pelanggaran pada area yang dipantau.
d. Flowchart dan Listing Program[Kembali]
FLOWCHART#include "main.h" uint8_t system_enable = 1; uint8_t touch_last = 0; void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while (1) { uint8_t touch_now = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1); if (touch_now == GPIO_PIN_SET && touch_last == GPIO_PIN_RESET) { system_enable = !system_enable; HAL_Delay(200); } touch_last = touch_now; if (system_enable) { if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_RESET) { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); } else { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); } } else { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); } } } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) { Error_Handler(); } } static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_RESET); GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); } void Error_Handler(void) { __disable_irq(); while (1) { } } #ifdef USE_FULL_ASSERT void assert_failed(uint8_t *file, uint32_t line) { } #endif
FIle Zip [klik disini]
LAPORAN AKHIR [Klik Disini]
Datasheet Sensor: - datasheet Sensor Pir [disini]
- datasheet Sensor Touch [disini]
- datasheet Stm32f103C8 [klik disini]
- datasheet Sensor Pir [disini]
- datasheet Sensor Touch [disini]
- datasheet Stm32f103C8 [klik disini]
Datasheet Led [klik disini]
Komentar
Posting Komentar