Search Code

Kode Arduino dan Video: Sensor Jarak Ultrasonik HC-SR04 dengan Tampilan TP1637

Kode Arduino dan Video: Sensor Jarak Ultrasonik HC-SR04 dengan Tampilan TP1637

Dalam tutorial ini, kita akan mempelajari cara menggunakan sensor jarak ultrasonik HC-SR04 bersama dengan layar TP1637 untuk menampilkan pengukuran jarak secara visual. Proyek ini sangat cocok untuk aplikasi seperti mobil robot dan tugas penginderaan jarak lainnya. Di akhir panduan ini, Anda akan memiliki pengaturan yang berfungsi yang mengukur jarak dan menampilkannya di layar, sehingga memudahkan pemantauan pembacaan sensor.

How HC-SR04 ulrasonic sensor work

Kita akan menggunakan dua komponen utama: sensor ultrasonik HC-SR04 dan modul layar TP1637. Sensor HC-SR04 memancarkan gelombang ultrasonik dan mengukur waktu yang dibutuhkan untuk memantul kembali, menghitung jarak berdasarkan waktu tersebut. Layar TP1637 menggunakan komunikasi I2C untuk menampilkan jarak yang diukur dalam format yang mudah digunakan. Untuk kejelasan tambahan, Anda dapat merujuk ke video pada menit 1:30 untuk penjelasan visual tentang komponen-komponen tersebut.

Penjelasan Perangkat Keras

Sensor ultrasonik HC-SR04 memiliki empat pin: VCC, Trig, Echo, dan GND. Pin VCC terhubung ke catu daya, sedangkan pin GND terhubung ke ground. Pin Trig digunakan untuk memicu pulsa ultrasonik, dan pin Echo menerima pulsa yang dipantulkan. Sensor ini dapat mengukur jarak mulai dari 2 cm hingga 400 cm.

Modul layar TP1637 terdiri dari empat pin juga, yang digunakan untuk komunikasi I2C. Pin-pin ini meliputi VCC, GND, Clock (CLK), dan Data (DIO). Dalam proyek ini, pin CLK terhubung ke pin digital 2 pada Arduino, dan pin DIO terhubung ke pin digital 3. Layar ini memudahkan visualisasi pembacaan jarak dari sensor ultrasonik.

Detail Datasheet

ProdusenTM1637
Nomor bagianTM1637
Tegangan logika/IO3,3 V hingga 5,5 V
Tegangan suplai5 V
Arus keluaran (per saluran)~25 mA
Arus puncak (per saluran)~50 mA
Panduan frekuensi PWMT/A
Ambang logika masukan0,3VCC maks
Penurunan tegangan / RDS(on) / saturasiT/A
Batas termal85 °C
KemasanDIP-16
Catatan / varianUmumnya digunakan pada layar 7-segmen

  • Pastikan koneksi yang tepat untuk menghindari kerusakan.
  • Pertahankan tegangan suplai maksimum 5 V untuk pengoperasian yang aman.
  • Gunakan pull-up yang sesuai untuk komunikasi I2C jika diperlukan.
  • Jaga rentang pengukuran jarak dalam batas yang ditentukan (2 cm - 400 cm).
  • Hindari menghubung singkat pin daya dan ground.
  • Uji pengaturan kecerahan layar untuk memastikan visibilitas.
  • Periksa masukan mengambang yang dapat menyebabkan pembacaan tidak akurat.

CLK = clock, DIO = keluaran data

Instruksi Pengkabelan

Arduino wiring for HC-SR04 Ultrasonic Sensor with TM1637 display
Arduino wiring for HC-SR04 Ultrasonic Sensor with TM1637 display

Untuk menghubungkan sensor ultrasonik HC-SR04, sambungkan pin VCC (kabel merah) ke pin 5V pada Arduino, dan pin GND (kabel kuning) ke ground. Pin Trigger (kabel biru) harus dihubungkan ke pin digital 12, sedangkan pin Echo (kabel hijau) harus dihubungkan ke pin digital 11. Pastikan koneksi ini aman untuk memastikan pengoperasian yang benar.

