
Sensor HB100 merupakan perangkat elektronika yang dapat digunakan untuk mendeteksi suatu gerakan atau benda bergerak baik yang ditimbulkan manusia maupun bukan. Selain itu, sensor ini juga dapat digunakan untuk mendeteksi percepatan dari gerakan tersebut. Sensor ini bekerja sebagai detektor radar Doppler Microwave dengan frekuensi 10.525 GHz standar.
Untuk mengakses sensor HB100 ini dengan mikrokontroler biasanya digunakan rangkaian amplifier sebagai penguat frekuensi dari output yang dihasilkan sensor. Amplifier tersebut dimanfaatkan untuk memperkuat pergeseran efek Doppler sampai ke nilai dimana mikrokontroler dapat memproses nilai sinyal tersebut.
Cara Kerja Sensor HB100

Sensor HB100 ini mengeluarkan sinyal gelombang mikro (microwave) dengan frekuensi tertentu, kemudian untuk mendeteksi adanya pergerakan dan percepatan, sensor ini menggunakan efek Doppler Shift dari gelombang mikro yang dipancarkan.
Cara kerja efek Doppler yaitu, ketika suatu gelombang radio dipancarkan dan bertemu dengan objek yang tetap (tidak bergerak), maka frekuensi gelombang pantul dan frekuensi pancar gelombang akan bernilai sama. Sedangkan, ketika gelombang mengenai objek yang bergerak atau mendekati sensor, maka gelombang pantul akan berubah atau dimampatkan, yang menyebabkan adanya perubahan frekuensi gelombang pantul dengan gelombang pancar. Perubahan frekuensi tersebutlah yang dijadikan output sensor ini.
Besarnya frekuensi Shift Doppler yang dihasilkan sebanding dengan pantulan energi yang ditransmisikan dalam kisaran mikroVolt(µV). Oleh karena itu, diperlukan rangkaian amplifier untuk menguatkan frekuensi output yang dihubungkan ke pin IF, sehingga sinyal output sensor dapat digeser sampai ke nilai dimana mikrokontroler dapat memproses nilai sinyal tersebut.
Pinout & Spesifikasi Sensor HB100

.
Rangkaian Amplifier Untuk Mengakses Sensor HB100

.
Contoh Rangkaian Sensor HB100 dengan Arduino Uno

Percobaan 72: Akses Pengukur Pergerakan & Kecepatan Dengan Sensor HB 100


- Hubungkan O dengan pin D8 ATMEGA 328
- Hubungkan board ATMEGA 328 dengan Komputer menggunakan kabel USB.
- Bukalah IDE Arduino, kemudian ketikkan kode program/sketch atau buka file hb100_1 (untuk ditampilkan pada serial monitor) atau hb100_1_LCD (untuk ditampilkan pada LCD)
- Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
- Upload program ke arduino dengan cara, pilih File > Upload to I/O board, atau tekan tombol tanda panah pada jendela IDE arduino.
Code hb100_1 (untuk ditampilkan pada serial monitor):
// Frequency input pin: 8 for ARDUINO UNO. Connect the IF pin from the preamp
// Frequency input pin: 49 for ARDUINO MEGA. Connect the IF pin from the preamp
#include <FreqMeasure.h>
void setup() {
Serial.begin(57600);
FreqMeasure.begin();
}
double sum=0;
int count=0;
void loop() {
if (FreqMeasure.available()) {
// average 30 readings together
sum = sum + FreqMeasure.read();
count = count + 1;
if (count > 30) {
float frequency = FreqMeasure.countToFrequency(sum / count);
float spd = frequency / 19.49; //conversion from frequency to kilometers per hour
//to improve speed, we update only the bottom row of the LCD
Serial.print("F= ");
Serial.print(frequency);
Serial.print("Hz ");
Serial.print("SPD= ");
Serial.print(spd);
Serial.println("km/h");
sum = 0;
count = 0;
}
}
}
.
Hasil Pada Serial Monitor:

.
Video Demo:
Code hb100_1_LCD (untuk ditampilkan pada LCD):
// Frequency input pin: 8 for ARDUINO UNO. Connect the IF pin from the preamp
// Frequency input pin: 49 for ARDUINO MEGA. Connect the IF pin from the preamp
#include <FreqMeasure.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
//Serial.begin(57600);
FreqMeasure.begin();
lcd.init();
lcd.clear();
lcd.backlight();
}
double sum=0;
int count=0;
void loop() {
if (FreqMeasure.available()) {
// average 30 readings together
sum = sum + FreqMeasure.read();
count = count + 1;
if (count > 30) {
float frequency = FreqMeasure.countToFrequency(sum / count);
float spd = frequency / 19.49; //conversion from frequency to kilometers per hour
//to improve speed, we update only the bottom row of the LCD
lcd.clear();
lcd.setCursor(0,0); //Set cursor to character 2 on line 0
lcd.print("F=");
lcd.print(frequency);
lcd.print("Hz ");
lcd.setCursor(0,1); //Set cursor to character 2 on line 0
lcd.print("V=");
lcd.print(spd);
lcd.print("km/h");
sum = 0;
count = 0;
}
}
}