Daftar Isi:

Modul Tampilan LED Arduino dan TM1638: 11 Langkah
Modul Tampilan LED Arduino dan TM1638: 11 Langkah

Video: Modul Tampilan LED Arduino dan TM1638: 11 Langkah

Video: Modul Tampilan LED Arduino dan TM1638: 11 Langkah
Video: TM1638 Display Module with Arduino Mega Pro (#142) 2024, November
Anonim
Modul Tampilan LED Arduino dan TM1638
Modul Tampilan LED Arduino dan TM1638

Jika Anda membutuhkan cara cepat dan mudah untuk menambahkan beberapa input dan output pengguna ke sebuah proyek, modul tampilan ini menarik dan menyenangkan.

Mereka berisi delapan digit LED merah 7-segmen, delapan LED merah/hijau dan juga delapan tombol untuk input pengguna. Unit juga dapat dirantai daisy, memungkinkan hingga lima sekaligus, dan kabel pendek disertakan dengan setiap modul, serta beberapa spacer dan baut pendek, seperti yang ditunjukkan pada gambar.

Langkah 1:

Gambar
Gambar

Spacer cukup panjang untuk menaikkan PCB di atas permukaan, namun untuk memasang papan di tempat yang berguna, Anda memerlukan yang lebih panjang. Anda mungkin juga ingin melepas soket IDC jika Anda ingin memasang modul di dekat permukaan panel. Ini akan menjadi tugas pematrian sederhana karena mereka adalah soket lubang.

Langkah 2:

Gambar
Gambar

Papan dikendalikan oleh IC TM1638.

Ini adalah IC driver LED dan antarmuka dari "Titan Micro Electronics". Anda juga dapat membeli IC ini dari PMD Way. Anda juga dapat mengunduh lembar data untuk lebih jelasnya.

Langkah 3: Memulai - Perangkat Keras

Memulai - Perangkat Keras
Memulai - Perangkat Keras

Perangkat Keras – Koneksi ke papan yang kompatibel dengan Arduino (atau MCU lainnya) cukup sederhana. Pinout ditampilkan di bagian belakang PCB, dan cocok dengan pemasangan pada kabel pita. Jika Anda melihat ujung kabel seperti itu.

Lubang kanan atas adalah pin satu, dengan kiri atas adalah pin dua, kanan bawah pin sembilan dan kiri bawah pin sepuluh. Oleh karena itu pinoutnya adalah:

  1. Vcc (5V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. Tidak terhubung.

Untuk penggunaan Arduino, pin 1~4 adalah minimum yang diperlukan untuk menggunakan satu modul. Setiap modul tambahan akan membutuhkan pin digital lain yang terhubung ke STB2, STB3, dll. Lebih lanjut tentang ini nanti. Harap dicatat bahwa setiap modul diatur ke kecerahan penuh dengan setiap LED yang menyala mengkonsumsi 127mA, jadi sebaiknya gunakan daya eksternal dengan lebih dari satu modul dan koneksi lain dengan papan Arduino.

Langkah 4: Memulai - Perangkat Lunak

Perangkat lunak – unduh dan instal pustaka T1638 dari sini. Terima kasih dan pujian untuk rjbatista di gmail dot com untuk perpustakaan. Menginisialisasi modul dalam sketsa itu sederhana. Sertakan perpustakaan dengan:

#termasuk

kemudian gunakan salah satu dari berikut ini untuk setiap modul:

modul TM1638 (x, y, z);

x adalah pin digital Arduino yang terhubung ke pin kabel modul 4, y adalah pin digital Arduino yang terhubung ke pin kabel modul 3, dan z adalah pin strobo. Jadi jika Anda memiliki satu modul dengan data, jam, dan strobo yang terhubung ke pin 8, 7, dan 6, Anda akan menggunakan:

Modul TM1638 (8, 7, 6);

Jika Anda memiliki dua modul, dengan strobo modul satu terhubung ke Arduino digital 6, dan strobo modul dua terhubung ke digital 5, Anda akan menggunakan:

Modul TM1638 (8, 7, 6); modul TM1638 (8, 7, 5);

dan seterusnya untuk modul lainnya. Sekarang untuk mengontrol tampilan…

Langkah 5: LED Dua Warna

LED dua warna
LED dua warna

Mengontrol LED merah/hijau itu mudah. Untuk referensi mereka diberi nomor nol sampai tujuh dari kiri ke kanan. Untuk menghidupkan atau mematikan satu LED, gunakan yang berikut ini:

module.setLED(TM1638_COLOR_RED, x); // setel nomor LED x ke redmodule.setLED(TM1638_COLOR_GREEN, x); // setel nomor LED x ke modul hijau.setLED(TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // atur nomor LED x menjadi merah dan hijau

Menggunakan cara di atas mungkin sederhana memang agak tidak efisien. Cara yang lebih baik adalah dengan menangani semua LED dalam satu pernyataan. Untuk melakukan ini, kami mengirim dua byte data dalam heksadesimal ke layar. MSB (byte paling signifikan) terdiri dari delapan bit, masing-masing mewakili satu LED hijau menyala (1) atau mati (0). LSB (byte paling signifikan) mewakili LED merah.

Cara mudah untuk menentukan nilai heksadesimal untuk mengontrol LED sederhana, gambar Anda memiliki satu baris LED – delapan pertama berwarna hijau dan delapan kedua berwarna merah. Atur setiap digit ke 1 untuk hidup dan 0 untuk mati. Konversikan dua bilangan biner ke heksadesimal dan gunakan fungsi ini:

module.setLEDs(0xgreenred);

Dimana hijau adalah angka heksadesimal untuk LED hijau dan merah adalah angka heksadesimal untuk LED merah. Misalnya, untuk menyalakan tiga LED pertama berwarna merah, dan tiga LED terakhir berwarna hijau, representasi binernya adalah:

00000111 11100000 yang dalam heksadesimal adalah E007.

Jadi kita akan menggunakan:

module.setLEDs(0xE007);

yang menghasilkan gambar seperti gambar di atas.

Langkah 6: Tampilan 7-segmen

Untuk menghapus tampilan numerik (tetapi bukan LED di bawah), cukup gunakan:

modul.clearDisplay();

atau untuk menyalakan setiap segmen DAN semua LED, gunakan yang berikut ini:

module.setupDisplay(true, 7); // di mana 7 adalah intensitas (dari 0~7)

Untuk menampilkan angka desimal, gunakan fungsi:

module.setDisplayToDecNumber(a, b, false);

di mana a adalah bilangan bulat, b adalah posisi titik desimal (0 untuk tidak ada, 1 untuk angka 8, 2, untuk angka 7, 4 untuk angka 6, 8 untuk angka 4, dst), dan parameter terakhir (benar/ false) menghidupkan atau mematikan angka nol di depan. Sketsa berikut menunjukkan penggunaan fungsi ini:

#include // mendefinisikan modul pada pin data 8, pin clock 9 dan modul TM1638 pin strobo 7 (8, 9, 7); unsigned panjang a=1; void setup(){} void loop() { for (a=10000; a<11000; a++) { module.setDisplayToDecNumber(a, 4, false); penundaan (1); } untuk (a=10000; a<11000; a++) { module.setDisplayToDecNumber(a, 0, true); penundaan (1); } }

… dengan hasil yang ditampilkan dalam video.

Langkah 7:

Image
Image

Salah satu fitur yang paling menarik adalah kemampuan untuk menggulir teks di satu atau lebih tampilan. Untuk melakukannya tidak perlu penjelasan seperti sketsa demonstrasi yang disertakan:

tm_1638_scrolling_modules_example.pde

disertakan dengan perpustakaan TM1638 mudah diikuti. Cukup masukkan teks Anda ke dalam const char string, pastikan bahwa modul disambungkan sesuai dengan definisi modul di awal sketsa dan Anda sudah siap. Untuk melihat karakter yang tersedia, kunjungi halaman fungsi. Perhatikan bahwa tampilan hanya tujuh segmen, jadi beberapa karakter mungkin tidak terlihat sempurna, tetapi dalam konteks akan memberi Anda ide yang bagus – lihat video di langkah ini.

Langkah 8:

Terakhir, Anda juga dapat menangani setiap segmen dari setiap digit secara individual. Pertimbangkan isi array ini:

nilai byte = { 1, 2, 4, 8, 16, 32, 64, 128 };

setiap elemen mewakili angka 1~8. Nilai setiap elemen menentukan segmen digit mana yang menyala. Untuk segmen a~f, dp nilainya adalah 1, 2, 4, 6, 16, 32, 64, 128. Jadi hasil dari penggunaan array di atas pada fungsi berikut:

module.setDisplay(nilai);

akan sesuai gambar.

Langkah 9:

Gambar
Gambar

Secara alami Anda dapat menggabungkan nilai untuk setiap digit untuk membuat karakter, simbol, dan lain-lain Anda sendiri. Misalnya, menggunakan nilai berikut:

nilai byte = { 99, 99, 99, 99, 99, 99, 99, 99 };

kami buat sesuai gambar di langkah ini.

Langkah 10: Tombol

Nilai tombol dikembalikan sebagai nilai byte dari fungsi:

modul.getButtons();

Karena ada delapan tombol, masing-masing mewakili satu bit angka biner yang dikembalikan sebagai byte. Tombol di sebelah kiri mengembalikan angka desimal, dan tombol kanan mengembalikan 128. Itu juga dapat mengembalikan penekanan simultan, jadi menekan tombol satu dan delapan mengembalikan 129. Perhatikan sketsa berikut, yang mengembalikan nilai penekanan tombol dalam bentuk desimal, lalu ditampilkan nilai:

#include // mendefinisikan modul pada pin data 8, pin clock 9 dan modul TM1638 pin strobo 7 (8, 9, 7); tombol byte; void setup(){} void loop() { keys=module.getButtons(); module.setDisplayToDecNumber(tombol, 0, salah); }

dan hasilnya di video.

Papan pajangan ini berguna dan mudah-mudahan menemukan rumah di proyek Anda. Posting ini dipersembahkan oleh pmdway.com – menawarkan segalanya untuk pembuat dan penggemar elektronik, dengan pengiriman gratis ke seluruh dunia.

Direkomendasikan: