Isi kandungan:

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

Video: Modul Paparan LED Arduino dan TM1638: 11 Langkah

Video: Modul Paparan LED Arduino dan TM1638: 11 Langkah
Video: Introduction to HT16K33 4 Digit LED Seven Segment Display with Arduino 2024, Julai
Anonim
Modul Paparan LED Arduino dan TM1638
Modul Paparan LED Arduino dan TM1638

Sekiranya anda memerlukan cara yang cepat dan mudah untuk menambahkan beberapa input dan output pengguna ke projek, modul paparan ini menarik dan menyeronokkan.

Ia mengandungi lapan digit LED merah 7 segmen, lapan LED merah / hijau dan juga lapan butang untuk input pengguna. Unit juga dapat dirantai daisy, memungkinkan hingga lima sekaligus, dan kabel pendek disertakan dengan setiap modul, serta beberapa spacer pendek dan baut, seperti yang ditunjukkan dalam gambar.

Langkah 1:

Imej
Imej

Spacernya cukup panjang untuk menaikkan PCB di atas permukaan, namun untuk memasang papan di mana sahaja yang berguna anda memerlukannya lebih lama. Anda mungkin juga mahu melepaskan soket IDC jika anda ingin memasang modul dekat dengan permukaan panel. Ini akan menjadi tugas pematuhan yang mudah kerana mereka adalah soket melalui lubang.

Langkah 2:

Imej
Imej

Papan dikendalikan oleh IC TM1638.

Ini adalah IC pemacu LED dan antara muka dari "Titan Micro Electronics". Anda juga boleh membeli IC ini dari PMD Way. Anda juga boleh memuat turun lembaran data untuk maklumat lebih lanjut.

Langkah 3: Bermula - Perkakasan

Bermula - Perkakasan
Bermula - Perkakasan

Perkakasan - Sambungan ke papan serasi Arduino (atau MCU lain) agak mudah. Pinout ditunjukkan di bahagian belakang PCB, dan sesuai dengan pemasangan pada kabel pita. Sekiranya anda melihat hujung kabel seperti itu.

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

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

Untuk penggunaan Arduino, pin 1 ~ 4 adalah minimum yang diperlukan untuk menggunakan satu modul. Setiap modul tambahan memerlukan pin digital lain yang disambungkan ke STB2, STB3, dll. Lebih lanjut mengenai ini kemudian. Harap perhatikan bahawa setiap modul diatur ke kecerahan penuh dengan setiap lampu LED menggunakan 127mA, jadi lebih baik menggunakan kuasa luaran dengan lebih dari satu modul dan sambungan lain dengan papan Arduino.

Langkah 4: Bermula - Perisian

Perisian - muat turun dan pasang perpustakaan T1638 dari sini. Terima kasih dan salam untuk rjbatista di gmail dot com untuk perpustakaan. Memulakan modul dalam lakaran itu mudah. Sertakan perpustakaan dengan:

#sertakan

kemudian gunakan salah satu yang berikut untuk setiap modul:

Modul TM1638 (x, y, z);

x adalah pin digital Arduino yang disambungkan ke pin kabel modul 4, y adalah pin digital Arduino yang disambungkan ke pin kabel modul 3, dan z adalah pin strobe. Oleh itu, jika anda mempunyai satu modul dengan data, jam dan strobo yang disambungkan ke pin 8, 7, dan 6, anda akan menggunakan:

Modul TM1638 (8, 7, 6);

Sekiranya anda mempunyai dua modul, dengan strob modul satu disambungkan ke Arduino digital 6, dan strobo modul dua disambungkan ke digital 5, anda akan menggunakan:

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

dan seterusnya untuk lebih banyak modul. Sekarang untuk mengawal paparan…

Langkah 5: LED Bi-warna

LED Bi-warna
LED Bi-warna

Mengawal LED merah / hijau adalah mudah. Sebagai rujukan, mereka diberi nombor sifar hingga tujuh dari kiri ke kanan. Untuk menghidupkan atau mematikan satu LED, gunakan yang berikut:

modul.setLED (TM1638_COLOR_RED, x); // tetapkan nombor LED x ke redmodule.setLED (TM1638_COLOR_GREEN, x); // tetapkan nombor LED x ke modul hijau.setLED (TM1638_COLOR_RED + TM1638_COLOR_GREEN, 0); // tetapkan nombor LED x menjadi merah dan hijau

Menggunakan kaedah di atas mungkin mudah, ia agak tidak berkesan. Cara yang lebih baik adalah mengatasi semua LED dalam satu kenyataan. Untuk melakukan ini, kami menghantar dua bait data dalam heksadesimal ke paparan. MSB (bait paling signifikan) terdiri daripada lapan bit, masing-masing mewakili satu LED hijau sedang (1) atau mati (0). LSB (bait paling tidak signifikan) mewakili LED merah.

