Cari Kode

Cara menggunakan layar 4-digit TM1638. Tonton video

Cara menggunakan layar 4-digit TM1638. Tonton video

Modul TM1638 adalah komponen serbaguna yang dapat menampilkan angka dan karakter sekaligus dikendalikan oleh tombol. Dalam tutorial ini, Anda akan mempelajari cara mengatur dan memprogram tampilan ini untuk menampilkan berbagai nilai, termasuk angka dan nilai heksadesimal. Di akhir panduan ini, Anda akan memiliki tampilan yang berfungsi penuh yang merespons penekanan tombol dan mengubah apa yang ditampilkan berdasarkan masukan pengguna. Anda dapat melihat demonstrasi dalam video di (dalam video pada 00:00).
TM1637 keypad display module-1

Penjelasan Perangkat Keras

Modul TM1638 dirancang untuk menampilkan informasi dan menerima masukan dari tombol. Modul ini terdiri dari tampilan LED 8 digit dan matriks 16 tombol. Setiap tombol dapat diprogram untuk memicu fungsi yang berbeda, memungkinkan antarmuka yang ramah pengguna. Modul ini terhubung ke mikrokontroler melalui tiga pin: pin masukan/keluaran data, pin clock, dan pin strobe. Pengaturan ini memungkinkan komunikasi yang efisien antara mikrokontroler dan TM1638. IC TM1638 mengelola tampilan dan masukan tombol. IC ini menggunakan protokol komunikasi serial yang memungkinkannya mengontrol tampilan dan membaca status tombol dengan pengkabelan minimal. Setiap penekanan tombol mengirimkan sinyal ke mikrokontroler, yang kemudian dapat menjalankan tindakan tertentu berdasarkan tombol mana yang ditekan.

Detail Datasheet

ProdusenQYF
Nomor komponenTM1638
Tegangan logika/IO5 V
Tegangan suplai5 V
Arus keluaran (per segmen)20 mA
Arus puncak (total)120 mA
Ambang logika masukan0,2 V (rendah) / 0,8 V (tinggi)
KemasanDIP-28
  • Pastikan tegangan suplai stabil pada 5 V untuk kinerja optimal.
  • Batasi arus keluaran untuk menghindari kerusakan pada tampilan.
  • Gunakan resistor untuk menghindari arus berlebih melalui LED.
  • Debounce masukan tombol dalam perangkat lunak untuk menghindari pemicu ganda.
  • Jaga kabel tetap pendek untuk mengurangi noise dalam komunikasi.

Instruksi Pengkabelan

Untuk menghubungkan modul TM1638, Anda akan menghubungkannya ke mikrokontroler sebagai berikut:
Arduino wiring for TM1637 keypad display module
Arduino wiring for TM1637 keypad display module
- Hubungkan pin berlabel VCC pada TM1638 ke catu daya 5V mikrokontroler Anda. - Hubungkan pin GND pada TM1638 ke ground mikrokontroler Anda. - Hubungkan pin STB (sering diberi label STROBE) ke pin digital 5 pada mikrokontroler Anda. - Hubungkan pin CLK (clock) ke pin digital 2 pada mikrokontroler Anda. - Hubungkan pin DIO (masukan/keluaran data) ke pin digital 3 pada mikrokontroler Anda. Pastikan untuk memeriksa koneksi Anda sebelum menyalakan sistem. Jika Anda telah mengikuti video di (dalam video pada 02:30), Anda seharusnya tidak memiliki masalah dengan pengkabelan.

Contoh Kode & Penjelasan

Potongan kode berikut menginisialisasi modul TM1638 dan mengatur tampilan. Pengidentifikasi module mewakili instance TM1638 yang dibuat untuk berinteraksi dengan tampilan.
TM1638QYF module(DIO, CLK, STB);
void setup() 
{
  module.setupDisplay(true, 7);
}
Dalam potongan ini, tampilan diatur untuk menampilkan kecerahan maksimum (7). Bagian berikutnya dari kode mengelola penekanan tombol dan mengubah tampilan berdasarkan tombol mana yang ditekan.
void update(TM1638QYF* module, word* mode) {
  word buttons = module->getButtons();
  if (buttons != 0) {
    *mode = buttons >> 1;
  }
  switch (*mode) {
    case 0: module->setDisplayToString("press 1"); break;
    // kasus lain menyusul
  }
}
Fungsi ini memeriksa tombol mana yang ditekan menggunakan getButtons() dan memperbarui tampilan sesuai. Variabel mode menentukan teks apa yang ditampilkan berdasarkan tombol yang ditekan. Terakhir, loop utama terus memperbarui tampilan.
void loop() 
{
  update(&module, &mode);
}
Loop ini memanggil fungsi update, memastikan tampilan disegarkan berdasarkan interaksi pengguna. Untuk pemahaman lengkap, lihat kode lengkap yang dimuat di bawah artikel.

