LA 2 M1

[menuju akhir]





PERCOBAAN 2 : Led RGB, Touch Sensor, & Sensor Infrared

1. Prosedur[Kembali]
1. Sediakan alat dan bahan percobaan

2. Rangkailah rangkaian di breadboard

3. Download stlink. dan masukkan listing program ke aplikasi STM32 IDE

4. Hubungkan rangkaian dengan software dengan kabel stlink 

5. Jalankan program

2. Hardware dan Diagram Blok[Kembali]
a. Hardware

1. STM32 Nucleo


2. Switch


3. Resistor

4. RGB-LED
5. Infrared Sensor
6. Touch Sensor

b. Diagram Blok

3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]






Gambar Rangkaian Percobaan 2 Modul 1



Prinsip Kerja :

Prinsip kerja sistem parkir mundur pada percobaan 2 dimulai dari proses inisialisasi mikrokontroler STM32, di mana pin GPIO dikonfigurasi sebagai input (switch dan sensor inframerah/IR) serta output (LED dan buzzer). Switch digunakan sebagai pengaktif sistem parkir, sehingga sistem hanya bekerja ketika kondisi mundur diaktifkan (misalnya seperti tuas mobil). Saat switch dalam kondisi tidak aktif, seluruh output dimatikan sebagai bentuk efisiensi dan keamanan sistem.


Ketika switch aktif, mikrokontroler mulai membaca sinyal dari sensor IR yang berfungsi mendeteksi keberadaan objek di belakang kendaraan. Sensor ini bekerja dengan prinsip pantulan cahaya inframerah; jika ada objek mendekat, sensor akan memberikan sinyal logika tertentu (umumnya LOW atau HIGH tergantung konfigurasi). Berdasarkan program, ketika sensor mendeteksi objek, sistem akan mengaktifkan LED merah dan buzzer sebagai tanda bahaya atau jarak dekat, sedangkan jika tidak ada objek, LED hijau akan menyala sebagai indikasi aman.


Secara keseluruhan, sistem bekerja secara real-time menggunakan metode polling, yaitu membaca kondisi input secara terus-menerus dalam loop utama. Output yang dihasilkan bergantung pada kombinasi kondisi switch dan sensor IR, sehingga sistem mampu memberikan respon cepat terhadap perubahan jarak. Dengan konsep ini, sistem parkir mundur dapat membantu pengguna mengetahui kondisi aman atau bahaya saat mundur melalui indikator visual dan suara secara sederhana namun efektif.


4. Flowchart dan Listing Program[Kembali]

a. Flowchart






b. Listing Program

#include "stm32f1xx_hal.h"

 

uint8_t system_enable = 0; uint8_t touch_last = 0; uint8_t pir_first_trigger = 1;

 

void SystemClock_Config(void); static void MX_GPIO_Init(void); void Error_Handler(void);

int main(void)

{

HAL_Init(); SystemClock_Config(); MX_GPIO_Init();

 

while (1)

{

uint8_t pir_now   = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0); 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; if (system_enable)

{

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);

HAL_Delay(100);

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);

}

HAL_Delay(200);

}

touch_last = touch_now;

 

if (pir_now == GPIO_PIN_SET)

{

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);

if (pir_first_trigger)

{

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);

HAL_Delay(100);

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);

pir_first_trigger = 0;

}

}

else

{

pir_first_trigger = 1;

            if(!system_enable)

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);

}

if(system_enable)

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);

}

}

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_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = 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_GPIOA_CLK_ENABLE();

  HAL_RCC_GPIOB_CLK_ENABLE();

GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1, GPIO_PIN_RESET);

} 

void Error_Handler(void)

{

  disable_irq(); while(1)

{

}

} 



5. Video Demo[Kembali]





6. Analisa[Kembali] 




 

7. Download File[Kembali]

Download HTML klik disini
Download File Analisa klik disini
Download Video Demo klik disini
Download Datashett STM32 klik disini
Download Datasheet IR sensor klik disini
Download Datasheet Touch sensor klik disini
Download Datasheet  RGB-LED klik disini
Download Datasheet Resistor klik disini

Tidak ada komentar:

Posting Komentar

Modul 3 Communication

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Percobaan ...