Skip to content

Membuat Speedometer Sepeda Digital: Ukur Kecepatan & Jarak Akurat

Pantau Performa Bersepeda Anda dengan Akurasi Tinggi

Bagi para pehobi sepeda, data adalah segalanya. Mengetahui seberapa cepat Anda melaju dan seberapa jauh jarak yang telah ditempuh dapat membantu Anda mencapai target kebugaran. Di tahun 2026, meskipun banyak aplikasi smartphone, speedometer fisik yang terpasang di stang sepeda tetap menjadi pilihan utama karena daya tahan baterai dan keterbacaan yang lebih baik.

Dalam tutorial ini, kita akan merakit Digital Speedometer menggunakan sensor magnetik (Reed Switch) yang sangat efisien dan akurat.

Komponen yang Diperlukan

  • Arduino Nano (Kecil, ringan, dan hemat daya).
  • Sensor Reed Switch atau Hall Effect Sensor.
  • Magnet Kecil (Ditempelkan pada jari-jari roda).
  • Layar OLED 0.96 inch (Untuk tampilan data yang tajam).
  • Baterai Li-ion 3.7V + Modul Charger TP4056.
  • Push Button (Untuk reset jarak/timer).

Cara Kerja Sistem

Sistem ini bekerja berdasarkan prinsip hitung rotasi. Setiap kali magnet yang terpasang di jari-jari melewati sensor yang terpasang di garpu (fork) sepeda, sensor akan mengirimkan sinyal ke Arduino. Dengan mengetahui keliling roda sepeda, Arduino dapat menghitung:

  1. Kecepatan: Berdasarkan waktu antar denyut sensor.
  2. Jarak: Jumlah total putaran dikalikan keliling roda.
  3. Waktu: Durasi sejak roda mulai berputar.

Skema Perkabelan

  1. Sensor Reed Switch: Satu kaki ke GND, kaki lainnya ke Pin D2 Arduino (menggunakan internal pull-up).
  2. Layar OLED: VCC ke 5V, GND ke GND, SDA ke A4, SCL ke A5.
  3. Tombol Reset: Hubungkan ke Pin D3 dan GND.

Kode Program (Arduino IDE)

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET -1
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);

volatile unsigned int pulses = 0;
float wheelCircumference = 2.1; // Keliling roda dalam meter (misal roda 700c)
float speed = 0, distance = 0;
unsigned long lastMillis = 0;

void IRAM_ATTR countPulse() {
  pulses++;
}

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  pinMode(2, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(2), countPulse, FALLING);
}

void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis - lastMillis >= 1000) {
    // Hitung kecepatan (sederhana)
    speed = (pulses * wheelCircumference * 3.6); // Konversi ke km/jam
    distance += (pulses * wheelCircumference / 1000.0); // km

    pulses = 0;
    lastMillis = currentMillis;
    updateDisplay();
  }
}

void updateDisplay() {
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.print("Speed: "); display.print(speed); display.print(" km/h");
  display.setCursor(0,20);
  display.print("Dist : "); display.print(distance); display.print(" km");
  display.display();
}

Langkah Pemasangan Mekanik

  1. Magnet: Tempelkan magnet pada salah satu jari-jari roda depan menggunakan pengikat kabel (cable ties) atau lem kuat.
  2. Sensor: Pasang Reed Switch pada garpu sepeda. Pastikan jarak antara magnet dan sensor sangat dekat (sekitar 3-5mm) saat roda berputar.
  3. Casing: Gunakan wadah plastik kecil yang tahan air atau hasil cetakan 3D print untuk melindungi komponen dari debu dan hujan ringan.

Kesimpulan

Membuat speedometer sendiri memberikan Anda keleluasaan untuk menyesuaikan tampilan dan fitur, seperti menambahkan GPS atau koneksi Bluetooth ke ponsel di kemudian hari. Proyek ini tidak hanya fungsional tetapi juga memberikan kepuasan tersendiri saat melihat data perjalanan Anda muncul di layar rakitan sendiri.