Demonstrasi / Apa yang Diharapkan

Setelah semuanya terhubung dan kode diunggah, menekan tombol seharusnya mengubah teks tampilan sesuai. Misalnya, menekan tombol 1 akan menampilkan "press 1", sementara menekan tombol 2 mengubahnya menjadi "press 2". Jika ada masalah, periksa kembali pengkabelan Anda dan pastikan pin yang benar digunakan seperti yang disebutkan. Menonton video di (dalam video pada 05:00) juga akan membantu memastikan semuanya berfungsi seperti yang diharapkan.

Stempel Waktu Video

  • 00:00 - Pendahuluan
  • 02:30 - Instruksi Pengkabelan
  • 05:00 - Penjelasan Kode dan Demonstrasi

Gambar

TM1637 keypad display module-1
TM1637 keypad display module-1
TM1637 keypad display module-2
TM1637 keypad display module-2
TM1637 keypad display module-3
TM1637 keypad display module-3
TM1637 keypad display module
TM1637 keypad display module
Arduino wiring for TM1637 keypad display module
Arduino wiring for TM1637 keypad display module
28-This is the Arduino code for a TM1638 8-digit display with a 4x4 matrix button.
Bahasa: C++
/*
 * This is the Arduino code for TM1638 8-digit display.
 * with 16 matrix buttons.
 *  * 
 * Written by Ahmad Nejrabi for Robojax Video
 * Date: Dec 10, 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.
 * 
 */

/*
// http://arduinolearning.com/code/qyf-tm1638-and-arduino-module.php#codesyntax_2
 * Modified for Robojax video on Dec 10, 2017

 */


#include <TM1638.h>
#include <TM1638QYF.h>

#define STB 5
#define DIO 3
#define CLK 2
 
TM1638QYF module(DIO, CLK, STB);
word mode;
 
 
void setup() 
{
  module.setupDisplay(true, 7);
  mode = 0;//initial button zero 
}
 
void update(TM1638QYF* module, word* mode) {
  word buttons = module->getButtons();
 
  // button pressed - change mode
  if (buttons != 0) {
    *mode = buttons >> 1;
 
    if (*mode < 0) {
      module->clearDisplay();
      delay(100);
    }
  }
 
  switch (*mode) {
    case 0://S1
      module->setDisplayToString("press 1");
      break;
    case 1://S2
      module->setDisplayToString("press 2");
      break;  
    case 2://S3
      module->setDisplayToString("press 3");
      break;
    case 4://S4
      module->setDisplayToString("press 4");
      break;
    case 8://S5
      module->setDisplayToString("press 5");
      break;
    case 16://S6
      module->setDisplayToString("press 6");
      break;
    case 32://S7
      module->setDisplayToString("press 7");
      break;
    case 64://S8
      module->setDisplayToString("press 8");
      break;
    case 128://S9
      module->setDisplayToString("press 9");
      break;
    case 256://S10
      module->setDisplayToString("press 10");
      break;
    case 512://S11
      module->setDisplayToString("press 11");
      break;
    case 1024://S12
      module->setDisplayToString("press 12");
      break;
    case 2048://S13
      module->setDisplayToString("press 13");
      break;
    case 4096://S14
      module->setDisplayToString("press 14");
      break;
    case 8192://S15
      module->setDisplayToString("press 15");
      break;
    case 16384://S16
      module->setDisplayToString("robojax");
      break;
    default:// unknown button
      module->setDisplayToString("?????");
      break;
  }
}
 
void loop() 
{
  update(&module, &mode);
}

Hal-hal yang mungkin Anda butuhkan

Sumber daya & referensi

Berkas📁

Pustaka Arduino (zip)

Panduan Pengguna