Isi kandungan:

Matriks LED Menggunakan Daftar Shift: 7 Langkah (dengan Gambar)
Matriks LED Menggunakan Daftar Shift: 7 Langkah (dengan Gambar)

Video: Matriks LED Menggunakan Daftar Shift: 7 Langkah (dengan Gambar)

Video: Matriks LED Menggunakan Daftar Shift: 7 Langkah (dengan Gambar)
Video: Cara Membuat LED 7 Segment CD4094 ULN2003 untuk Jam Digital 2024, November
Anonim
Matriks LED Menggunakan Shift Register
Matriks LED Menggunakan Shift Register
Matriks LED Menggunakan Shift Register
Matriks LED Menggunakan Shift Register
Matriks LED Menggunakan Shift Register
Matriks LED Menggunakan Shift Register

Pengajaran ini dimaksudkan untuk menjadi penjelasan yang lebih lengkap daripada yang lain yang terdapat dalam talian. Terutama, ini akan memberikan lebih banyak penjelasan perkakasan daripada yang terdapat dalam LED Marquee yang diarahkan oleh led555.

Matlamat

Instruksional ini mengemukakan konsep yang terlibat dengan register geser dan pemacu sisi tinggi. Dengan menggambarkan konsep ini dengan matriks LED 8x8, saya harap dapat menyediakan anda alat yang diperlukan untuk menyesuaikan diri dan memperluas ukuran dan susun atur yang diperlukan oleh projek anda.

Pengalaman dan Kemahiran

Saya menilai projek ini sebagai kesukaran sederhana:

  • Sekiranya anda sudah mempunyai pengalaman memprogram mikrokontroler dan bekerja dengan LED, projek ini semestinya cukup mudah untuk anda selesaikan dan skala hingga susunan lampu yang lebih besar.
  • Sekiranya anda baru memulakan dengan mikrokontroler dan telah menyalakan satu atau dua LED, anda seharusnya dapat menyelesaikan projek ini dengan bantuan rakan kami google.
  • Sekiranya anda mempunyai sedikit atau tanpa pengalaman dengan mikrokontroler atau pengaturcaraan, ini mungkin melebihi apa yang seharusnya anda lakukan. Cubalah beberapa projek pemula yang lain dan kembalilah apabila anda mempunyai lebih banyak pengalaman menulis program untuk mikrokontroler.

Penafian dan Kredit

Pertama, saya bukan jurutera elektrik. Sekiranya anda melihat sesuatu yang salah, atau bukan amalan terbaik, sila beritahu saya dan saya akan membuat pembetulan. Lakukan ini dengan risiko anda sendiri! Anda harus tahu apa yang anda lakukan atau anda boleh menyebabkan kerosakan pada komputer, mikrokontroler anda, dan juga diri anda. Saya telah belajar banyak perkara dari internet, terutamanya dari forum di: https://www.avrfreaks.netSaya menggunakan satu set fon yang disertakan dengan pustaka C universal ks0108. Lihat di sini:

Langkah 1: Bahagian

Senarai Bahagian

Bahagian Umum

Untuk membuat grid 8x8 LED dan mengawalnya, anda memerlukan:

  • 64 LED pilihan anda
  • 8 Perintang untuk LED
  • 1 Shift register untuk lajur
  • 1 Susunan pemacu untuk baris
  • 8 Perintang untuk menukar array pemacu
  • 1 mikrokontroler
  • 1 sumber jam untuk mikrokontroler
  • 1 papan prototaip
  • 1 bekalan kuasa
  • Kawat cangkuk

Bahagian Khusus Yang Digunakan Di Sini

Untuk pengajaran ini, saya menggunakan perkara berikut:

  • 64 LED hijau (Bahagian Mouser # 604-WP7113GD)
  • 8 220ohm 1/4 watt perintang untuk LED (Bahagian Mouser # 660-CFS1 / 4CT52R221J)
  • 1 pemandu LED HEF4794 dengan shift shift (Bahagian Mouser # 771-HEF4794BPN)
  • 1 mic2981 Array Pemacu Sumber Arus Arus Tinggi Tinggi (Bahagian Digikey # 576-1158-ND)
  • 8 3.3kohm 1/4 watt perintang untuk menukar array pemacu (Bahagian Radio Shack # 271-1328)
  • 1 mikrokontroler Atmel ATmega8 (Bahagian Mouser # 556-ATMEGA8-16PU)
  • 1 kristal 12MHz untuk sumber jam mikrokontroler (bahagian Mouser # 815-AB-12-B2)
  • 1 papan prototaip 2200 lubang (Bahagian Radio Shack # 276-147)
  • Bekalan kuasa ATX yang ditukar: Lihat Ini Boleh Diarahkan
  • Kawat penyambung 22-awg teras padat (Bahagian Radio Shack # 278-1221)
  • Papan roti solderless (Bahagian Radio Shack # 276-169 (tidak lagi tersedia, cuba: 276-002)
  • AVR Dragon (Bahagian Mouser # 556-ATAVRDRAGON)
  • Dragon Rider 500 oleh Ecros Technologies: Lihat Instruksinya

Catatan Mengenai Bahagian

Pemacu Baris dan Lajur: Mungkin bahagian yang paling sukar dalam projek ini adalah memilih pemacu baris dan lajur. Pertama, saya tidak fikir daftar pergeseran 74HC595 standard adalah idea yang baik di sini kerana mereka tidak dapat menangani jenis arus yang ingin dihantar melalui LED. Inilah sebabnya mengapa saya memilih pemacu HEF4794 kerana ia dapat dengan mudah menenggelamkan arus ketika semua 8 led dalam satu baris dihidupkan. Daftar pergeseran hadir di sebelah bawah (pin ground dari led). Kami memerlukan pemacu baris yang dapat memperoleh arus yang cukup untuk menyatukan beberapa lajur bersama. Mic2981 dapat membekalkan sehingga 500mA. Satu-satunya bahagian lain yang saya dapati yang menjalankan tugas ini adalah UDN2981 (bahagian digikey # 620-1120-ND) yang merupakan bahagian yang sama oleh pengeluar yang berbeza. Tolong hantarkan saya mesej jika anda mengetahui pemacu sisi tinggi lain yang berfungsi dengan baik dalam aplikasi ini. Matriks LED: Matriks ini berukuran 8x8 kerana pemacu baris dan lajur masing-masing mempunyai 8 pin. Susunan LED yang lebih besar mungkin dibina dengan memasukkan beberapa matriks bersama dan akan dibincangkan dalam langkah "konsep modular". Sekiranya anda mahukan susunan yang besar, pesan semua bahagian yang diperlukan dalam satu masa. Terdapat matriks LED 8x8, 5x7 dan 5x8 dalam satu pakej yang mudah. Ini semestinya mudah untuk menggantikan matriks diy. Ebay adalah sumber yang baik untuk ini. Mouser mempunyai beberapa unit 5x7 seperti bahagian # 604-TA12-11GWA. Saya menggunakan LED hijau murah kerana saya hanya bermain-main dan bersenang-senang. Membelanjakan lebih banyak pada LED dengan kecerahan tinggi, kecekapan tinggi dapat membolehkan anda menghasilkan paparan yang jauh lebih hebat … ini cukup baik untuk saya! Kawal Perkakasan: Matriks dikendalikan oleh mikrokontroler Atmel AVR. Anda memerlukan pengaturcara untuk ini. Kerana saya membuat prototaip, saya menggunakan Dragon Rider 500 yang mana saya telah menulis arahan pemasangan dan penggunaan. Ini adalah alat mudah untuk membuat prototaip dan saya sangat mengesyorkannya.

Langkah 2: Matriks

Matriks
Matriks
Matriks
Matriks
Matriks
Matriks

Saya akan membina matriks LED saya sendiri untuk projek ini menggunakan led 5mm dan papan prototaip dari Radio Shack. Perlu diingatkan bahawa anda boleh membeli modul 8x8 dot matrix led dari beberapa sumber, termasuk ebay. Mereka harus bekerja dengan baik dengan arahan ini.

Pertimbangan Pembinaan

Keselarasan LEDS perlu diselaraskan sehingga mereka menghadap ke arah yang sama pada sudut yang sama. Saya dapati pilihan paling mudah bagi saya ialah meletakkan badan LED pada papan dan memegangnya dengan sekeping kecil plexiglass dan penjepit. Saya meletakkan beberapa LED di tempat beberapa inci dari barisan yang saya kerjakan untuk memastikan plexiglass selari dengan papan prototaip. Baris dan LajurKita perlu mempunyai sambungan yang sama untuk setiap baris dan juga setiap lajur. Oleh kerana pilihan pemacu baris dan lajur kami perlu menghubungkan anod (timbal positif LED) dengan baris dan katod (timbal negatif LED) dihubungkan oleh lajur. Kawat KawalanUntuk prototaip ini saya menggunakan wayar cangkuk teras pepejal (konduktor tunggal). Ini sangat mudah untuk dihubungkan dengan papan roti tanpa solder. Jangan ragu untuk menggunakan jenis penyambung lain yang sesuai dengan projek anda.

Membina Matriks

1. Letakkan lajur pertama LEDS di papan prototaip.2. Periksa semula bahawa kekutuban anda untuk setiap LED betul, ini akan sangat sukar untuk diperbaiki jika anda menyedarinya nanti. Pateri kedua-dua petunjuk LED ke papan. Periksa untuk memastikan ia sejajar dengan betul (bukan pada sudut pelik) dan klipkan petunjuk katod. Pastikan anda tidak mengepit plumbum anod, kita memerlukannya kemudian jadi biarkan ia menunjuk ke atas. Tanggalkan penebat dari sekeping wayar teras pepejal. Pateri sekeping wayar ini ke setiap katod tepat di tingkat papan.

  • Saya mengetuk ini di setiap hujung kemudian kembali dan menambah sedikit pateri di setiap persimpangan.
  • Kawat ini seharusnya melepasi LED terakhir anda untuk membuat antara muka yang mudah apabila kami menambah wayar kawalan.

5. Ulangi bahagian 1-4 sehingga anda memasang semua LED dan semua bus lajur disolder.6. Untuk membuat bus baris, bengkokkan beberapa petunjuk anod pada sudut 90 darjah sehingga mereka menyentuh petunjuk anod yang lain pada baris yang sama.

  • Terdapat gambar terperinci di bawah ini.
  • Berhati-hatilah untuk tidak membiarkan ini bersentuhan dengan bas lajur, membuat litar pintas.

7. Pateri plumbum di setiap persimpangan dan potong lebihan plumbum anod.

Tinggalkan anod terakhir melepasi LED akhir. Ini akan digunakan untuk menyambungkan wayar kawalan pemacu baris

8. Ulangi bahagian 6 & 7 sehingga semua bas baris dipateri.9. Pasang wayar kawalan.

  • Saya menggunakan wayar teras pepejal merah untuk baris dan hitam untuk lajur.
  • Sambungkan satu wayar untuk setiap lajur dan satu untuk setiap baris. Ini dapat dilakukan dengan mudah di hujung setiap bas.

Penting

Matriks LED ini tidak mempunyai perintang had semasa. Sekiranya anda menguji ini tanpa perintang, anda mungkin akan memadamkan LED anda dan semua kerja ini akan menjadi sia-sia.

Langkah 3: Perkakasan Kawalan

Perkakasan Kawalan
Perkakasan Kawalan
Perkakasan Kawalan
Perkakasan Kawalan

Kita perlu mengawal lajur dan baris matriks LED kita. Matriks telah dibina sedemikian rupa sehingga Anodes (sisi voltan LED) membentuk baris, dan katod (sisi bawah LED) membentuk lajur. Ini bermaksud pemacu baris kami perlu mencari sumber semasa dan pemacu lajur kami perlu memasukkannya. Untuk menjimatkan pin, saya menggunakan shift shift untuk mengawal lajur. Dengan cara ini saya dapat mengawal bilangan lajur yang hampir tidak terhad dengan hanya empat pin mikrokontroler. Hanya boleh menggunakan tiga jika pin Enable Output diikat terus ke voltan. Saya telah memilih pemacu LED HEF4794 dengan shift shift. Ini adalah pilihan yang lebih baik daripada 74HC595 standard kerana ia dapat dengan mudah merendahkan arus semasa semua 8 LED menyala pada satu masa. Di sisi tinggi (sumber arus untuk baris) saya menggunakan mic2981. Skema menunjukkan UDN2981, saya percaya kedua-duanya boleh ditukar ganti. Pemacu ini dapat menghasilkan arus sehingga 500mA. Kerana kami hanya menggerakkan 1 baris pada satu masa, ini memberi banyak peluang untuk pengembangan, hingga 33 lajur untuk cip ini (lebih banyak lagi pada langkah "konsep modular").

Membina Perkakasan Kawalan

Untuk instruksional ini, saya baru sahaja membuat papan litar ini. Untuk penyelesaian yang lebih kekal, anda boleh menggunakan papan litar anda sendiri atau menggunakan papan prototaip. Pemandu Row

  • Letakkan mic2981 (atau UDN2981) di papan roti
  • Sambungkan Pin 9 ke Voltan (Ini membingungkan dalam skema)
  • Sambungkan Pin 10 ke Tanah (Ini membingungkan dalam skema)
  • masukkan perintang 3k3 yang menyambung ke pin 1-8
  • Sambungkan dari Port D ATmega8 (PD0-PD8) ke 8 perintang
  • Sambungkan wayar kawalan 8 baris matriks LED ke pin 11-18 (perhatikan bahawa saya telah menghubungkan baris LED terendah ke Pin 18 dan baris Tertinggi ke Pin 11).

2. Pemacu Lajur

  • Letakkan hef4794 di papan roti
  • Sambungkan Pin 16 ke voltan
  • Sambungkan Pin 8 ke tanah
  • Sambungkan perintang 220 ohm ke Pin 4-7 dan 11-14.
  • Sambungkan wayar kawalan 8 lajur dari matriks LED ke 8 perintang yang baru anda sambungkan.
  • Sambungkan Pin1 (Latch) ke PC0 ATmega8
  • Sambungkan Pin2 (Data) ke PC1 ATmega8
  • Sambungkan Pin3 (Jam) ke PC2 ATmega8
  • Sambungkan Pin15 (Aktifkan Output) ke PC3 ATmega8

3. Jam Kristal

Sambungkan kapasitor kristal dan beban 12MHz seperti yang ditunjukkan dalam skema

4. ISP

Sambungkan tajuk pengaturcaraan seperti yang ditunjukkan dalam skema

5. Penapis Kapasitor dan Pull-up perintang

  • Lebih baik menapis voltan yang dibekalkan ke ATmega8. Gunakan kapasitor 0.1uf antara Pin 7 & 8 ATmega8
  • Pin tetapan semula tidak boleh dibiarkan mengambang kerana boleh menyebabkan tetapan semula secara rawak. Gunakan perintang untuk menyambungkannya ke voltan, apa-apa kira-kira 1k mestilah baik. Saya telah menggunakan perintang 10k dalam skema.

6. Pastikan anda menggunakan kuasa terkawal + 5v. Terserah anda untuk merancang pengatur.

Langkah 4: Perisian

Muslihat

Ya, seperti semuanya, ada muslihat. Caranya ialah tidak ada lebih dari 8 LED yang menyala dalam satu masa. Agar ini dapat berjalan dengan baik, diperlukan sedikit pengaturcaraan yang bijak. Konsep yang saya pilih adalah dengan menggunakan pemasa interrupt. Inilah cara gangguan paparan berfungsi dalam bahasa Inggeris biasa:

  • Pemasa mengira hingga titik tertentu, ketika dicapai rutin perkhidmatan gangguan dijalankan.
  • Rutin ini memutuskan baris mana yang berikutnya akan dipaparkan.
  • Maklumat untuk baris berikutnya dicari dari penyangga dan dialihkan ke pemacu lajur (maklumat ini tidak "terkunci" sehingga belum dipaparkan).
  • Pemacu baris dimatikan, LED tidak menyala pada masa ini.
  • Pemacu lajur "terkunci" membuat maklumat yang kami beralih dalam dua langkah lalu maklumat semasa untuk dipaparkan.
  • Pemacu baris kemudian memberikan arus ke baris baru yang kami paparkan.
  • Rutin perkhidmatan gangguan berakhir dan program kembali ke aliran normal sehingga gangguan seterusnya.

Ini berlaku dengan sangat cepat. Gangguan dilemparkan setiap 1 mSec. Ini bermaksud bahawa kita menyegarkan keseluruhan paparan sekitar 8 mSec sekali. Ini bermaksud kadar paparan sekitar 125Hz. Terdapat beberapa kebimbangan mengenai kecerahan kerana pada dasarnya kita menjalankan LED pada kitaran tugas 1/8 (mereka mati 7/8 pada masa itu). Dalam kes saya, saya mendapat paparan yang cukup terang tanpa kelihatan berkelip. Paparan LED penuh dipetakan dalam array. Di antara interupsi, array boleh diubah (perhatikan atomicity) dan akan muncul di paparan semasa gangguan berikutnya. Spesifikasi menulis kod untuk mikrokontroler AVR dan cara menulis kod untuk bercakap dengan register shift berada di luar ruang lingkup ini boleh diajar. Saya telah memasukkan kod sumber (ditulis dalam C dan disusun dengan AVR-GCC) serta fail hex untuk diprogramkan secara langsung. Saya telah mengomentari semua kod tersebut sehingga anda seharusnya dapat menggunakannya untuk membersihkan sebarang pertanyaan tentang bagaimana memasukkan data ke dalam shift shift dan bagaimana penyegaran baris berfungsi. Harap maklum bahawa saya menggunakan fail fon yang disertakan dengan perpustakaan ks0108 universal C. Perpustakaan itu boleh didapati di sini: https://en.radzio.dxp.pl/ks0108/Kemas kini:

Daftar Shift: Bagaimana

Saya telah memutuskan untuk menambah sedikit mengenai cara memprogram dengan register shift. Saya harap ini dapat menyelesaikan masalah bagi mereka yang belum pernah bekerja dengan mereka sebelumnya. Apa yang mereka lakukan Shift Register mengambil isyarat dari satu wayar dan mengeluarkan maklumat itu ke banyak pin yang berbeza. Dalam kes ini, ada satu wayar data yang memasukkan data dan 8 pin yang dikendalikan bergantung pada data apa yang telah diterima. Untuk membuat sesuatu menjadi lebih baik, ada jalan keluar untuk setiap daftar shift yang dapat dihubungkan ke pin input dari register shift lain. Ini disebut cascading dan menjadikan potensi pengembangan menjadi prospek yang hampir tidak terbatas. Daftar Control PinsShift mempunyai 4 pin kawalan:

  • Latch - Pin ini memberitahu shift shift ketika tiba masanya untuk beralih ke data yang baru dimasukkan
  • Data - Angka 1 dan 0 memberitahu shift mendaftar pin yang hendak diaktifkan diterima pada pin ini.
  • Jam - Ini adalah nadi yang dihantar dari mikrokontroler yang memberitahu shift register untuk mengambil bacaan data dan beralih ke langkah seterusnya dalam proses komunikasi
  • Dayakan Output - Ini adalah suis hidup / mati, Tinggi = Hidup, Rendah = Mati

Membuatnya menjadi pilihan anda: Berikut adalah kursus kemalangan dalam pengendalian pin kawalan di atas: Langkah 1: Tetapkan Latch, Data, dan Jam rendah

Menetapkan Latch rendah memberitahu daftar shift yang akan kita tulis kepadanya

Langkah 2: Tetapkan pin Data ke nilai logik yang ingin anda kirim ke Shift RegisterLangkah 3: Tetapkan pin Jam tinggi, memberitahu Shift Register untuk membaca nilai pin Data semasa

Semua nilai lain yang ada di Shift Register akan berpindah 1 tempat, memberi ruang untuk nilai logik pin Data saat ini

Langkah 4: Tetapkan pin Jam Rendah dan ulangi langkah 2 dan 3 sehingga semua data telah dihantar ke daftar shift.

Pin jam mesti ditetapkan rendah sebelum beralih ke nilai Data seterusnya. Mengganti pin ini antara tinggi dan rendah inilah yang membuat "denyut jam" yang perlu diketahui oleh pergeseran register kapan harus beralih ke langkah seterusnya dalam proses tersebut

Langkah 5: Tetapkan Latch tinggi

Ini memberitahu shift register untuk mengambil semua data yang telah dialihkan dan menggunakannya untuk mengaktifkan pin output. Ini bermaksud bahawa anda tidak akan melihat data kerana data tersebut beralih; tiada perubahan pada pin output akan berlaku sehingga Latch ditetapkan tinggi

Langkah 6: Tetapkan Keluaran Aktif tinggi

  • Tidak akan ada output pin sehingga Enable Output ditetapkan ke tinggi, tidak kira apa yang berlaku dengan tiga pin kawalan yang lain.
  • Pin ini selalu boleh ditinggalkan tinggi jika anda mahu

Terdapat dua pin yang boleh anda gunakan untuk lata, Os dan Os1. Os adalah untuk jam yang cepat naik dan Os1 untuk jam yang naik dengan perlahan. Hubungkan pin ini ke pin data dari register shift seterusnya dan limpahan dari cip ini akan dimasukkan ke yang seterusnya.

Menghadap paparan

Dalam program contoh saya telah membuat susunan 8 bait yang disebut row_buffer . Setiap bait sesuai dengan satu baris paparan 8x8, baris 0 berada di bawah dan baris 7 berada di atas. Sebilangan kecil yang paling ketara dari setiap baris adalah di sebelah kanan, bit yang paling ketara di sebelah kiri. Mengubah paparan semudah menulis nilai baru pada array data tersebut, rutin layanan gangguan menjaga penyegaran paparan.

Pengaturcaraan

Pengaturcaraan tidak akan dibincangkan secara terperinci di sini. Saya akan memberi amaran kepada anda untuk tidak menggunakan kabel pengaturcaraan DAPA kerana saya percaya anda tidak akan dapat memprogramkan cip tersebut apabila ia berjalan pada 12MHz. Semua pengaturcara standard yang lain harus berfungsi (STK500, MKII, Dragon, Pengaturcara Selari / Bersiri, dll.) Sekering: Pastikan memprogram sekering untuk menggunakan fius kristal 12MHz: 0xC9lfuse: 0xEF

Dalam Tindakan

Setelah anda memprogram cip, paparan akan menatal "Hello World!". Berikut adalah video matrik LED dalam tindakan. Kualiti video agak rendah kerana saya membuat ini dengan ciri video kamera digital saya dan bukan video atau kamera web yang betul.

Langkah 5: Konsep Modular

Konsep Modular
Konsep Modular
Konsep Modular
Konsep Modular
Konsep Modular
Konsep Modular
Konsep Modular
Konsep Modular

Projek ini boleh ditingkatkan. Satu-satunya faktor pembatas adalah berapa banyak arus bekalan elektrik anda dapat menyediakan. (Kenyataan lain ialah berapa banyak LED dan pemindah pendaftaran yang anda ada).

Matematik

Saya menggerakkan LED sekitar 15mA (5V-1.8vDrop / 220ohms = 14.5mA). Ini bermakna saya boleh memandu hingga 33 lajur dengan pemacu mic2981 (500mA / 15mA = 33.3). Dibahagi dengan 8 kita dapat melihat bahawa ini membolehkan kita menyatukan 4 register shift. Juga pertimbangkan bahawa anda tidak perlu meregangkan 32 lajur dari kiri ke kanan. Anda boleh membuat susunan 16x16 yang disusun dengan cara yang sama seperti susunan 8x32. Ini akan ditangani dengan beralih dalam 4 bait…. dua yang pertama akan beralih ke led untuk baris ke-9, dua bait kedua akan beralih ke baris pertama. Kedua-dua baris akan bersumber dari satu pin pada pemandu baris.

Daftar Peralihan Bertingkat

Register shift yang digunakan adalah register shift cascading. Ini bermakna bahawa apabila anda beralih data, limpahan muncul pada pin Os. Ini menjadi sangat berguna kerana satu set register shift dapat dihubungkan satu sama lain, pin Os ke pin Data, menambahkan 8 lajur dengan setiap cip baru. Semua register shift akan menyambung ke pin Latch, Clock, dan Enable Output yang sama pada pengawal mikro. Kesan "cascading" dibuat apabila Os register shift pertama disambungkan ke pin Data yang kedua. Pengaturcaraan perlu diubah untuk mencerminkan peningkatan jumlah lajur. Baik penyangga yang menyimpan maklumat dan fungsi yang mengalihkan maklumat untuk setiap lajur perlu dikemas kini untuk mencerminkan jumlah lajur yang sebenarnya. Skema ini diberikan di bawah sebagai contoh.

Pemacu berbilang baris

Pemacu baris (mic2981) dapat menghasilkan arus yang cukup untuk memacu 32 lajur. Bagaimana jika anda mahukan lebih daripada 32 lajur? Mungkin menggunakan pemacu berbaris berganda tanpa menggunakan pin mikrokontroler. Kami memerlukan pemacu baris untuk mendapatkan arus yang cukup untuk menyalakan LED. Sekiranya anda menggunakan lebih banyak lajur daripada yang mungkin untuk menyala pada satu masa, pemacu baris tambahan dapat membekalkan arus yang diperlukan. Pin input yang sama dari mikrokontroler digunakan sehingga tidak perlu mengubah pengimbasan baris. Dengan kata lain, setiap pemandu mengawal baris untuk blok 8x32. Walaupun 64 lajur mungkin mempunyai penempatan baris FIZIKAL yang sama, kami membahagikan bas baris menjadi dua, menggunakan satu pemacu untuk 8 baris dari 32 lajur pertama, dan pemacu kedua untuk 8 baris dari 32 lajur kedua dan seterusnya. Skema ini diberikan di bawah sebagai contoh. Kesalahan Potensi: 1. Jangan gunakan pemacu berbilang baris dengan bilangan lajur yang sama. Melakukannya bermaksud setiap pin register shift akan menggerakkan lebih dari satu LED pada satu masa.2. Anda mesti mempunyai satu set 8 perintang (3k3) untuk setiap pemacu baris, satu set untuk pemacu pelbagai baris tidak akan berfungsi kerana ia tidak akan menyediakan arus yang diperlukan untuk menukar pintu.

Sebagai contoh

Saya memutuskan untuk mengembangkan matriks yang saya bina sebelumnya. Saya telah menambah 7 baris lagi untuk keseluruhan 15 kerana hanya itu yang dapat saya muatkan di protoboard ini. Saya juga baru mengetahui tentang pertandingan yang dilakukan Instructables yang disebut "Let it Glow". Berikut adalah video pengambilan saya mengenai perkara itu. Sekali lagi, kamera digital yang saya gunakan untuk mengambil video tidak melakukannya dengan adil. Ini kelihatan bagus untuk mata manusia, terutama di mana semua LED berkelip, tetapi tidak kelihatan sama hebatnya dalam video. Nikmati: Kod sumber untuk paparan yang lebih besar ini disertakan di bawah.

Langkah 6: Kesimpulannya

Kemungkinan Penambahan

I2CI telah meninggalkan pin Two Wire Interface (I2C) yang tidak digunakan dalam reka bentuk ini. Terdapat beberapa prospek menarik yang dapat menggunakan dua pin ini. Penambahan EEPROM I2C akan memungkinkan untuk menyimpan mesej yang jauh lebih besar. Terdapat juga prospek merancang pengaturcaraan untuk mengubah mega8 menjadi pemacu paparan yang serasi dengan I2C. Ini akan membuka kemungkinan mempunyai peranti yang membolehkan USB untuk menampilkan data pada array LED anda dengan menyebarkannya melalui bus I2C. Masukan Ada banyak pin yang tersisa yang dapat digunakan untuk butang atau penerima IR. Ini akan membolehkan mesej diprogramkan melalui sistem menu. Paparan Untuk arahan ini, saya hanya melaksanakan beberapa fungsi paparan. Satu hanya menulis watak ke paparan, yang lain menatal watak ke paparan. Perkara penting yang perlu diingat adalah bahawa apa yang anda lihat dalam lampu ditunjukkan dalam array data. Sekiranya anda mempunyai kaedah pintar untuk menukar susunan data, lampu akan berubah dengan cara yang sama. Beberapa peluang yang menggembirakan termasuk membuat meter grafik dari lajur. Ini dapat digunakan sebagai penganalisis isyarat dengan stereo. Scrolling dapat dilaksanakan dari atas ke bawah atau bawah ke atas, bahkan dari kiri ke kanan. Semoga berjaya dan bergembira!

Langkah 7: Susulan

Susulan
Susulan
Susulan
Susulan
Susulan
Susulan
Susulan
Susulan

Setelah membiarkan litar pengawal duduk di papan roti selama berbulan-bulan saya akhirnya merancang dan mengukir beberapa papan litar untuk menyusun prototaip ini. Semuanya berjalan dengan baik, saya rasa tidak ada yang akan saya lakukan dengan cara yang berbeza.

Ciri-ciri Papan Litar

  • Daftar pergeseran ada di papan berasingan yang dapat dirantai bersama daisy untuk meningkatkan ukuran paparan.
  • Papan pengawal mempunyai pengatur kuasa sendiri sehingga ini dapat dikendalikan oleh mana-mana sumber kuasa yang menyediakan 7v-30v (bateri 9v atau bekalan bangku 12v kedua-duanya berfungsi dengan baik untuk saya).
  • Header ISP 6 pin disertakan sehingga mikrokontroler dapat diprogramkan semula tanpa mengeluarkannya dari papan.
  • Header 4-pin tersedia untuk penggunaan bas I2C di masa hadapan. Ini boleh digunakan untuk eeprom untuk menyimpan lebih banyak mesej atau bahkan untuk menjadikan ini alat hamba yang dikendalikan oleh mikrokontroler lain (RSS ticker sesiapa?)
  • 3 butang tekan sesaat termasuk dalam reka bentuk. Saya mungkin mengubah firmware pada masa akan datang untuk memasukkan penggunaan butang ini.

perhimpunan

Beri saya plexiglass, pendakap sudut, skru mesin 6x32, mur, dan mesin basuh, serta set paip ke lubang benang dan saya boleh membuat apa sahaja.

Hadiah Kedua dalam Let It Glow!

Disyorkan: