Tugas Pendahuluan 2

 


MODUL 1 PERCOBAAN 2  KONDISI 2


1. Prosedur[Kembali]

1. Buka web WOKWI.COM dan cari STM 32 NUCLEO C031C6

2. Rangkai komponen sesuai dengan gambar rangkaian di modul

3. Klik pada Library Manager untuk membuat file baru yang bernama main.h dan main.c

4. Masukan program yang telah di buat sesuai kondisi pada kedua file tersebut

5. Simulasikan


2. Hardware dan Diagram Blok[Kembali]

1. STM32 NUCLEO-G474RE



2. Float Switch



3. Infrared Sensor


4. Resistor


5. Buzzer



6. LED 

7. Push Button

  • Diagram Blog

3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]

  • Ketika Switch ON dan push button ditekan, maka LED RGB aktif warna kuning 
  • Ketika Switch OFF dan Push button ditekan, maka LED RGB off

4. Flowchart dan Listing Program[Kembali]



  • Listing Program
  1. main.c
#include "main.h"
                   
// --- PROTOTIPE ---
void SystemClock_Config(void);
static void MX_GPIO_Init(void);

// --- PROGRAM UTAMA ---
int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();

 while (1)
{
  uint8_t button = HAL_GPIO_ReadPin(BUTTON_REVERSE_GPIO_Port, BUTTON_REVERSE_Pin);

  // =========================
  // SLIDE SWITCH CONTROL
  // =========================

  if (button == GPIO_PIN_RESET) // switch ke kanan (dibalik)
{
  // LED KUNING
  HAL_GPIO_WritePin(LED_GPIO_Port, LED_R_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(LED_GPIO_Port, LED_G_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(LED_GPIO_Port, LED_B_Pin, GPIO_PIN_RESET);
}
else
{
  // mati
  HAL_GPIO_WritePin(LED_GPIO_Port, LED_R_Pin | LED_G_Pin | LED_B_Pin, GPIO_PIN_RESET);
}

  HAL_Delay(50);
}
}

// --- CLOCK ---
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();
  }
}

// --- GPIO ---
static void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  __HAL_RCC_GPIOA_CLK_ENABLE();
  __HAL_RCC_GPIOB_CLK_ENABLE();

  // INPUT
  GPIO_InitStruct.Pin = BUTTON_REVERSE_Pin | IR_SENSOR_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_PULLDOWN;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  // OUTPUT
  GPIO_InitStruct.Pin = LED_R_Pin | LED_G_Pin | LED_B_Pin | BUZZER_Pin;
  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);

  // Default mati
  HAL_GPIO_WritePin(GPIOB, LED_R_Pin | LED_G_Pin | LED_B_Pin | BUZZER_Pin, GPIO_PIN_RESET);
}

// --- ERROR HANDLER ---
void Error_Handler(void)
{
  __disable_irq();
  while (1)
  {
  }

          2. Main.h

#ifndef __MAIN_H
#define __MAIN_H

#ifdef __cplusplus
extern "C" {
#endif

#include "stm32c0xx_hal.h"

// ===== 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 RGB LED =====
#define LED_R_Pin                GPIO_PIN_0
#define LED_G_Pin                GPIO_PIN_1
#define LED_B_Pin                GPIO_PIN_2
#define LED_GPIO_Port            GPIOB

// ===== BUZZER =====
#define BUZZER_Pin               GPIO_PIN_3
#define BUZZER_GPIO_Port         GPIOB

// ===== FUNCTION =====
void Error_Handler(void);

#ifdef __cplusplus
}
#endif

#endif

5. Video Demo[Kembali]


6. Kondisi[Kembali]

M1P2K5 : Buatlah rangkaian seperti pada gambar percobaan 2 dengan kondisi ketika Infrared sensor tidak mendeteksi benda dan switch on, maka LED menyala kuning

8. Download File[Kembali]

rangkaian percobaan [Klik]

video simulasi [klik]





Komentar

Postingan populer dari blog ini