Daftar Isi:
- Sasaran
- Pengalaman dan Keterampilan
- Penafian dan Kredit
- Langkah 1: Bagian
- Daftar Suku Cadang
- Bagian Umum
- Bagian Spesifik yang Digunakan Di Sini
- Catatan Mengenai Suku Cadang
- Langkah 2: Matriks
- Pertimbangan Konstruksi
- Membangun Matriks
- Penting
- Langkah 3: Perangkat Keras Kontrol
- Membangun Perangkat Keras Kontrol
- Langkah 4: Perangkat Lunak
- Trik-nya
- Shift Register: Cara
- Mengatasi tampilan
- Pemrograman
- Sedang Beraksi
- Langkah 5: Konsep Modular
- matematika
- Register Geser Cascading
- Beberapa Driver Baris
- Misalnya
- Langkah 6: Kesimpulan
- Kemungkinan Tambahan
- Langkah 7: Tindak Lanjut
- Fitur Papan Sirkuit
- perakitan
Video: Matriks LED Menggunakan Shift Register: 7 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
Instruksi ini dimaksudkan untuk menjadi penjelasan yang lebih lengkap daripada yang lain yang tersedia secara online. Khususnya, ini akan memberikan lebih banyak penjelasan perangkat keras daripada yang tersedia di LED Marquee yang dapat diinstruksikan oleh led555.
Sasaran
Instruksi ini menyajikan konsep yang terlibat dengan register geser dan driver sisi tinggi. Dengan mengilustrasikan konsep-konsep ini dengan matriks LED 8x8, saya berharap dapat memberi Anda alat yang diperlukan untuk beradaptasi dan memperluas ukuran dan tata letak yang dibutuhkan proyek Anda.
Pengalaman dan Keterampilan
Saya akan menilai proyek ini dengan tingkat kesulitan sedang:
- Jika Anda sudah memiliki pengalaman memprogram mikrokontroler dan bekerja dengan LED, proyek ini seharusnya cukup mudah untuk Anda selesaikan dan untuk menskalakan ke rangkaian lampu yang lebih besar.
- Jika Anda baru memulai dengan mikrokontroler dan telah memasang satu atau dua LED, Anda seharusnya dapat menyelesaikan proyek ini dengan bantuan dari teman kami google.
- Jika Anda memiliki sedikit atau tanpa pengalaman dengan mikrokontroler atau pemrograman, ini mungkin melampaui apa yang seharusnya Anda lakukan. Cobalah beberapa proyek pemula lainnya dan kembalilah ketika Anda memiliki lebih banyak pengalaman menulis program untuk mikrokontroler.
Penafian dan Kredit
Pertama, saya bukan seorang insinyur listrik. Jika Anda melihat sesuatu yang salah, atau bukan praktik terbaik, beri tahu saya dan saya akan memperbaikinya. Lakukan ini dengan risiko Anda sendiri! Anda harus tahu apa yang Anda lakukan atau Anda dapat menyebabkan kerusakan pada komputer Anda, mikrokontroler Anda, dan bahkan diri Anda sendiri. Saya telah belajar banyak dari internet, terutama dari forum di: https://www.avrfreaks.netSaya menggunakan set font yang disertakan dengan ks0108 universal C library. Lihat di sini:
Langkah 1: Bagian
Daftar Suku Cadang
Bagian Umum
Untuk membuat kisi LED 8x8 dan mengontrolnya, Anda perlu:
- 64 LED pilihan Anda
- 8 Resistor untuk LED
- 1 Shift register untuk kolom
- 1 Array driver untuk baris
- 8 Resistor untuk mengganti susunan driver
- 1 mikrokontroler
- 1 sumber jam untuk mikrokontroler
- 1 papan prototipe
- 1 catu daya
- Kawat penghubung
Bagian Spesifik yang Digunakan Di Sini
Untuk instruksi ini saya menggunakan yang berikut ini:
- 64 LED hijau (bagian Mouse #604-WP7113GD)
- 8 resistor 220ohm 1/4 watt untuk LED (bagian Mouse #660-CFS1/4CT52R221J)
- 1 driver LED HEF4794 dengan register geser (bagian Mouse #771-HEF4794BPN)
- 1 mic2981 Array Driver Sumber Arus Tinggi Tegangan Tinggi (Bagian Digikey #576-1158-ND)
- 8 resistor 3,3kohm 1/4 watt untuk mengganti susunan driver (Radio Shack bagian #271-1328)
- 1 mikrokontroler Atmel ATmega8 (Mouser bagian #556-ATMEGA8-16PU)
- 1 kristal 12MHz untuk sumber jam mikrokontroler (bagian Mouse #815-AB-12-B2)
- 1 papan prototipe 2200 lubang (Radio Shack bagian #276-147)
- Catu daya ATX yang dikonversi: Lihat Instruksi Ini
- Kawat pengait 22-awg inti padat (bagian Radio Shack #278-1221)
- Papan tempat memotong roti tanpa solder (Radio Shack bagian #276-169 (tidak lagi tersedia, coba: 276-002)
- AVR Dragon (Mouser bagian #556-ATAVRDRAGON)
- Dragon Rider 500 oleh Ecos Technologies: Lihat Instruksi Ini
Catatan Mengenai Suku Cadang
Driver Baris dan Kolom: Mungkin bagian tersulit dari proyek ini adalah memilih driver baris dan kolom. Pertama, saya tidak berpikir register geser 74HC595 standar adalah ide yang bagus di sini karena mereka tidak dapat menangani jenis arus yang ingin kita kirim melalui LED. Inilah mengapa saya memilih driver HEF4794 karena dapat dengan mudah menenggelamkan arus saat semua 8 led dalam satu baris dinyalakan. Register geser ada di sisi bawah (pin ground dari led). Kita akan membutuhkan driver baris yang dapat menjadi sumber arus yang cukup untuk merangkai beberapa kolom menjadi satu. mic2981 dapat memasok hingga 500mA. Satu-satunya bagian lain yang saya temukan yang melakukan tugas ini adalah UDN2981 (bagian digikey #620-1120-ND) yang merupakan bagian yang sama oleh pabrikan yang berbeda. Kirimkan saya pesan jika Anda mengetahui driver high-side lain yang akan bekerja dengan baik di aplikasi ini. Matriks LED: Matriks ini berukuran 8x8 karena driver baris dan kolom masing-masing memiliki 8 pin. Sebuah array LED yang lebih besar dapat dibangun dengan merangkai beberapa matriks bersama-sama dan akan dibahas dalam langkah "konsep modular". Jika Anda menginginkan array yang besar, pesan semua suku cadang yang dibutuhkan sekaligus. Tersedia matriks LED 8x8, 5x7 dan 5x8 dalam satu paket yang praktis. Ini harus mudah untuk menggantikan matriks diy. Ebay adalah sumber yang bagus untuk ini. Mouser memiliki beberapa unit 5x7 yang tersedia seperti part #604-TA12-11GWA. Saya menggunakan LED hijau murah karena saya hanya bermain-main dan bersenang-senang. Menghabiskan lebih banyak pada kecerahan tinggi, LED efisiensi tinggi dapat memungkinkan Anda untuk menghasilkan tampilan yang tampak jauh lebih spektakuler… ini cukup baik untuk saya! Perangkat Keras Kontrol: Matriks dikendalikan oleh mikrokontroler Atmel AVR. Anda akan membutuhkan seorang programmer untuk ini. Karena saya membuat prototipe, saya menggunakan Dragon Rider 500 yang telah saya tulis instruksi perakitan dan penggunaan. Ini adalah alat yang mudah untuk membuat prototipe dan saya sangat merekomendasikannya.
Langkah 2: Matriks
Saya akan membangun matriks LED saya sendiri untuk proyek ini menggunakan led 5mm dan papan prototipe dari Radio Shack. Perlu dicatat bahwa Anda dapat membeli modul led 8x8 dot matrix dari beberapa sumber, termasuk ebay. Mereka harus bekerja dengan baik dengan instruksi ini.
Pertimbangan Konstruksi
PenjajaranThe LEDS perlu disejajarkan sehingga mereka menghadap ke arah yang sama pada sudut yang sama. Saya menemukan opsi termudah bagi saya adalah meletakkan badan flush LED ke papan dan menahannya di sana dengan sepotong kecil kaca plexiglass dan penjepit. Saya meletakkan beberapa LED di tempat beberapa inci dari baris yang sedang saya kerjakan untuk memastikan kaca plexiglass sejajar dengan papan prototipe. Baris dan Kolom Kita perlu memiliki sambungan yang sama untuk setiap baris dan juga setiap kolom. Karena pilihan driver baris dan kolom kita, kita perlu memiliki anoda (kabel positif dari LED) yang dihubungkan oleh baris dan katoda (kabel negatif dari LED) yang dihubungkan oleh kolom. Kabel KontrolUntuk prototipe ini saya menggunakan kabel penghubung inti padat (konduktor tunggal). Ini akan sangat mudah untuk berinteraksi dengan papan tempat memotong roti tanpa solder. Jangan ragu untuk menggunakan jenis konektor lain yang sesuai dengan proyek Anda.
Membangun Matriks
1. Tempatkan kolom pertama LED di papan prototipe.2. Periksa kembali apakah polaritas Anda untuk setiap LED sudah benar, ini akan sangat sulit untuk diperbaiki jika Anda menyadarinya nanti.3. Solder kedua ujung LED ke papan. Periksa untuk memastikan mereka sejajar dengan benar (tidak pada sudut yang aneh) dan potong kabel katoda. Pastikan Anda tidak memotong ujung anoda, kita akan membutuhkannya nanti jadi biarkan saja mengarah ke atas.4. Lepaskan insulasi dari sepotong kawat inti padat. Solder potongan kawat ini ke setiap katoda tepat di tingkat papan.
- Saya menempelkan ini di setiap ujungnya lalu kembali dan menambahkan sedikit solder di setiap persimpangan.
- Kabel ini harus melewati LED terakhir Anda untuk membuat antarmuka yang mudah saat kami menambahkan kabel kontrol.
5. Ulangi bagian 1-4 sampai Anda memiliki semua LED di tempatnya dan semua bus kolom disolder.6. Untuk membuat bus baris, tekuk beberapa ujung anoda pada sudut 90 derajat sehingga menyentuh ujung anoda lainnya di baris yang sama.
- Ada gambar rinci tentang ini di bawah ini.
- Berhati-hatilah untuk tidak membiarkan ini bersentuhan dengan bus kolom, menciptakan korsleting.
7. Solder kabel di setiap sambungan dan potong kabel anoda yang berlebih.
Biarkan anoda terakhir menempel melewati LED terakhir. Ini akan digunakan untuk menghubungkan kabel kontrol driver baris
8. Ulangi bagian 6 & 7 sampai semua baris bus telah disolder.9. Pasang kabel kontrol.
- Saya menggunakan kabel inti padat merah untuk baris dan hitam untuk kolom.
- Hubungkan satu kabel untuk setiap kolom dan satu untuk setiap baris. Ini dapat dengan mudah dilakukan di akhir setiap bus.
Penting
Matriks LED ini tidak memiliki resistor pembatas arus. Jika Anda menguji ini tanpa resistor, Anda mungkin akan membakar LED Anda dan semua pekerjaan ini akan sia-sia.
Langkah 3: Perangkat Keras Kontrol
Kita perlu mengontrol kolom dan baris matriks LED kita. Matriks telah dibangun sehingga Anoda (sisi tegangan LED) merupakan baris, dan Katoda (sisi dasar LED) membentuk kolom. Ini berarti driver baris kita perlu sumber arus dan driver kolom kita perlu menenggelamkannya. Untuk menghemat pin, saya menggunakan register geser untuk mengontrol kolom. Dengan cara ini saya dapat mengontrol jumlah kolom yang hampir tidak terbatas hanya dengan empat pin mikrokontroler. Dimungkinkan untuk menggunakan hanya tiga jika pin Enable Output diikat langsung ke tegangan. Saya telah memilih driver LED HEF4794 dengan register geser. Ini adalah pilihan yang lebih baik daripada 74HC595 standar karena dapat dengan mudah menenggelamkan arus saat ini ketika semua 8 LED menyala pada satu waktu. Di sisi atas (sumber arus untuk baris) saya menggunakan mic2981. Skema menunjukkan UDN2981, saya yakin keduanya dapat dipertukarkan. Driver ini dapat menghasilkan arus hingga 500mA. Karena kami hanya mengendarai 1 baris pada satu waktu, ini memberi banyak peluang untuk ekspansi, hingga 33 kolom untuk chip ini (lebih lanjut tentang itu di langkah "konsep modular").
Membangun Perangkat Keras Kontrol
Untuk instruksi ini, saya baru saja membuat papan tempat memotong roti sirkuit ini. Untuk solusi yang lebih permanen, Anda perlu mengetsa papan sirkuit Anda sendiri atau menggunakan papan prototipe.1. Sopir Baris
- Tempatkan mic2981 (atau UDN2981) di papan tempat memotong roti
- Hubungkan Pin 9 ke Tegangan (Ini membingungkan dalam skema)
- Hubungkan Pin 10 ke Ground (Ini membingungkan dalam skema)
- masukkan resistor 3k3 yang terhubung ke pin 1-8
- Hubungkan dari Port D ATmega8 (PD0-PD8) ke 8 resistor
- Hubungkan 8 baris kabel kontrol matriks LED ke pin 11-18 (perhatikan bahwa saya telah menghubungkan baris LED terendah ke Pin 18 dan baris tertinggi ke Pin 11).
2. Penggerak Kolom
- Tempatkan hef4794 di papan tempat memotong roti
- Hubungkan Pin 16 ke tegangan
- Hubungkan Pin 8 ke ground
- Hubungkan resistor 220 ohm ke Pin 4-7 dan 11-14.
- Hubungkan kabel kontrol 8 kolom dari matriks LED ke 8 resistor yang baru saja Anda sambungkan.
- Hubungkan Pin1 (Latch) ke PC0 dari ATmega8
- Hubungkan Pin2 (Data) ke PC1 dari ATmega8
- Hubungkan Pin3 (Jam) ke PC2 dari ATmega8
- Hubungkan Pin15 (Aktifkan Output) ke PC3 dari ATmega8
3. Jam Kristal
Hubungkan kristal 12MHz dan memuat kapasitor seperti yang ditunjukkan pada skema
4. ISP
Hubungkan header pemrograman seperti yang ditunjukkan pada skema
5. Filtering Capacitor dan Pull-up resistor
- Yang terbaik adalah menyaring tegangan yang dipasok ke ATmega8. Gunakan kapasitor 0.1uf antara Pin 7 & 8 dari ATmega8
- Pin reset tidak boleh dibiarkan mengambang karena dapat menyebabkan reset acak. Gunakan resistor untuk menghubungkannya ke tegangan, apa pun tentang 1k harus baik. Saya telah menggunakan resistor 10k dalam skema.
6. Pastikan Anda menggunakan daya yang diatur +5v. Terserah Anda untuk merancang regulator.
Langkah 4: Perangkat Lunak
Trik-nya
Ya, seperti semuanya, ada triknya. Triknya adalah tidak pernah ada lebih dari 8 LED yang menyala pada satu waktu. Agar ini berfungsi dengan baik, diperlukan sedikit pemrograman licik. Konsep yang saya pilih adalah menggunakan interupsi timer. Inilah cara kerja interupsi tampilan dalam bahasa Inggris:
- Timer menghitung sampai titik tertentu, ketika mencapai layanan interupsi rutin dijalankan.
- Rutinitas ini memutuskan baris mana yang akan ditampilkan berikutnya.
- Informasi untuk baris berikutnya dicari dari buffer dan digeser ke driver kolom (informasi ini tidak "terkunci" sehingga belum ditampilkan).
- Driver baris dimatikan, tidak ada LED yang menyala.
- Pengandar kolom "terkunci" membuat informasi yang kami geser dalam dua langkah yang lalu menjadi informasi saat ini untuk ditampilkan.
- Driver baris kemudian memberikan arus ke baris baru yang kami tampilkan.
- Rutinitas layanan interupsi berakhir dan program kembali ke aliran normal sampai interupsi berikutnya.
Ini terjadi sangat sangat cepat. Interupsi dilempar setiap 1 mSec. Ini berarti bahwa kami menyegarkan seluruh tampilan sekitar sekali setiap 8 mSec. Ini berarti tingkat tampilan sekitar 125Hz. Ada beberapa kekhawatiran tentang kecerahan karena kami pada dasarnya menjalankan LED pada siklus tugas 1/8 (mereka mati 7/8 dari waktu). Dalam kasus saya, saya mendapatkan tampilan yang cukup terang tanpa berkedip. Tampilan LED penuh dipetakan dalam array. Di antara interupsi, array dapat diubah (perhatikan atomisitas) dan akan muncul di layar selama interupsi berikutnya. Spesifikasi penulisan kode untuk mikrokontroler AVR dan cara menulis kode untuk berbicara dengan register geser berada di luar cakupan yang dapat diinstruksikan ini. Saya telah menyertakan kode sumber (ditulis dalam C dan dikompilasi dengan AVR-GCC) serta file hex untuk diprogram secara langsung. Saya telah mengomentari semua kode sehingga Anda harus dapat menggunakan ini untuk menjernihkan pertanyaan tentang cara memasukkan data ke register geser dan bagaimana penyegaran baris bekerja. Harap dicatat bahwa saya menggunakan file font yang disertakan dengan ks0108 perpustakaan C universal. Perpustakaan itu dapat ditemukan di sini:
Shift Register: Cara
Saya telah memutuskan untuk menambahkan sedikit tentang cara memprogram dengan register geser. Saya harap ini menjelaskan segalanya bagi mereka yang belum pernah bekerja dengan mereka sebelumnya. Apa yang mereka lakukan Shift Register mengambil sinyal dari satu kabel dan mengeluarkan informasi itu ke banyak pin yang berbeda. Dalam hal ini, ada satu kabel data yang mengambil data dan 8 pin yang dikendalikan tergantung pada data apa yang telah diterima. Untuk membuat segalanya lebih baik, ada sebuah outpin untuk setiap register geser yang dapat dihubungkan ke pin input dari register geser yang lain. Ini disebut cascading dan membuat potensi ekspansi menjadi prospek yang hampir tidak terbatas. Register Pergeseran Pin Kontrol memiliki 4 pin kontrol:
- Latch - Pin ini memberi tahu register geser kapan waktunya untuk beralih ke data yang baru dimasukkan
- Data - Angka 1 dan 0 memberi tahu shift register pin apa yang akan diaktifkan yang diterima pada pin ini.
- Jam - Ini adalah pulsa yang dikirim dari mikrokontroler yang memberi tahu register geser untuk mengambil pembacaan data dan pindah ke langkah berikutnya dalam proses komunikasi
- Aktifkan Output - Ini adalah sakelar hidup/mati, Tinggi=Aktif, Rendah=Mati
Membuatnya melakukan penawaran Anda:Berikut ini kursus kilat dalam pengoperasian pin kontrol di atas:Langkah 1: Setel Latch, Data, dan Jam rendah
Menyetel Latch rendah memberi tahu register geser bahwa kita akan menulis padanya
Langkah 2: Atur pin Data ke nilai logika yang ingin Anda kirim ke Shift RegisterLangkah 3: Atur pin Jam ke tinggi, memberi tahu Shift Register untuk membaca nilai pin Data saat ini
Semua nilai lain yang saat ini ada di Shift Register akan berpindah 1 tempat, memberikan ruang untuk nilai logika pin Data saat ini
Langkah 4: Atur pin Jam Rendah dan ulangi langkah 2 dan 3 sampai semua data telah dikirim ke register geser.
Pin jam harus disetel rendah sebelum mengubah ke nilai Data berikutnya. Mengalihkan pin antara tinggi dan rendah inilah yang menciptakan "pulsa clock" yang perlu diketahui register geser kapan harus pindah ke langkah berikutnya dalam proses
Langkah 5: Setel Latch tinggi
Ini memberitahu register geser untuk mengambil semua data yang telah digeser dan menggunakannya untuk mengaktifkan pin output. Ini berarti Anda tidak akan melihat data saat sedang bergeser; tidak ada perubahan pada pin output yang akan terjadi sampai Latch disetel tinggi
Langkah 6: Atur Aktifkan Output tinggi
- Tidak akan ada output pin sampai Enable Output disetel ke high, tidak peduli apa yang terjadi dengan tiga pin kontrol lainnya.
- Pin ini selalu dapat dibiarkan tinggi jika Anda mau
CascadingAda dua pin yang bisa Anda gunakan untuk cascading, Os dan Os1. Os untuk jam naik cepat dan Os1 untuk jam naik lambat. Kaitkan pin ini ke pin data register geser berikutnya dan luapan dari chip ini akan dimasukkan ke berikutnya. Akhir pembaruan
Mengatasi tampilan
Dalam contoh program saya telah membuat array 8 byte yang disebut row_buffer. Setiap byte sesuai dengan satu baris tampilan 8x8, baris 0 menjadi bagian bawah dan baris 7 menjadi bagian atas. Bit paling tidak signifikan dari setiap baris ada di sebelah kanan, bit paling signifikan di sebelah kiri. Mengubah tampilan semudah menulis nilai baru ke larik data itu, rutin layanan interupsi menangani penyegaran tampilan.
Pemrograman
Pemrograman tidak akan dibahas secara rinci di sini. Saya akan memperingatkan Anda untuk tidak menggunakan kabel pemrograman DAPA karena saya yakin Anda tidak akan dapat memprogram chip setelah berjalan pada 12MHz. Semua pemrogram standar lainnya harus bekerja (STK500, MKII, Dragon, Programmer Paralel/Serial, dll.). Sekering: Pastikan memprogram sekering untuk menggunakan sekering kristal 12MHz: 0xC9lfuse: 0xEF
Sedang Beraksi
Setelah Anda memprogram chip, tampilan akan menampilkan "Hello World!". Berikut adalah video dari matriks LED dalam tindakan. Kualitas video cukup rendah karena saya membuat ini dengan fitur video kamera digital saya dan bukan video atau webcam yang tepat.
Langkah 5: Konsep Modular
Proyek ini skalabel. Satu-satunya faktor pembatas yang sebenarnya adalah seberapa besar arus yang dapat disediakan oleh catu daya Anda. (Kenyataan lainnya adalah berapa banyak LED dan register shifter yang Anda miliki).
matematika
Saya mengendarai LED sekitar 15mA (5V-1.8vDrop/220ohms=14.5mA). Ini berarti saya dapat mengemudi hingga 33 kolom dengan driver mic2981 (500mA/15mA=33,3). Dibagi dengan 8 kita dapat melihat bahwa ini memungkinkan kita untuk merangkai 4 register geser. Juga pertimbangkan bahwa Anda tidak perlu merentangkan 32 kolom dari kiri ke kanan. Anda dapat membuat larik 16x16 yang disambungkan dengan cara yang sama seperti Anda membuat larik 8x32. Ini akan diatasi dengan menggeser dalam 4 byte…. dua yang pertama akan bergeser sepenuhnya ke led untuk baris ke-9, dua byte kedua akan bergeser ke baris pertama. Kedua baris akan bersumber dari satu pin pada driver baris.
Register Geser Cascading
Register geser yang digunakan adalah register geser bertingkat. Artinya saat Anda menggeser data, overflow muncul di pin Os. Ini menjadi sangat berguna karena satu set register geser dapat dihubungkan satu sama lain, pin Os ke pin Data, menambahkan 8 kolom dengan setiap chip baru. Semua register geser akan terhubung ke pin Latch, Clock, dan Enable Output yang sama pada mikrokontroler. Efek "cascading" dibuat ketika Os register geser pertama terhubung ke pin Data yang kedua. Pemrograman perlu diubah untuk mencerminkan peningkatan jumlah kolom. Baik buffer yang menyimpan informasi maupun fungsi yang memindahkan informasi untuk setiap kolom perlu diperbarui untuk mencerminkan jumlah kolom yang sebenarnya. Skema ini diberikan di bawah ini sebagai contoh.
Beberapa Driver Baris
Driver baris (mic2981) dapat menghasilkan arus yang cukup untuk menggerakkan 32 kolom. Bagaimana jika Anda ingin lebih dari 32 kolom? Seharusnya dimungkinkan untuk menggunakan beberapa driver baris tanpa menggunakan lebih banyak pin mikrokontroler. Kita membutuhkan driver baris untuk mendapatkan sumber arus yang cukup untuk menyalakan LED. Jika Anda menggunakan lebih banyak kolom daripada yang dimungkinkan untuk menyala pada satu waktu, driver baris tambahan dapat memasok arus yang dibutuhkan. Pin input yang sama dari mikrokontroler digunakan sehingga tidak perlu mengubah pemindaian baris. Dengan kata lain, setiap pengemudi mengontrol baris untuk blok 8x32. Meskipun 64 kolom mungkin memiliki penempatan baris FISIK yang sama, kami membagi bus baris menjadi dua, menggunakan satu driver untuk 8 baris dari 32 kolom pertama, dan driver kedua untuk 8 baris dari 32 kolom kedua dan seterusnya. Skema ini diberikan di bawah ini sebagai contoh. Potensi Salah Langkah:1. Jangan gunakan beberapa driver baris dengan jumlah kolom yang sama. Melakukannya berarti bahwa setiap pin register geser akan menggerakkan lebih dari satu LED pada satu waktu.2. Anda harus memiliki satu set 8 resistor (3k3) untuk setiap driver baris, satu set untuk beberapa driver baris tidak akan berfungsi karena tidak akan memberikan arus yang diperlukan untuk mengganti gerbang.
Misalnya
Saya memutuskan untuk memperluas matriks yang saya buat sebelumnya. Saya telah menambahkan 7 baris lagi dengan total 15 karena hanya itu yang dapat saya muat di protoboard ini. Saya juga baru mengetahui tentang kontes yang dilakukan Instructables yang disebut "Let it Glow". Berikut adalah video dari saya mengambil itu. Sekali lagi, kamera digital yang saya gunakan untuk merekam video tidak adil. Ini terlihat bagus untuk mata manusia, terutama di mana semua LED berkedip, tetapi tidak terlihat sebagus di video. Nikmati: Kode sumber untuk tampilan yang lebih besar ini disertakan di bawah.
Langkah 6: Kesimpulan
Kemungkinan Tambahan
I2CI membiarkan pin Two Wire Interface (I2C) tidak digunakan dalam desain ini. Ada beberapa prospek menarik yang bisa menggunakan dua pin ini. Penambahan EEPROM I2C akan memungkinkan penyimpanan pesan yang jauh lebih besar. Ada juga prospek merancang pemrograman untuk mengubah mega8 menjadi driver tampilan yang kompatibel dengan I2C. Ini akan membuka kemungkinan memiliki perangkat yang mendukung USB untuk menampilkan data pada larik LED Anda dengan melewatkannya melalui bus I2C. Input Ada banyak pin yang tersisa yang dapat digunakan untuk tombol atau penerima IR. Ini akan memungkinkan pesan diprogram melalui sistem menu. Tampilan Untuk instruksi ini, saya hanya menerapkan beberapa fungsi tampilan. Satu hanya menulis karakter ke layar, yang lain menggulirkan karakter ke layar. Yang penting untuk diingat adalah bahwa apa yang Anda lihat di lampu direpresentasikan dalam array data. Jika Anda menemukan cara cerdas untuk mengubah larik data, lampu akan berubah dengan cara yang sama. Beberapa peluang menggiurkan termasuk membuat pengukur grafik dari kolom. Ini dapat digunakan sebagai penganalisis sinyal dengan stereo. Scrolling dapat dilakukan dari atas ke bawah atau dari bawah ke atas, bahkan dari kiri ke kanan. Semoga berhasil, bersenang-senanglah!
Langkah 7: Tindak Lanjut
Setelah membiarkan sirkuit pengontrol duduk di papan tempat memotong roti selama berbulan-bulan, saya akhirnya merancang dan mengukir beberapa papan sirkuit untuk menyatukan prototipe ini. Semuanya berjalan dengan baik, saya tidak berpikir ada sesuatu yang akan saya lakukan secara berbeda.
Fitur Papan Sirkuit
- Register geser berada di papan terpisah yang dapat dirangkai dengan daisy chain untuk meningkatkan ukuran tampilan.
- Papan pengontrol memiliki pengatur daya sendiri sehingga ini dapat dijalankan oleh sumber daya apa pun yang menyediakan 7v-30v (baterai 9v atau catu bangku 12v keduanya berfungsi dengan baik untuk saya).
- Header ISP 6 pin disertakan sehingga mikrokontroler dapat diprogram ulang tanpa melepasnya dari board.
- Header 4-pin tersedia untuk penggunaan bus I2C di masa mendatang. Ini dapat digunakan untuk eeprom untuk menyimpan lebih banyak pesan atau bahkan menjadikan ini sebagai perangkat budak yang dikendalikan oleh mikrokontroler lain (ada RSS ticker siapa?)
- 3 tombol tekan sesaat disertakan dalam desain. Saya dapat mengubah firmware di masa mendatang untuk menyertakan penggunaan tombol-tombol ini.
perakitan
Beri saya kaca plexiglass, braket sudut, sekrup mesin 6x32, mur, dan ring, serta set keran untuk memasang lubang dan saya dapat membuat apa saja.
Hadiah Kedua di Let It Glow!
Direkomendasikan:
Mengontrol Tampilan Seven Segment Menggunakan Arduino dan Shift Register 74HC595: 6 Langkah
Mengontrol Tampilan Seven Segment Menggunakan Arduino dan Shift Register 74HC595: Hai, apa kabar, Guys! Akarsh di sini dari CETech.Tampilan Tujuh Segmen bagus untuk dilihat dan selalu merupakan alat yang berguna untuk menampilkan data dalam bentuk angka tetapi ada kekurangannya yaitu ketika kita mengontrol Tampilan Tujuh Segmen secara real
Penghitung Tampilan 7 Segmen Dengan Shift Register: 3 Langkah
Penghitung Tampilan 7 Segmen Dengan Register Geser: Ini adalah proyek pemula yang sempurna jika Anda baru belajar cara menggunakan register geser dan cara kerjanya dengan kode. Selain itu, proyek ini merupakan awal yang baik jika Anda baru mengenal tampilan 7 segmen. Sebelum Anda memulai proyek ini pastikan untuk p
Menggunakan 2 Shift Register (74HC595) untuk Menggerakkan 16 LED: 9 Langkah
Menggunakan 2 Shift Register (74HC595) untuk Drive 16 LED: Sirkuit ini akan menggunakan 2 shift register (74HC595). Shift register akan drive sebagai output 16 LED. Setiap register geser akan menggerakkan 8 LED. Register geser disambungkan sehingga setiap output register geser akan terlihat seperti duplikat dari yang lain
Menghubungkan Tampilan 7-Segmen Dengan Shift Register Menggunakan Mikrokontroler CloudX: 5 Langkah
Menghubungkan Tampilan 7-Segmen Dengan Shift Register Menggunakan Mikrokontroler CloudX: Dalam proyek ini kami menerbitkan tutorial tentang cara menghubungkan tampilan LED tujuh segmen dengan mikrokontroler CloudX. Tampilan tujuh segmen digunakan di banyak sistem tertanam dan aplikasi industri di mana kisaran output yang akan ditampilkan diketahui
Menggunakan LED Dot Matrix Dengan Arduino dan Shift Register: 5 Langkah
Menggunakan LED Dot Matrix Dengan Arduino dan Shift Register: LED Dot matrix DLO7135 Siemens adalah salah satu bagian optoelektronik yang menakjubkan. Ini disebut sebagai Tampilan Cerdas Dot Matrix 5x7 (r) dengan Memori/Dekoder/Driver. Bersamaan dengan memori itu, ada set layar ASCII 96 karakter dengan