Tugas Pendahuluan 1

                                              [KEMBALI KE MENU SEBELUMNYA]



Tugas Pendahuluan 1 Modul 1
Percobaan 2 Kondisi 9

1. Prosedur
 [Kembali]

  • Rangkai semua komponen 
  • Buat program di website wokwi
  • Jalankan program dan cobakan sesuai kondisi


2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. STM32 NUCLEO-G474RE




2. LED

3. Resistor



4. Push Button

5. Buzzer



6. Slide Switch


BLOK DIAGRAM





3. Rangkaian Simulasi Dan Prinsip Kerja [Kembali]


Rangkaian Simulasi 



Prinsip Kerja :

Rangkaian ini bekerja dengan memanfaatkan mikrokontroler STM32 sebagai pusat pengendali sistem. Sistem menerima sinyal dari push button dan switch sebagai input, kemudian memproses sinyal tersebut sesuai dengan program yang telah ditanamkan pada mikrokontroler. Hasil pemrosesan tersebut selanjutnya digunakan untuk mengendalikan LED dan buzzer sebagai perangkat output.

Pada saat catu daya (VCC) diberikan ke rangkaian, mikrokontroler akan melakukan proses inisialisasi sistem, seperti pengaturan clock, konfigurasi port input/output (GPIO), dan persiapan perangkat lain yang digunakan. Setelah inisialisasi selesai, sistem akan masuk ke kondisi loop utama dan mulai memantau kondisi input secara terus-menerus.

Ketika switch berada pada posisi ON, rangkaian menjadi aktif dan mikrokontroler siap menerima perintah dari push button. Saat push button ditekan, sinyal logika akan berubah (misalnya dari LOW menjadi HIGH), sehingga mikrokontroler mendeteksi adanya perintah. Berdasarkan logika program, mikrokontroler kemudian mengirimkan sinyal keluaran melalui pin output.

Sinyal output tersebut akan mengaktifkan LED sehingga LED menyala sebagai indikator visual, dan pada saat yang sama buzzer akan berbunyi sebagai indikator suara. Ketika tombol dilepas, sinyal input kembali ke kondisi awal, sehingga mikrokontroler menghentikan sinyal output dan LED serta buzzer akan mati kembali.

Apabila switch berada pada posisi OFF, maka rangkaian tidak akan merespons penekanan tombol, sehingga semua output tetap dalam kondisi mati. Dengan demikian, switch berfungsi sebagai pengendali utama (enable/disable) sistem.


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();
 
  uint8_t prev_switch_state = GPIO_PIN_RESET;  

  while (1)
  {
    uint8_t current_switch_state = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0);
   

    if (prev_switch_state == GPIO_PIN_RESET && current_switch_state == GPIO_PIN_SET)
    {

      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_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);    
      HAL_Delay(500);
     
      HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, 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);  
      HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);  
      HAL_Delay(500);
     
      HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, 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_SET);    
      HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);  
      HAL_Delay(500);
     
      HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET);  
    }
   
    prev_switch_state = current_switch_state;
   
    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_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_PIN_3;
  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"

// Function
void Error_Handler(void);

// ===== INPUT =====
#define BUTTON_SWITCH_Pin        GPIO_PIN_0
#define BUTTON_SWITCH_GPIO_Port  GPIOA

// ===== OUTPUT RGB LED + BUZZER =====
#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 LED_BLUE_Pin             GPIO_PIN_2
#define LED_BLUE_GPIO_Port       GPIOB

#define BUZZER_Pin               GPIO_PIN_3
#define BUZZER_GPIO_Port         GPIOB

#ifdef __cplusplus
}
#endif

#endif /* __MAIN_H */


5. Kondisi [Kembali]

Buatlah rangkaian seperti pada gambar percobaan 2 dengan kondisi ketika Switch baru saja berubah dari OFF ke ON, seluruh warna LED RGB (Merah, Hijau, Biru) menyala bergantian selama 0,5 detik dan Buzzer berbunyi pendek 2 kali ("Beep-Beep").


6. Video Simulasi [Kembali]




7. Link Download [Kembali]











Tidak ada komentar:

Posting Komentar

                                            BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA 2024   Nama : Muhammad Fadhil Dwi Kesuma NIM : 2...