LAPORAN AKHIR 1 MODUL 1
PERCOBAAN 8

1. Prosedur
[Kembali]

1. Rangkai semua komponen pada breadboard yang terhubung ke mikrokontroler Raspberry Pi Pico.
2. Buat program untuk mikrokontroler Raspberry Pi Pico di software Thonny.
3. Inputkan program ke dalam mikrokontroler melalui USB.
4. Setelah program diinputkan, uji rangkaian yang telah dirangkai sesuai dengan output yang ditentukan.
5. Selesai.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Mikrokontroler STM32F103C8












2. Infrared Sensor







3. Touch Sensor



4. Power Supply




5. RGB LED



6. Buzzer






3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi 






Prinsip Kerja : 

    Rangkaian ini terdiri dari sensor inframerah untuk mendeteksi gerakan, sensor sentuh untuk mendeteksi sentuhan, mikrokontroler STM32F103C8 sebagai pengendali utama, dan LED RGB untuk menampilkan hasil output. Sensor inframerah bekerja dengan mendeteksi keberadaan objek atau gerakan, dan akan memberikan sinyal HIGH pada pin output-nya saat gerakan terdeteksi. Sementara itu, sensor sentuh mendeteksi sentuhan pada permukaannya, dan akan memberikan sinyal HIGH pada pin output-nya saat disentuh. Kedua sensor ini terhubung ke mikrokontroler yang membaca statusnya. 

    Langkah berikutnya adalah melakukan konfigurasi di software STM32 CubeIDE dengan membuka proyek percobaan yang telah dikerjakan sebelumnya. Pada tampilan Pinout & Configuration, dilakukan pengaturan pin mikrokontroler sesuai dengan rangkaian Proteus yang telah dibuat. Kemudian, konfigurasi pada bagian debug diatur ke mode Serial Wire, dan pada bagian RCC dipilih opsi Crystal/Ceramic Resonator. Setelah seluruh konfigurasi selesai, proyek disimpan, dan halaman pemrograman akan terbuka secara otomatis. Halaman ini sudah berisi kode dasar yang dihasilkan dari konfigurasi sebelumnya. Pemrograman dimulai dengan menyertakan #include "main.h", yang merupakan fungsi utama proyek. Kode tambahan perlu ditulis pada bagian loop, tepatnya di dalam kurung kurawal pada fungsi while. Program menggunakan logika if-else untuk membaca kondisi sensor. Jika sensor inframerah mendeteksi keberadaan objek dan sensor sentuh mendeteksi sentuhan, maka mikrokontroler akan mengaktifkan LED RGB sehingga warna merah, hijau, dan biru menyala bersamaan. Setelah program selesai ditulis, langkah selanjutnya adalah mengompilasi kode menjadi file berformat .hex dan melakukan proses build untuk menghasilkan file tersebut. Terakhir, file .hex diunggah ke mikrokontroler dalam simulasi Proteus untuk menjalankan rangkaian.

    Setelah rangkaiannya dijalankan, jika kedua sensor memberikan sinyal HIGH secara bersamaan, mikrokontroler akan mengaktifkan pin output yang terhubung ke LED RGB, sehingga LED berwarna cyan. Jika sensor IR mendeteksi adanya objek, maka LED akan menhasilkan warna kuning. Kemudian jika sensor Touch mendeteksi adanya objek maka LED akan menghasilkan warna merah. Catu daya diberikan dari sumber tegangan +5V yang stabil, dengan resistor pembatas arus digunakan untuk melindungi LED dari kerusakan akibat arus berlebih. Dengan demikian, LED RGB hanya akan menampilkan warna putih jika sensor inframerah mendeteksi gerakan dan sensor sentuh mendeteksi sentuhan secara bersamaan dan jika salah satu sensor mendeteksi objek maka buzzer akan menyala.

4. Flowchart dan Listing Program [Kembali]

Flowchart :
Mengupload: 44727 dari 44727 byte diupload.



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 output terlebih dahulu HAL_GPIO_WritePin(GPIOA, GREEN_Pin | RED_Pin | BUZZER_Pin, GPIO_PIN_RESET); if (pir_status == GPIO_PIN_SET) { HAL_GPIO_WritePin(GPIOA, RED_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); HAL_Delay(500); // Tambahkan delay agar buzzer berbunyi cukup lama } else if (touch_status == GPIO_PIN_SET) { HAL_GPIO_WritePin(GPIOA, GREEN_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_SET); HAL_Delay(500); } else { HAL_GPIO_WritePin(GPIOA, BUZZER_Pin, GPIO_PIN_RESET); } HAL_Delay(100); // Debounce sederhana } } 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(); // Konfigurasi output: LED dan Buzzer HAL_GPIO_WritePin(GPIOA, RED_Pin | GREEN_Pin | BUZZER_Pin, GPIO_PIN_RESET); 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 input: PIR dan Touch Sensor 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. Video Demo [Kembali]




6. Analisa [Kembali]














7. Download File [Kembali]

Download HTML [Download]
Download Video Demo [Download]
Download Listing Program [Download
Download Datasheet Mikrokontroler  STM32F103C8 [Download
Download Datasheet Push Button [Download]
Download Datasheet LED [Download]
Download Datasheet Resistor [Download]