Kaedah mudah untuk menentukan nilai heksadesimal untuk mengawal LED adalah mudah, gambar anda mempunyai satu baris LED - lapan pertama berwarna hijau dan lapan yang kedua berwarna merah. Tetapkan setiap digit menjadi 1 untuk hidup dan 0 untuk mati. Tukarkan dua nombor perduaan kepada heksadesimal dan gunakan fungsi ini:

modul.setLEDs (0xgreenred);

Di mana hijau adalah nombor heksadesimal untuk LED hijau dan merah adalah nombor heksadesimal untuk LED merah. Sebagai contoh, untuk menghidupkan tiga LED pertama sebagai merah, dan tiga LED terakhir berwarna hijau, perwakilan binari akan menjadi:

00000111 11100000 yang dalam heksadesimal adalah E007.

Oleh itu, kami akan menggunakan:

modul.setLEDs (0xE007);

yang menghasilkan gambar seperti gambar di atas.

Langkah 6: Paparan 7 segmen

Untuk membersihkan paparan berangka (tetapi bukan LED di bawah), cukup gunakan:

modul.clearDisplay ();

atau untuk menghidupkan setiap segmen DAN semua LED, gunakan yang berikut

modul.setupDisplay (benar, 7); // di mana 7 adalah intensiti (dari 0 ~ 7)

Untuk memaparkan nombor perpuluhan, gunakan fungsi:

module.setDisplayToDecNumber (a, b, false);

di mana a adalah bilangan bulat, b adalah kedudukan untuk titik perpuluhan (0 untuk tidak ada, 1 untuk digit 8, 2, untuk digit 7, 4 untuk digit 6, 8 untuk digit 4, dll), dan parameter terakhir (benar / false) menghidupkan atau mematikan sifar utama. Sketsa berikut menunjukkan penggunaan fungsi ini:

#include // tentukan modul pada pin data 8, pin jam 9 dan modul strobe pin 7 TM1638 (8, 9, 7); tidak bertanda panjang a = 1; penyediaan void () {} gelung void () {untuk (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); kelewatan (1); } untuk (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); kelewatan (1); }}

… dengan hasil yang ditunjukkan dalam video.

Langkah 7:

Image
Image

Salah satu ciri yang paling menarik adalah keupayaan untuk menatal teks di satu atau lebih paparan. Untuk melakukannya tidak memerlukan penjelasan seperti lakaran demonstrasi yang disertakan:

tm_1638_scrolling_modules_example.pde

disertakan dengan perpustakaan TM1638 mudah diikuti. Cukup masukkan teks anda dalam rentetan const , pastikan modul disambungkan mengikut definisi modul pada awal lakaran dan anda sudah siap. Untuk melihat watak yang ada, lawati halaman fungsi. Perhatikan bahawa paparan hanya tujuh segmen, jadi beberapa watak mungkin tidak kelihatan sempurna, tetapi mengikut konteks akan memberi anda idea yang baik - lihat videonya dalam langkah ini.

Langkah 8:

Akhirnya, anda juga dapat menangani setiap segmen setiap digit secara berasingan. Pertimbangkan kandungan array ini:

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

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

modul.setDisplay (nilai);

akan sesuai dengan gambar.

Langkah 9:

Imej
Imej

Secara semula jadi anda boleh menggabungkan nilai untuk setiap digit untuk mencipta watak, simbol, dan sebagainya. Contohnya, menggunakan nilai berikut:

nilai bait = {99, 99, 99, 99, 99, 99, 99, 99};

kami buat seperti gambar dalam langkah ini.

Langkah 10: Butang

Nilai butang dikembalikan sebagai nilai bait dari fungsi:

modul.getButtons ();

Oleh kerana terdapat lapan butang, masing-masing mewakili satu bit nombor binari yang dikembalikan sebagai bait. Butang di sebelah kiri mengembalikan satu perpuluhan, dan kanan mengembalikan 128. Ia juga dapat mengembalikan penekanan serentak, jadi menekan butang satu dan lapan mengembalikan 129. Pertimbangkan lakaran berikut, yang mengembalikan nilai penekanan butang dalam bentuk perpuluhan, kemudian memaparkan nilai:

#include // tentukan modul pada pin data 8, pin jam 9 dan strobe pin 7 TM1638 modul (8, 9, 7); butang bait; persediaan kosong () {} gelung kosong () {butang = module.getButtons (); module.setDisplayToDecNumber (butang, 0, false); }

dan hasilnya dalam video.

Papan paparan ini berguna dan semoga mendapat tempat dalam projek anda. Catatan ini disampaikan kepada anda oleh pmdway.com - menawarkan segalanya untuk pembuat dan peminat elektronik, dengan penghantaran percuma ke seluruh dunia.

Disyorkan: