PERCOBAAN 8 KONDISI 1




Tugas Pendahuluan 2 Modul 1
(Percobaan 8 Kondisi 1)

1. Prosedur
[Kembali]

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Buat program untuk mikrokontroler STM32F103C8 di software STM32 CubeIDE.
3. Compile program dalam format hex, lalu upload ke dalam mikrokontroler.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.
5. Selesai.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

a) Mikrokontroler STM32F103C8
STM32F103C8 board – Microscale





2. Infrared Sensor

Infrared Sensor Module



3. Touch Sensor

Touch Sensor Module — SunFounder Ultimate Sensor Kit documentation




4. Power Supply

 
5. RGB LED
Jual LED RGB 4 PIN WARNA MERAH HIJAU BIRU 5mm ( ARDUINO ) - Common Cathode  - Jakarta Barat - Ardushop-id | Tokopedia









3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi Sebelum dirunning:




Rangkaian Simulasi Setelah dirunning:
 







Prinsip Kerja : 
    Rangkaian ini menggunakan mikrokontroler STM32F103C8, yang mana terdapat 2 input yaitu sensor PIR dan sensor touch, dengan outputnya RGB LED dan buzzer. Sensor PIR sebagai input dihubungkan ke pin PB10, sensor touch terhubung ke pin PB7, untuk outputnya yaitu RGB LED, dimana kaki red terhubung ke pin PA6, kaki green terhubung ke pin PA7, dan kaki blue terhubung ke pin PB0 sedangkan buzzer terhubung ke pin PA8. 
    Setelah itu lakukan konfigurasi di software STM32 CubeIDE, yang dimulai dari membuka projek percobaan yang telah dikerjakan. Maka pada tampilan pin out dan konfigurasi dari mikrokontrolernya, berdasarkan rangkaian proteus yang telah dibuat, inputannya yaitu PIR yang terhubung ke pin PB10, touch sensor terhubung ke pin PB7, kemudian outputnya yaitu kaki red terhubung ke pin PA6, kaki green terhubung ke pin PA7, dan kaki blue terhubung ke pin PB0. Selanjutnya dilakukan konfigurasi pada debug dengan memilih serial wire, kemudian pada bagian RCC dipilih crystal / ceramic resonator.
  Ketika konfigurasinya telah selesai, save project dan kemudian akan ditampilkan halaman pemrograman. Disini sudah langsung tersedia beberapa program karena konfigurasi yang telah dilakukan sebelumnya. Untuk pemrogramannya dimulai dari #include “main.h” yang merupakan fungsi utamanya. Yang perlu ditambahkan disini adalah codingan pada bagian loopnya, yang terletak di dalam kurung kurawal pada bagian while. Program ini menggunakan fungsi If Else, dimana jika sensor infrared tidak mendeteksi adanya objek dan sensor touch mendeteksi sentuhan, maka output yang dibaca mikrokontroler adalah menghidupkan lampu hijau dan biru pada RGB LED, sedangkan lampu berwarna merah dalam kondisi mati atau reset. Untuk kondisi selain itu, perintah yang dibaca mikrokontroler adalah menjadikan seluruh warna RGB LED dalam kondisi reset atau mati.
    

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(); while (1) { uint8_t pir_status = HAL_GPIO_ReadPin(GPIOB, PIR_Pin); uint8_t touch_status = HAL_GPIO_ReadPin(GPIOB, TOUCH_Pin); // Matikan semua LED dan buzzer terlebih dahulu HAL_GPIO_WritePin(GPIOA, RED_Pin | GREEN_Pin | BUZZER_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, BLUE_Pin, GPIO_PIN_RESET); if (pir_status == GPIO_PIN_SET && touch_status == GPIO_PIN_RESET) { HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET); // LED merah menyala HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_RESET); // Buzzer mati } else if (touch_status == GPIO_PIN_SET && pir_status == GPIO_PIN_RESET) { HAL_GPIO_WritePin(GPIOB, BLUE_Pin, GPIO_PIN_SET); // LED biru menyala HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); // Buzzer aktif } else if (pir_status == GPIO_PIN_SET && touch_status == GPIO_PIN_SET) { HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET); // LED merah menyala HAL_GPIO_WritePin(GPIOB, BLUE_Pin, GPIO_PIN_SET); // LED biru menyala HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); // Buzzer aktif } 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 | GREEN_Pin | BUZZER_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, BLUE_Pin, GPIO_PIN_RESET); // Konfigurasi output untuk LED merah, hijau, dan buzzer di GPIOA GPIO_InitStruct.Pin = RED_Pin | GREEN_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); // Konfigurasi output untuk LED biru di GPIOB GPIO_InitStruct.Pin = BLUE_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); // Konfigurasi input untuk sensor PIR dan touch di GPIOB GPIO_InitStruct.Pin = PIR_Pin | TOUCH_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) { } } #ifdef USE_FULL_ASSERT void assert_failed(uint8_t *file, uint32_t line) { } #endif


5. Kondisi [Kembali]

Percobaan 8 Kondisi 1
Buatlah rangkaian seperti gambar pada percobaan 8 dengan kondisi ketika PIR mendeteksi gerakan maka LED RGB menampilkan warna merah serta buzzer mati dan ketika Touch mendeteksi sentuhan LED RGB akan menampilkan warna biru serta buzzer aktif

6. Video Simulasi [Kembali]






7. Download File [Kembali]

Download File Rangkaian [Download]
Download Listing Program [Download]
Datasheet Mikrokontroler STM32F103C8 [Download]
Datasheet Sensor PIR [Download]
Datasheet Sensor Touch [Download]
Datasheet RGB LED [Download]








Komentar

Postingan populer dari blog ini