Sensor Dekatitas Infra Merah Hemat Biaya untuk Raspberry Pi Menggunakan Pin Digital Hanya
Papan Raspberry Pi berjalan pada prosesor Broadcom BCM2835, yang menawarkan 26 pin input/output umum (GPIO). Sementara pustaka Python seperti RPi.GPIO membuat kontrol pin ini mudah, keterbatasan yang signifikan dibandingkan Arduino adalah ketidakadaan input analog asli. Pin GPIO sepenuhnya digital: pin yang diatur sebagai output hanya dapat menyampaikan 0 V (LOW) atau 3.3 V (HIGH). Saat dikonfigurasi sebagai input, setiap voltase di bawah 0.8 V diinterpretasikan sebagai LOW, dan setiap voltase di atas 1.3 V diperlakukan sebagai HIGH.
Dalam banyak aplikasi dunia nyata—pemantauan suhu, pengukuran jarak, penginderaan intensitas cahaya—sinyal yang mendasarinya secara inheren kontinu. Bergantung pada output “on/off” biner sering kali tidak cukup. Solusi umum adalah menambahkan pengonversi analog-ke-digital eksternal (ADC) seperti MCP3008, TLC549, atau MCP23017, yang berkomunikasi melalui SPI atau I²C. Chip-chip ini murah secara individual, tetapi saat digabungkan dengan sensor komersial, total biaya dapat naik ke $20–$30 dan pemasangan menjadi membosankan—masalah untuk proyek robotika yang memerlukan banyak sensor.
Untungnya, pendekatan sederhana namun efektif ada yang menghilangkan kebutuhan akan ADC eksternal. Dengan mengubah pengukuran analog menjadi sinyal berbasis waktu, pin digital Raspberry Pi dapat secara tidak langsung menyampel data kontinu. Waktu adalah kuantitas analog secara alami, dan teknik ini bergantung pada prinsip pengisian RC (resistor-kapasitor) klasik.
Desain Sensor Dekatitas Infra Merah DIY
Rangkaian menggunakan hanya komponen murah: beberapa LED infra merah, phototransistor, transistor NPN 2N3904, kapasitor keramik 100 nF, dan resistor daya rendah. Nomor bagian yang tepat dapat ditukarkan; kunci adalah mempertahankan karakteristik listrik yang benar.
Catatan komponen kunci: Kapasitor 100 nF dapat berupa kapasitor keramik rendah profil atau kapasitor keramik/film kelas-1 untuk stabilitas optimal.
Pengaturan Hardware
- Daya: Sambungkan kabel +5 V dan GND ke suplai daya eksternal 5 V. Sambungkan GND ke ground Raspberry Pi.
- Penugasan GPIO: Pilih satu pin GPIO (misalnya,
PIN_A) sebagai output pemicu, dan pin lain (misalnya, PIN_B) sebagai input pengukuran.
Prinsip Pengukuran
Ketika PIN_A diarahkan HIGH, LED infra merah menerangi permukaan target. Cahaya yang dipantulkan mengaktifkan phototransistor, yang menghasilkan arus yang proporsional dengan intensitas yang dipantulkan. Arus ini mengisi kapasitor melalui transistor 2N3904. Waktu yang dibutuhkan untuk voltase kapasitor melewati ambang digital Raspberry Pi pada PIN_B berbanding terbalik dengan arus phototransistor, dan oleh karena itu berbanding lurus dengan jarak ke objek yang memantulkan.
Alur Kontrol Python
# 1. Pastikan kapasitor terisi habis GPIO.setup(PIN_B, GPIO.OUT) GPIO.output(PIN_B, 0) time.sleep(0.01) # 10 ms untuk melebihi 200×RC (≈0.00005 s) # 2. Alihkan PIN_B ke mode input GPIO.setup(PIN_B, GPIO.IN) # 3. Pemicu LED IR GPIO.setup(PIN_A, GPIO.OUT) GPIO.output(PIN_A, 1) # 4. Ukur durasi rendah pada PIN_B counter = 0 start_time = time.time() * 1000 # milidetik while GPIO.input(PIN_B) == 0 and counter < 1e4: counter += 1 elapsed = time.time() * 1000 - start_time # elapsed (dalam ms) ≈ k × jarak
Dengan resistor 4.3 kΩ dan kapasitor 100 nF, konstanta waktu RC adalah 0.43 ms. Transistor 2N3904 memperkuat arus phototransistor sekitar 150×, memungkinkan LED menarik sekitar 50 mA masing-masing selama aktivasi. Tunda waktu yang dihasilkan, elapsed, berekskalasi linear dengan jarak, menyediakan konversi analog-ke-waktu sederhana tanpa hardware ADC khusus.
Metode ini menawarkan alternatif yang ringkas dan hemat biaya dibandingkan sensor dekatitas berbasis ADC konvensional, menjadikannya ideal untuk robotika tertanam, proyek hobi, dan demonstrasi pendidikan.