Percobaan 8
LED RGB, BUZZER, TOUCH SENSOR & PIR
1. Persiapkan semua alat dan bahan yang diperlukan.
2. Rangkai semua komponen pada breadboard yang telah disediakan.
3. Download stlink pada laptop, lalu masukkan listing program ke aplikasi STM32 CubeIDE.
4. Rangkaian dihubungkan ke laptop dengan kabel stlink dan dirunning.
5. Amati hasilnya, apakah output sesuai dengan program yang diinputkan.
6. Selesai.
.
2. Hardware dan Diagram Blok[Kembali]
Hardware:
1. Mikrokontroler STM32F103C8

2. Buzzer
3. Touch Sensor

4. LED RGB

5. PIR
6. Resistor
Resistor bekerja berdasarkan Hukum Ohm:
V = Tegangan (Volt)
-
I = Arus listrik (Ampere)
-
R = Resistansi (Ohm)
3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]
Rangkaian Percobaan:
Prinsip Kerja Rangkaian:
Pada dasarnya, sistem ini
bekerja dengan dua sensor utama yang memberikan sinyal digital ke STM32, yang
kemudian memprosesnya dan mengaktifkan keluaran sesuai dengan kondisi yang
telah ditentukan dalam program. Berikut adalah cara kerja setiap komponen dalam
sistem ini:
- Sensor PIR (Passive Infrared Sensor)
Sensor PIR berfungsi untuk mendeteksi keberadaan objek berdasarkan pancaran inframerah yang dihasilkan oleh tubuh manusia atau benda dengan suhu tertentu. Sensor ini memiliki tiga pin utama, yaitu VCC (5V), GND, dan OUT. Saat sensor tidak mendeteksi pergerakan, outputnya dalam kondisi LOW (0), dan ketika mendeteksi pergerakan, output berubah menjadi HIGH (1). Pin output sensor PIR ini dihubungkan ke GPIOB dari STM32F103C8T6 untuk dibaca dalam program. - Sensor Sentuh (Touch Sensor)
Sensor sentuh yang digunakan adalah sensor kapasitif yang bekerja dengan mendeteksi perubahan kapasitansi saat jari manusia menyentuh permukaannya. Sensor ini juga memiliki tiga pin utama, yaitu VCC (5V), GND, dan OUT. Ketika sensor tidak disentuh, outputnya dalam kondisi LOW (0), dan saat disentuh, output berubah menjadi HIGH (1). Pin output sensor sentuh ini dihubungkan ke GPIOB STM32 untuk diproses dalam kode program. - STM32F103C8T6 sebagai Mikrokontroler
Mikrokontroler ini bertindak sebagai otak sistem, yang menerima sinyal dari sensor PIR dan sensor sentuh, kemudian memproses data tersebut untuk mengontrol LED RGB dan buzzer. Komunikasi antara sensor dan STM32 terjadi melalui port GPIO, di mana sensor PIR dan sensor sentuh terhubung ke pin GPIOB, sedangkan LED RGB dan buzzer dihubungkan ke pin GPIOA. - LED RGB sebagai Indikator Visual
LED RGB dalam rangkaian ini digunakan sebagai indikator yang akan menyala dengan warna berbeda tergantung pada kondisi sensor. Ada dua warna yang digunakan:
Merah (RED) untuk PIR Sensor: Jika sensor PIR mendeteksi gerakan, LED merah
akan menyala.
Hijau (GREEN) untuk Touch Sensor: Jika sensor sentuh aktif, LED hijau akan
menyala.
Jingga (ORANGE) jika kedua sensor dalam keadaan aktif maka luaran LED akan menjadi gabungan warna merah dan hijau
LED RGB dikendalikan oleh STM32 dengan mengatur kondisi GPIOA sebagai output
untuk menyalakan warna LED yang sesuai.
- Buzzer sebagai Indikator Suara
Selain LED, sistem ini juga dilengkapi dengan buzzer sebagai indikator suara. Ketika sensor PIR atau sensor sentuh aktif, buzzer akan menyala bersamaan dengan LED yang sesuai. Hal ini memberikan efek peringatan baik secara visual maupun auditori.
Prinsip Kerja Program:
Kode program yang
digunakan ditulis dalam bahasa C menggunakan HAL (Hardware Abstraction
Layer) dari STM32CubeIDE. Program ini mengatur bagaimana STM32 membaca
sensor dan mengontrol output LED dan buzzer.
- Inisialisasi Perangkat Keras
Pada bagian awal kode, terdapat fungsi MX_GPIO_Init() yang bertanggung jawab untuk menginisialisasi pin GPIO yang digunakan. Dalam fungsi ini, pin GPIOA diatur sebagai output untuk mengontrol LED dan buzzer, sedangkan pin GPIOB diatur sebagai input untuk membaca sensor PIR dan sensor sentuh. - Konfigurasi Clock Sistem
Fungsi SystemClock_Config() digunakan untuk mengatur sumber clock dari mikrokontroler. Dalam program ini, clock utama diset menggunakan HSI (High-Speed Internal Oscillator) sebagai sumber utama dengan konfigurasi pembagi clock yang memungkinkan mikrokontroler berjalan dengan frekuensi yang stabil. - Loop Utama dalam Program
Setelah inisialisasi selesai, program masuk ke dalam loop utama (while(1)), yang terus berjalan tanpa henti untuk membaca input dari sensor dan mengontrol output berdasarkan kondisi sensor.
Membaca Status Sensor
Program membaca status sensor dengan menggunakan fungsi HAL_GPIO_ReadPin(GPIOB,
PIR_Pin) untuk sensor PIR dan HAL_GPIO_ReadPin(GPIOB, TOUCH_Pin) untuk sensor
sentuh. Jika nilai yang dibaca adalah HIGH (1), berarti sensor aktif,
sedangkan LOW (0) berarti sensor tidak aktif.
Mengatur Output LED dan Buzzer
Setelah membaca status sensor, program mengatur kondisi LED dan buzzer sesuai
dengan hasil pembacaan.
- Jika sensor PIR aktif (HIGH), LED
merah menyala dan buzzer berbunyi.
- Jika sensor sentuh aktif (HIGH), LED
hijau menyala dan buzzer berbunyi.
- Jika tidak ada sensor yang aktif, maka
semua output (LED dan buzzer) dimatikan untuk menghemat daya.
Delay untuk Stabilisasi Sensor
Program menggunakan HAL_Delay(100) di dalam loop untuk memberikan jeda selama
100 milidetik guna menghindari pembacaan sensor yang terlalu cepat, yang bisa
menyebabkan fluktuasi atau noise dalam deteksi sensor.
4. Flowchart dan Listing Program[Kembali]
Flowchart:
Listing Program:
Tidak ada komentar:
Posting Komentar