TP M1 P2 K4





1. Prosedur[Kembali]

 1. Buka Wokwi dengan mengunjungi https://wokwi.com.

2. Tambahkan komponen.

3. Hubungkan komponen sesuai kondisi

4. Tambahkan atau ketik Program yang sesuai dengan kondisi rangkaian

5. Jalankan program simulasi 

2. Hardware dan Diagram Blok[Kembali]

  • Hardware
  • STM32 NUCLEO-G474RE 


  • Infrared Sensor 


  • Buzzer 


  • LED RGB 


  • Resistor 1k ohm 


  • Adaptor 


  • Breadboard 
  • Diagram Blog



3. Rangkaian Simulasi[Kembali]

  • Rangkaian sebelum di running



  • Rangkaian Setelah di running


Prinsip Kerja:

Rangkaian ini bekerja dengan menggunakan mikrokontroler STM32 Nucleo C031C6 sebagai pusat pengendali yang mengatur input dan output sistem. Komponen input yang digunakan adalah sensor infrared (IR) dan sebuah switch, sedangkan komponen output berupa LED (khususnya LED hijau) dan buzzer. Ketika rangkaian diberi catu daya (VCC), mikrokontroler akan melakukan inisialisasi pada seluruh pin yang terhubung, yaitu mengatur pin sensor IR dan switch sebagai input, serta pin LED dan buzzer sebagai output.

Setelah proses inisialisasi selesai, mikrokontroler akan bekerja secara terus-menerus dalam sebuah loop untuk membaca kondisi dari sensor IR dan switch. Sensor infrared berfungsi untuk mendeteksi keberadaan objek di depannya. Pada kondisi tertentu, yaitu saat sensor tidak mendeteksi adanya benda, sensor akan memberikan sinyal logika tertentu (misalnya HIGH atau LOW tergantung konfigurasi rangkaian). Di sisi lain, switch berfungsi sebagai pengaktif sistem secara manual, di mana ketika switch dalam keadaan ON, maka sistem dianggap aktif.

Prinsip kerja utama rangkaian ini terletak pada kombinasi logika dari kedua input tersebut. Ketika sensor infrared tidak mendeteksi adanya benda dan pada saat yang sama switch berada dalam kondisi ON, maka mikrokontroler akan memproses kondisi tersebut sebagai keadaan yang memenuhi syarat. Berdasarkan kondisi ini, mikrokontroler kemudian memberikan sinyal output berupa logika HIGH ke pin yang terhubung dengan LED hijau.

Akibatnya, arus listrik akan mengalir melalui LED sehingga LED hijau menyala. Nyala LED hijau ini berfungsi sebagai indikator bahwa sistem dalam keadaan aktif dan tidak ada objek yang terdeteksi oleh sensor, yang dapat diartikan sebagai kondisi aman. Pada kondisi ini, buzzer tidak diaktifkan karena tidak ada indikasi keberadaan objek yang memicu alarm.

Sebaliknya, apabila salah satu kondisi tidak terpenuhi, misalnya sensor infrared mendeteksi adanya benda atau switch dalam keadaan OFF, maka mikrokontroler tidak akan menyalakan LED hijau. Dalam kondisi tertentu, seperti saat sensor mendeteksi objek, sistem dapat dikembangkan untuk mengaktifkan buzzer sebagai tanda peringatan.

Dengan demikian, rangkaian ini bekerja berdasarkan logika kombinasi antara sensor dan switch, di mana LED hijau hanya akan menyala ketika sistem aktif dan tidak ada objek yang terdeteksi oleh sensor infrared.

4. Flowchart dan Listing Program[Kembali]

  • Flowchart

  • Listing Program

#include "main.h"

/* Function Prototypes */
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 switch_state;
    uint8_t ir_state;

    // Baca input
    switch_state = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0); // Switch
    ir_state     = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1); // IR Sensor

    // KONDISI:
    // Switch ON & IR TIDAK DETEKSI
    if (switch_state == GPIO_PIN_SET && ir_state == GPIO_PIN_RESET)
    {
      // LED ON (PB0)
      HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);

      // BUZZER ON (PB1)
      HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);
    }
    else
    {
      // Semua OFF
      HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
      HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
    }

    HAL_Delay(50);
  }
}

/* CLOCK CONFIG (WOKWI SAFE) */
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.HSIDiv = RCC_HSI_DIV1;
  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);
}

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

  // Aktifkan clock
  __HAL_RCC_GPIOA_CLK_ENABLE();
  __HAL_RCC_GPIOB_CLK_ENABLE();

  // INPUT: PA0 (Switch), PA1 (IR)
  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);

  // OUTPUT: PB0 (LED), PB1 (BUZZER)
  GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;
  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 OFF
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_RESET);
}

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



5. Kondisi[Kembali]

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

6. Video Simulasi[Kembali]

  

Video Simulasi



7. Download File[Kembali]

Download video simulasi [Download]



























Komentar

Postingan populer dari blog ini