LA Modul 1 (2)

Laporan Akhir 2




 

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 Blok Diagram [kembali]

  • Hardware


STM32F103C8

 

 

Touch Sensor

 

 

PIR Sensor

 

LED

 

Buzzer

 

Resistor


  • Diagram Blok

  • Hardware


STM32F103C8

 

 

Touch Sensor

 

 

PIR Sensor

 

LED

 

Buzzer

 

Resistor



 3. Rangkaian Simulasi dan Prinsip Kerja [kembali]




Prinsip kerja purwarupa Sistem Deteksi Jarak pada Parkir Mundur ini dimulai saat pengguna mengaktifkan sakelar (switch) yang mensimulasikan kondisi ketika mobil dimasukkan ke gigi mundur. Setelah sistem menyala, sensor inframerah (IR) akan langsung bekerja memancarkan cahaya untuk mendeteksi keberadaan rintangan di belakang kendaraan; jika terdapat objek, cahaya tersebut akan dipantulkan dan ditangkap kembali oleh sensor untuk mengukur jaraknya. Data pembacaan jarak ini kemudian dikirimkan ke mikrokontroler STM32 NUCLEO sebagai pusat kendali untuk diproses dan dievaluasi berdasarkan ambang batas (threshold) yang telah diprogram sebelumnya. Berdasarkan evaluasi tersebut, mikrokontroler akan mengendalikan komponen keluaran untuk memberikan umpan balik dinamis kepada pengemudi. Semakin dekat jarak rintangan dengan kendaraan, peringatan yang diberikan akan semakin intens, misalnya warna LED RGB yang berubah dari hijau (aman) menjadi kuning lalu merah (bahaya), diiringi dengan frekuensi tempo bunyi buzzer yang berawal dari senyap menjadi berbunyi semakin cepat hingga akhirnya berdering terus-menerus untuk memperingatkan pengemudi agar segera berhenti.

4. Flowchart dan Listing Program [kembali]

Flowchart


Listing Program
#include "main.h"
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
while (1)
{
if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_RESET)
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);
}
else
{
if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1) == GPIO_PIN_RESET)
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);
}
else
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET);
}
}
HAL_Delay(50);
}
}
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;
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_PULLDOWN;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2;
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)
{
}
}
#ifndef __MAIN_H
#define __MAIN_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32c0xx_hal.h"
void Error_Handler(void);
#define BUTTON_REVERSE_Pin GPIO_PIN_0
#define BUTTON_REVERSE_GPIO_Port GPIOA
#define IR_SENSOR_Pin GPIO_PIN_
#define LED_GREEN_Pin GPIO_PIN_0
#define LED_GREEN_GPIO_Port GPIOB
#define LED_RED_Pin GPIO_PIN_1
#define LED_RED_GPIO_Port GPIOB
#define BUZZER_Pin GPIO_PIN_2
#define BUZZER_GPIO_Port GPIOB
#ifdef __cplusplus
}
#endif
#endif 


 5. Video Demo [kembali]


6. Kondisi [kembali]

Percobaan 4, kondisi4, Buatlah rangkaian seperti pada gambar percobaan 4 dengan kondisi ketika flame sensor mendeteksi adanya nyala api dan pompa dalam keadaan mati, maka LED indikator merah menyala dan buzzer berbunyi sebagai alarm peringatan, sedangkan pompa tetap dalam kondisi mati.

7. Video Simulasi [kembali]

Video Simulasi


8. Download File [kembali]







Komentar

Postingan populer dari blog ini