Sensor Jarak Ultrasonik HC-SR04 pada Proyek STM32

3 min read 22-08-2024
Sensor Jarak Ultrasonik HC-SR04 pada Proyek STM32

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:

  1. Board STM32 (misalnya STM32F103C8T6)
  2. Sensor HC-SR04
  3. Papan Breadboard
  4. Kabel Jumper
  5. 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.