Pendahuluan
Dalam dunia elektronika, sensor jarak menjadi salah satu perangkat penting yang digunakan dalam berbagai aplikasi, mulai dari robotika hingga otomasi rumah. Salah satu sensor jarak yang populer dan banyak digunakan adalah sensor jarak ultrasonik HC-SR04. Pada artikel ini, kita akan membahas bagaimana cara menggunakan sensor HC-SR04 dalam proyek berbasis STM32.
Apa itu Sensor Ultrasonik HC-SR04?
Sensor HC-SR04 adalah sensor ultrasonik yang dirancang untuk mengukur jarak. Sensor ini bekerja dengan cara mengirimkan gelombang suara ultrasonik melalui pemancar (transmitter) dan kemudian menerima gelombang suara yang dipantulkan kembali dengan menggunakan penerima (receiver). Dengan menghitung waktu antara pengiriman dan penerimaan gelombang suara, sensor ini dapat menentukan jarak objek yang terdeteksi.
Spesifikasi HC-SR04:
- Tegangan Operasi: 5V
- Arus Konsumsi: 15mA
- Frekuensi Operasi: 40kHz
- Jarak Deteksi: 2cm - 4m
- Akurasi: ±3mm
Komponen yang Dibutuhkan
Untuk menggunakan sensor HC-SR04 dengan STM32, Anda akan membutuhkan beberapa komponen, antara lain:
- Board STM32 (misalnya STM32F103C8T6)
- Sensor HC-SR04
- Papan Breadboard
- Kabel Jumper
- Koneksi USB untuk pemrograman STM32
Skema Koneksi
Sebelum melanjutkan ke pemrograman, penting untuk memahami skema koneksi antara STM32 dan HC-SR04. Berikut adalah cara panel koneksinya:
- VCC (sensor) ke 5V (STM32)
- Trig (sensor) ke salah satu pin digital STM32 (misalnya PA5)
- Echo (sensor) ke pin digital STM32 lainnya (misalnya PA6)
- GND (sensor) ke GND (STM32)
Diagram Koneksi
HC-SR04 STM32
+---------+ +---------+
| VCC |----| 5V |
| Trig |----| PA5 |
| Echo |----| PA6 |
| GND |----| GND |
+---------+ +---------+
Pemrograman STM32
Setelah melakukan koneksi fisik, langkah selanjutnya adalah pemrograman STM32 untuk membaca jarak dari sensor HC-SR04. Dalam hal ini, kita akan menggunakan PlatformIO atau STM32CubeIDE sebagai lingkup pengembangan.
Contoh Kode
Di sini kita akan menggunakan HAL Library untuk STM32. Berikut adalah contoh kode program untuk membaca jarak dari sensor HC-SR04.
#include "stm32f1xx_hal.h" // Pastikan untuk menyesuaikan dengan STM32 yang Anda gunakan
#define TRIG_PIN GPIO_PIN_5 // Ganti dengan pin yang digunakan
#define ECHO_PIN GPIO_PIN_6 // Ganti dengan pin yang digunakan
void setup() {
HAL_Init();
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct = {0};
// Inisialisasi pin Trig
GPIO_InitStruct.Pin = TRIG_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);
// Inisialisasi pin Echo
GPIO_InitStruct.Pin = ECHO_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
float readDistance() {
// Mengatur pin Trig HIGH
HAL_GPIO_WritePin(GPIOA, TRIG_PIN, GPIO_PIN_SET);
HAL_Delay(10);
HAL_GPIO_WritePin(GPIOA, TRIG_PIN, GPIO_PIN_RESET);
// Menghitung waktu hingga Echo menerima sinyal
uint32_t startTime = HAL_GetTick();
while (HAL_GPIO_ReadPin(GPIOA, ECHO_PIN) == GPIO_PIN_RESET) {
startTime = HAL_GetTick();
}
uint32_t travelTime = HAL_GetTick() - startTime;
while (HAL_GPIO_ReadPin(GPIOA, ECHO_PIN) == GPIO_PIN_SET);
travelTime = HAL_GetTick() - startTime;
// Menghitung jarak dalam cm
return (travelTime * 0.0343) / 2;
}
int main(void) {
setup();
while (1) {
float distance = readDistance();
// Tampilkan jarak (gunakan metode sesuai dengan perangkat keras Anda)
HAL_Delay(1000); // Delay 1 detik sebelum pengukuran berikutnya
}
}
Menjalankan Proyek
Setelah kode selesai, langkah selanjutnya adalah menguploadnya ke board STM32 Anda. Pastikan untuk menggunakan program upload yang sesuai seperti STM32CubeProgrammer atau fitur upload dari platform IDE yang Anda gunakan.
Kesimpulan
Sensor jarak ultrasonik HC-SR04 adalah alat yang efektif dan efisien untuk mengukur jarak dalam berbagai aplikasi. Dengan menggunakan sensor ini bersama STM32, Anda dapat membuat proyek yang beragam, mulai dari robot penghindar rintangan hingga sistem deteksi kedekatan.
Dengan pemahaman yang baik tentang cara kerja dan penggunaan sensor HC-SR04, Anda dapat mengeksplorasi lebih banyak proyek menarik di bidang elektronika. Sertakan improvisasi dan eksperimen Anda sendiri untuk menciptakan aplikasi yang lebih kompleks dan berguna. Dengan penguasaan terhadap sensor ini, keterampilan dalam dunia elektronik Anda akan semakin berkembang.