Percobaan 2 Kondisi 4
1. Prosedur [kembali]
- Memahami kondisi atau skenario
yang akan digunakan pada percobaan.
- Setelah itu, buka website Wokwi.
- Siapkan alat dan bahan yang
diperlukan.
- Buat rangkaian sesuai dengan kondisi
yang diinginkan dan mengikuti modul yang ada.
- Tulis kode program sesuai instruksi untuk menjalankan
rangkaian.
- Jalankan simulasi untuk melihat apakah rangkaian sudah bekerja dengan baik.
- Jika semua langkah sudah dilakukan, maka proses selesai.
2. Hardware dan Diagram Blok [kembali]
A. Hardware
1. Mikrokontroler STM32 NUCLEO-G474RE
2. Infrared Sensor
3.
Buzzer
4.
Power Supply
5.
RGB LED
6.
Resistor 1k Ohm
7.
Switch
8.
Adaptor
9.
Breadboard
B. Diagram Blok
3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
Prinsip
Kerja
Sistem
ini menggunakan sensor infrared (IR) untuk mendeteksi keberadaan benda dan
sebuah tombol (switch) sebagai pengontrol. Kedua input bekerja dalam logika
aktif LOW, sehingga kondisi aktif terjadi saat bernilai RESET.
LED hijau akan menyala ketika sensor infrared tidak mendeteksi benda (output LOW) dan tombol dalam kondisi ON (LOW). Jika salah satu kondisi tidak terpenuhi, maka LED hijau akan mati. Dengan demikian, LED hanya menyala ketika tidak ada objek yang terdeteksi oleh sensor infrared dan switch dalam keadaan aktif.
4. Flowchart dan Listing Program [kembali]
Flowchart:
Listing Program:
A. main.c
#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_1)
== GPIO_PIN_RESET &&
HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0)
== GPIO_PIN_RESET)
{
HAL_GPIO_WritePin(GPIOB,
GPIO_PIN_0, GPIO_PIN_SET);
}
else
{
HAL_GPIO_WritePin(GPIOB,
GPIO_PIN_0, 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;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
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;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct,
FLASH_LATENCY_0);
}
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_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
void
Error_Handler(void)
{
while (1)
{
}
}
B. main.h
#ifndef __MAIN_H
#define __MAIN_H
#ifdef __cplusplus
extern
"C" {
#endif
#include
"stm32c0xx_hal.h"
/* Function
prototype */
void
Error_Handler(void);
/* INPUT */
#define
BUTTON_REVERSE_Pin GPIO_PIN_0
#define
BUTTON_REVERSE_GPIO_Port GPIOA
#define
IR_SENSOR_Pin GPIO_PIN_1
#define IR_SENSOR_GPIO_Port GPIOA
/* OUTPUT */
#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 /* __MAIN_H
*/
5. Video Demo [kembali]
6. Kondisi [kembali]
Percobaan
2 Kondisi 4
Buatlah
rangkaian seperti pada gambar percobaan 2 dengan kondisi ketika Infrared sensor
tidak mendeteksi benda dan switch on, maka LED menyala hijau
7. Video Simulasi [kembali]
8. Download File [kembali]
Rangkaian Wokwi [Download]
Vidio Rangkaian [Download]
Datasheet STM32
NUCLEO-G474RE [Download]
Datasheet Infrared
Sensor [Download]
Datasheet Buzzer [Download]
Datasheet RGB LED [Download]
HTML [Download]
Comments
Post a Comment