Untuk layar TP1637, sambungkan pin VCC (kabel merah) ke pin 5V pada Arduino dan pin GND (kabel kuning) ke ground. Pin Clock (kabel biru) harus menuju ke pin digital 2, dan pin Data (kabel putih) harus terhubung ke pin digital 3. Pengaturan ini memungkinkan Arduino berkomunikasi dengan layar dan mengirim data jarak untuk visualisasi.

Contoh Kode & Penjelasan

Cuplikan kode berikut menginisialisasi sensor ultrasonik dan layar:

#define TRIGGER_PIN  12
#define ECHO_PIN     11
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
TM1637Display display(CLK, DIO);

Di sini, kita mendefinisikan pin untuk trigger dan echo sensor ultrasonik dan mengatur jarak maksimum menjadi 200 cm. Pustaka NewPing digunakan untuk menangani sensor, sedangkan objek TM1637Display mengelola layar.

Dalam loop utama, kita terus membaca jarak dan menampilkannya:

int distance = sonar.ping_cm(); // dapatkan jarak
display.showNumberDec(distance, false, 3, 1);

Bagian kode ini mengambil pengukuran jarak dari sensor dan menampilkannya di layar TP1637. Fungsi showNumberDec memformat jarak untuk ditampilkan sebagai angka desimal.

Untuk kode lengkap, silakan merujuk ke bagian di bawah artikel ini.

Demonstrasi / Apa yang Diharapkan

Setelah semuanya diatur dan kode diunggah, Anda akan melihat pembacaan jarak ditampilkan di layar TP1637. Pembacaan akan diperbarui kira-kira setiap 50 milidetik, memberikan umpan balik hampir real-time tentang jarak yang diukur oleh sensor ultrasonik. Jika Anda melihat nilai yang tidak terduga, pastikan sensor diarahkan dengan benar dan tidak ada penghalang di jalurnya (dalam video pada menit 6:15).

Stempel Waktu Video

  • 00:00 - Pendahuluan
  • 01:30 - Tinjauan komponen
  • 02:45 - Instruksi pengkabelan
  • 04:00 - Penjelasan kode
  • 06:15 - Demonstrasi

Gambar

HC-SR04 ulrasonic sensor
HC-SR04 ulrasonic sensor
How HC-SR04 ulrasonic sensor work
How HC-SR04 ulrasonic sensor work
Arduino wiring for HC-SR04 Ultrasonic Sensor with TM1637 display
Arduino wiring for HC-SR04 Ultrasonic Sensor with TM1637 display
43-This is the Arduino code for the HC-SR04 ultrasonic distance sensor with a TP1637 display.
Bahasa: C++
/*
 * This is the Arduino code for the HC-SR04 Ultrasonic Distance Sensor with TP1637 Display
 * to measure the distance using Arduino for a robotic car and other applications
 * Watch the video https://youtu.be/SlgLj_T5GaY
 * 
 * Written by Ahmad Shamshiri for Robojax Video
 * Date: December 21, 2017, in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purposes only.
 * 
 */

/* Original Code 
   from https://github.com/avishorp/TM1637
// https://playground.arduino.cc/Code/NewPing
 * Modified for Robojax video on December 21, 2017
// ---------------------------------------------------------------------------
// Example NewPing library sketch that does a ping about 20 times per second.
// ---------------------------------------------------------------------------
*/

#include <NewPing.h>

#define TRIGGER_PIN  12  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     11  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.


////////////////////////////
#include <Arduino.h>
#include <TM1637Display.h>

// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3
// The amount of time (in milliseconds) between tests
#define TEST_DELAY  500
TM1637Display display(CLK, DIO);
/////////////////////////

void setup() {
  Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
}

void loop() {
  display.setBrightness(0x0f);
  uint8_t data[] = { 0x0, 0x0, 0x0, 0x0 };
  display.setSegments(data);
  int distance = sonar.ping_cm();// get the distance and store it in "distance" variable
                     // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm()); // Send ping, get distance in cm and print result (0 = outside set distance range)
  Serial.println("cm");
  display.showNumberDec(distance, false, 3,1);
  delay(50);  
}

Hal-hal yang mungkin Anda butuhkan

Sumber daya & referensi

Berkas📁

File lainnya