Laporan Akhir 2




1. Prosedur [Kembali]

  1. Buka aplikasi STM32CubeIDE lalu download driver STM NUCLEO
  2. Setelah itu masukkan pin Input dan pin Output sesuai dengan gambar rangkaian di modul
  3. Masukan program yang telah di buat sesuai kondisi pada kedua file tersebut
  4. Rangkai komponen sesuai dengan gambar rangkaian di modul
  5. Hubungkan laptop dengan rangkaian yang telah dirangkai
  6. Selesai


2. Hardware [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

Gambar Rangkaian Percobaan 2 di Wokwi

Gambar Rangkaian Simulasi ketika Switch Otomatis

Gambar Rangkaian Simulasi ketika Switch Manual

4. Flowchart [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)
  {
    uint8_t ir_sensor = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0);  // IR Sensor
    uint8_t sw_status = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1);  // Switch

    // ✅ KONDITI UTAMA: IR TIDAK DETEKSI (0) + SWITCH ON (1) = LED HIJAU ON
    if (ir_sensor == GPIO_PIN_RESET && sw_status == GPIO_PIN_SET)
    {
      // LED HIJAU NYALA (PB0)
      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 if (ir_sensor == GPIO_PIN_SET)
    {
      // IR DETEKSI = LED MERAH (PB2)
      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_SET);
    }
    else if (sw_status == GPIO_PIN_RESET)
    {
      // Switch OFF = SEMUA LED OFF
      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
    {
      // Switch ON + IR deteksi = LED KUNING (PB1)
      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_RESET);
    }

    HAL_Delay(50);
  }
}

// ✅ ARDUINO STM32 CORE COMPATIBLE CLOCK CONFIG
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;
 
  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();

  // Initial outputs LOW
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_RESET);

  // PA0=IR Sensor, PA1=Switch (PULLDOWN)
  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);

  // PB0=Hijau, PB1=Kuning, PB2=Merah
  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)
{
  while (1) {}
}

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 Simulasi [Klik]

Video Simulasi [Klik]

































Komentar

Postingan populer dari blog ini

TUGAS BESAR

PBL Modul 1

Modul 1 UP & UC