Laporan Akhir Modul 3 Percobaan 1 Praktikum Mikroprosesor dan Mikrokontroler
a. Tentukan percobaan dan kondisi yang akan dilakukan (Kondisi 6)
b. Siapakan alat dan bahan yang akan digunakan
c. Rangkai Rangkaian pada Board sesuai gambar percobaan 1 dengan komponen 4 push button, 2 Mikrokontroler STM32F103C8, 4 Resistor 220 Ohm, 4 LED hubungkan menggunakan jumper.
d. Buatlah program pada software STM32Cube IDE dengan konfigurasi Pin Input dan Output berdasarkan pada Pin GPIO STM32 yang telah dirangkai di simulasi sebelumnya.
e. Kemudian, buatlah program untuk menghasilkan Output LED sesuai kondisi yang telah ditentukan.
f. Hubungkan Laptop dengan STM32F103C8 dengan STlink
C. Blok Diagram
B. Rangkaian Percobaan
Pertama, sistem memulai dengan inisialisasi HAL (Hardware Abstraction Layer) untuk mengatur semua fungsi dasar dari perangkat keras. Kemudian, sistem clock dikonfigurasi agar semua modul bekerja secara sinkron sesuai frekuensi yang diinginkan. Selanjutnya, GPIO diinisialisasi untuk mengatur pin yang digunakan dalam komunikasi dan kontrol perangkat.
Setelah itu, salah satu pin dikonfigurasi sebagai input untuk membaca status tombol, dan pin lain dikonfigurasi sebagai output untuk mengontrol LED. Di dalam loop utama, mikrokontroler terus membaca status tombol. Jika tombol ditekan, maka LED akan dinyalakan dan mikrokontroler dapat mengirimkan sinyal melalui UART ke mikrokontroler kedua, menandakan bahwa tombol ditekan. Jika tombol tidak ditekan, LED akan dimatikan dan mikrokontroler juga dapat mengirimkan sinyal status tersebut ke mikrokontroler kedua.
Setiap pembacaan tombol dan pengiriman sinyal melalui UART disertai dengan delay selama 100 ms untuk menghindari bouncing tombol dan mengatur timing komunikasi. Mikrokontroler penerima yang juga terhubung melalui UART akan membaca data dari UART, kemudian mengontrol LED-nya sendiri sesuai dengan data yang diterima, misalnya jika menerima sinyal tombol ditekan maka LED menyala, dan sebaliknya. Dengan demikian, kedua mikrokontroler berkomunikasi secara serial menggunakan protokol UART untuk menyinkronkan status tombol dan LED di kedua sistem.
} } static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4, GPIO_PIN_RESET); GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4; 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); } void Error_Handler(void) { __disable_irq(); while (1) { } }
Komentar
Posting Komentar