Tutorial ESP32 10/55 - Penghitung digital menggunakan Seven Segment Display 74HC595 - Kit Pembelajaran IoT ESP32
Dalam tutorial ini, kita akan membuat penghitung digital menggunakan tampilan tujuh-segmen yang dikendalikan oleh mikrokontroler ESP32. Penghitung ini akan bertambah dari 0 hingga 9 dan kemudian berkurang kembali ke 0, memberikan visual yang jelas tentang proses penghitungan. Kita juga akan mengeksplorasi cara menyalakan segmen individual dan menampilkan huruf pada tampilan tujuh-segmen.

Proyek ini menggunakan register geser 74HC595 untuk mengontrol tampilan, memungkinkan kita mengelola segmen secara efisien tanpa menggunakan terlalu banyak pin GPIO pada ESP32. Dengan mengirimkan nilai biner ke register geser, kita dapat menyalakan segmen yang sesuai untuk mewakili angka dan huruf. Untuk pemahaman yang lebih mendalam tentang proses ini, Anda dapat merujuk ke video (di video pada 03:15).
Penjelasan Perangkat Keras
Komponen utama dari proyek ini termasuk mikrokontroler ESP32, register geser 74HC595, dan tampilan tujuh-segmen. ESP32 adalah mikrokontroler yang kuat dengan kemampuan Wi-Fi dan Bluetooth bawaan, membuatnya cocok untuk proyek IoT. 74HC595 adalah register geser yang memungkinkan kita mengontrol beberapa output hanya dengan menggunakan beberapa pin input. Ia bekerja dengan mengambil data serial dan mengubahnya menjadi output paralel, yang sempurna untuk menggerakkan tampilan tujuh-segmen.
Tampilan tujuh-segmen terdiri dari tujuh LED individual yang disusun dalam pola angka delapan. Setiap segmen dapat dinyalakan atau dimatikan dengan mengirimkan nilai biner yang sesuai ke register geser. Misalnya, untuk menampilkan angka 0, semua segmen kecuali segmen tengah (G) perlu dinyalakan.
Detail Datasheet
| Produsen | Texas Instruments |
|---|---|
| Nomor bagian | 74HC595 |
| Tegangan logika/IO | 2 V hingga 6 V |
| Tegangan suplai | 2 V hingga 6 V |
| Arus output (per saluran) | 6 mA |
| Arus puncak (per saluran) | 35 mA |
| Panduan frekuensi PWM | Hingga 1 kHz |
| Ambang logika input | 0,3 VCC hingga 0,7 VCC |
| Penurunan tegangan / RDS(on) / saturasi | 0,2 V maks |
| Batas termal | 125 °C |
| Kemasan | DIP-16 |
| Catatan / varian | Tersedia dalam berbagai kemasan |
- Pastikan suplai tegangan yang tepat (2 V hingga 6 V).
- Batasi arus output untuk mencegah panas berlebih.
- Gunakan resistor terpisah untuk setiap segmen untuk kecerahan optimal.
- Berhati-hatilah dengan pengkabelan untuk menghindari korsleting dan koneksi yang salah.
- Ikuti pinout dengan hati-hati untuk menghindari konfigurasi yang salah.
Instruksi Pengkabelan

