TP2 Prak Mikro P6K1



   Buzzer, LED RGB, Push Button, dan Sensor Infrared


1. Prosedur[Kembali]

    1. Rangkai rangkaian di Proteus sesuai dengan kondisi percobaan.
    2. Buat program di aplikasi STM32 Cube IDE.
    4. Setelah program selesai, jalankan simulasi rangkaian pada Proteus sesuai kondisi.
    5. Selesai.

2. Hardware dan Diagram Blok[Kembali]

Hardware :

  • Sensor Infrared


  • STM32F103C8 

  • Push button


  • RGB LED


  • Resistor
Diagram Blok



3. Rangkaian Simulasi[Kembali]

  • Rangkaian sebelum di running




  • Rangkaian setelah di running


  • Prinsip Kerja 
        Rangkaian ini bekerja dengan prinsip mikrokontroller dimana sensor infrared & push button digunakan sebagai input, sedangkan RGB LED sebagai output, dan STM32F103C8 sebagai chip ic. STM32F103C8 membaca status masing-masing tombol melalui pin GPIO yang telah dikonfigurasi sebagai input dengan IR sensor dan Push button, sehingga saat IR sensor tidak membaca pergerakan dan tombol tidak ditekan, nilainya tetap terbaca sebagai logika Low, dan saat mendeteksi gerakan atau  ditekan, nilainya berubah menjadi logika High. Ketika Sensor bernilai high LED akan berwarna merah dan buzz akan berbunyi, ketika Push button di tekan maka LED akan berwarna biru dan buzz akan berbunyi , apabila keduanya bernilai high maka led akan berwarna ungu dan buzz akan berbunyi.

           Tombol reset berfungsi untuk mereset nilai nilai pada setiap input menjadi low.

    Dalam kode program, proses ini dilakukan dengan membaca nilai sensor dan tombol menggunakan ir_status == GPIO_PIN_SET,button_status == GPIO_PIN_SET . kondisi sensor mengintrol LED HAL_GPIO_WritePin(GPIOA,RED_Pin,GPIO_PIN_SET)HAL_GPIO_WritePin(GPIOA, BUZZ_Pin, GPIO_PIN_SET); GPIOA, BUZZ_Pin, GPIO_PIN_SET  menandakan LED berwarna merah dan  buzz aktif , button  HAL_GPIO_WritePin(GPIOB, BLUE_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, BUZZ_Pin, GPIO_PIN_SET); LED berwarna biru dan buzz aktif. Looping berjalan terus-menerus untuk mendeteksi perubahan status input secara real-time. 

4. Flowchart dan Listing Program[Kembali]

  • Flowchart







  • Listing Program

#include "main.c" void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while (1) { uint8_t button_status = HAL_GPIO_ReadPin(GPIOB, BUTTON_Pin); uint8_t ir_status = HAL_GPIO_ReadPin(GPIOB, IR_Pin); // Jika IR sensor aktif, nyalakan RGB merah if (ir_status == GPIO_PIN_SET) { HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); } // Jika push button ditekan, nyalakan RGB biru if (button_status == GPIO_PIN_SET) { HAL_GPIO_WritePin(GPIOB, BLUE_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); } HAL_Delay(100); } } 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; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = 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_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); HAL_GPIO_WritePin(GPIOA, RED_Pin | BLUE_Pin | BUZZER_Pin, GPIO_PIN_RESET); GPIO_InitStruct.Pin = RED_Pin | BLUE_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(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.Pin = BUTTON_Pin | IR_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); } void Error_Handler(void) { __disable_irq(); while (1) { } }

5. Kondisi[Kembali]

Percobaan 6 Kondisi 1

Buatlah rangkaian seperti gambar pada percobaan 6 dimana jika IR Sensor mendeteksi RGB Berwarna Merah hidup, Push Button ditekan RGB Berwarna Biru hidup dan jika salah satu input aktif atau keduanya aktif maka buzzer aktif

6. Video Simulasi[Kembali]

     





7. Download File[Kembali]

HTML [Download]
Rangkaian [Download
Listing Program [Download]
Video Simulasi [Download]  
  











Tidak ada komentar:

Posting Komentar

M4 Praktikum SISDIG

[KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Tujuan 2. Alat dan Bahan 3. Dasar Teori 4. Percobaan Percobaan       --->  ...