Mulailah dengan menyiapkan breadboard Anda. Hubungkan rel ground (garis biru) dan rel daya (garis merah). Ground harus terhubung ke garis biru di satu sisi breadboard, sedangkan daya harus terhubung ke garis merah di sisi yang berlawanan. Gunakan kabel hitam untuk menghubungkan ground ESP32 ke rel ground dan kabel merah untuk menghubungkan pin 3.3V ESP32 ke rel daya.
Selanjutnya, masukkan register geser 74HC595 ke dalam breadboard, pastikan takik diorientasikan dengan benar. Hubungkan pin 11 (DS) ke pin 25 pada ESP32, pin 12 (SH_CP) ke pin 26, dan pin 14 (ST_CP) ke pin 27. Hubungkan ground (pin 8) dari register geser ke rel ground dan pin 10 (MR) ke rel daya untuk aktivasi.
Untuk tampilan tujuh-segmen, hubungkan pin yang sesuai dengan segmen (a-g) ke pin output dari register geser. Gunakan resistor (220 ohm) secara seri untuk setiap segmen untuk membatasi arus. Pastikan Anda memiliki koneksi yang tepat untuk pin umum, yang bisa berupa anoda umum atau katoda umum tergantung pada jenis tampilan Anda.
Contoh Kode & Panduan
Dalam fungsi setup, kita mulai dengan mendefinisikan pin yang terhubung ke register geser sebagai output. Ini memastikan bahwa ESP32 kita dapat mengontrol data yang dikirim ke tampilan.
void setup ()
{
//set pin ke output
pinMode(STcp,OUTPUT);
pinMode(SHcp,OUTPUT);
pinMode(DS,OUTPUT);
}
Di sini, kita mendefinisikan STcp, SHcp, dan DS sebagai pin yang terhubung ke ST_CP, SH_CP, dan DS dari register geser, masing-masing. Mengatur pin-pin ini sebagai output memungkinkan kita untuk mengontrol register geser.
Loop utama dari program menghitung dari 0 hingga 9, mengirimkan nilai yang sesuai ke tampilan menggunakan fungsi shiftOut.
for(int num = 0; num <10; num++)
{
digitalWrite(STcp,LOW); //ground ST_CP dan tahan rendah selama Anda mengirim
shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
digitalWrite(STcp,HIGH); //tarik ST_CPST_CP ke tinggi untuk menyimpan data
delay(1000);
}
Loop ini menaikkan variabel num, mengirim nilai yang sesuai dari datArray ke tampilan setiap detik. Fungsi shiftOut mengirim data ke register geser, yang kemudian menyalakan segmen yang sesuai.
Demonstrasi / Apa yang Diharapkan
Setelah kabel selesai dan kode diunggah, Anda akan melihat tampilan tujuh segmen menghitung dari 0 hingga 9, berhenti sejenak sebelum menghitung kembali ke 0. Setiap angka akan ditampilkan selama satu detik. Jika Anda ingin mempercepat penghitungan, Anda dapat menyesuaikan delay di dalam loop (di video pada 15:30).
Saat memanipulasi segmen secara individual, ingatlah untuk mengirim nilai biner yang benar untuk menampilkan huruf atau segmen tertentu. Jika tampilan terlihat redup, pertimbangkan untuk menambahkan resistor individual untuk setiap segmen guna memastikan kecerahan yang konsisten di seluruh tampilan.
Stempel Waktu Video
- 00:00 Mulai
- 1:53 Pengenalan tujuh segmen
- 4:38 Penjelasan kabel
- 13:15 Kode Arduino-1
- 17:01 Memilih port COM dan papan ESP32
- 18:43 Demonstrasi-1
- 20:13 Menampilkan satu digit saja
- 21:38 Penghitung naik dan turun
- 23:07 Menyalakan/mematikan setiap segmen
- 24:53 Menampilkan A, B, C, D, E dan F
const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP
const int DS = 25; //DS
int datArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void setup ()
{
//set pins to output
pinMode(STcp,OUTPUT);
pinMode(SHcp,OUTPUT);
pinMode(DS,OUTPUT);
}
void loop()
{
for(int num = 0; num <10; num++)
{
digitalWrite(STcp,LOW); //ground ST_CP and hold low for as long as you are transmitting
shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data
delay(1000);
}
}
Common Course Links
Common Course Files
Sumber daya & referensi
-
DokumentasiESP32 Tutorial 10/55 - SunFounder page for Seven Segmentdocs.sunfounder.com
Berkas📁
Tidak ada file tersedia.