İçindekiler:

Buton LED Matrisi: 4 Adım
Buton LED Matrisi: 4 Adım

Video: Buton LED Matrisi: 4 Adım

Video: Buton LED Matrisi: 4 Adım
Video: Arduino Text Scrolling Display | MAX7219 Dot Matrix 4-in-1 2024, Kasım
Anonim
Buton LED Matrisi
Buton LED Matrisi

Bu proje, tipik 'yanıp sönen bir LED' projenizden biraz daha gelişmiş olan başka bir Arduino tanıtım projesi olarak düşünülebilir. Bu proje, bir LED matrisi, butonlar, kaydırma yazmaçları (Arduino kartınızdaki pinleri kaydedebilen) ve çoğullama adı verilen bir anahtar kavramı içermektedir. Umarım öğreticiyi aydınlatıcı bulursunuz ve geliştirmek için kendinize meydan okursunuz!

Gereçler

(1x) Arduino Uno

(5x) Dokunsal Butonlar

(2x) 0.1 uF Kondansatörler

(2x) 1 uF Kapasitör

(8x) 1k Dirençler

(5x) 10k Dirençler

(2x) 74HC595 kaydırmalı yazmaçlar

Jumper Telleri

Siyah tel

Kırmızı kablo

Adım 1: Adım 1: Bir LED Matrisi Oluşturma

Adım 1: Bir LED Matrisi Oluşturma
Adım 1: Bir LED Matrisi Oluşturma
Adım 1: Bir LED Matrisi Oluşturma
Adım 1: Bir LED Matrisi Oluşturma
Adım 1: Bir LED Matrisi Oluşturma
Adım 1: Bir LED Matrisi Oluşturma

Bu projede 8x8 LED matrisini yapmak için kullandığım öğretici burada bulunabilir. Bir LED matrisi için yaygın konfigürasyonlar vardır:

a) Ortak Sıra Anot

b) Ortak Sıra Katot

Matrisin Ortak Satır Katot düzenlemesini kullandığım için, burada esas olarak tartışacağım ve aynı mantığı Ortak Sıra Anot düzenlemesine kadar genişletebilirsiniz. Ortak Sıra Katot düzenlemesinde, LED'lerin katotları (veya bir LED'deki daha kısa bacak olan negatif terminaller) sıralar halinde birbirine bağlanırken anotlar (veya bir LED'deki daha uzun bacak olan pozitif terminaller) sütunlar halinde birbirine bağlanır.. Belirli bir LED'i ele almak için, LED katodunun düşük olduğu katot sırasını ve LED anodunun yüksek olduğu anot sütununu çekin.

Not: Yukarıdaki linkte gösterilen LED matrisini yaparken, LED'lere herhangi bir miktarda voltaj uygulamadan önce anot kolonlarını 1k ohm dirençlerle bağladığınızdan emin olun.

Adım 2: Adım 2: Basmalı Düğmeleri ve Shift Kayıtlarını Kablolama

Adım 2: Basmalı Düğmeleri ve Shift Kayıtlarını Kablolama
Adım 2: Basmalı Düğmeleri ve Shift Kayıtlarını Kablolama
Adım 2: Basmalı Düğmeleri ve Shift Kayıtlarını Kablolama
Adım 2: Basmalı Düğmeleri ve Shift Kayıtlarını Kablolama
Adım 2: Basmalı Düğmeleri ve Shift Kayıtlarını Kablolama
Adım 2: Basmalı Düğmeleri ve Shift Kayıtlarını Kablolama
Adım 2: Basmalı Düğmeleri ve Shift Kayıtlarını Kablolama
Adım 2: Basmalı Düğmeleri ve Shift Kayıtlarını Kablolama

Basmalı düğmeler ve kaydırma yazmaçları için kablolama yukarıda gösterilmiştir. Devre şemasındaki kaydırma yazmaçlarının, yongalar için toprak (IC'nin pim 8'i) ve Vcc veya güç kaynağı (IC'nin 16 numaralı pimi) pimlerini göstermediğini belirtmek isterim; topraklama pini Arduino kartının GND pinine, Vcc ise Arduino kartının 5V pinine bağlanır. Her kaydırma yazmacının Vcc pimi ayrıca toprağa bağlı bir 0.1 uF kapasitöre bağlanır.

Not: Her kaydırma yazmacının çıktıları QA'dan QH'ye (QH* yoksay) olarak listelenir. Bunlar, en az anlamlı bit (LSB) (QA için) ile en anlamlı bit (MSB) (QH için) açısından listelenir, yani QA, 0. satırı veya sütunu vb. kontrol eder.

Adım 3: Adım 3: Kodu Yükleme

LED matrisini kontrol etme kodu bu eğiticiye eklenmiştir. Programın nasıl çalıştığını çok net görebilmek için elimden geldiğince kodu yorumlamaya çalıştım. Programın temel temeli, hangi LED'lerin açık veya kapalı olması gerektiğini takip eden bir matris olmasıdır. İstenmeyen diyotları yanlışlıkla açmadan çeşitli LED'lerin doğru bir şekilde görüntülenmesini sağlamak için çoğullama adı verilen bir kavram kullanmaktır. Çoğullama, esasen belirli bir sıradaki tek tek LED'leri, diğer sıralardaki diğer tüm LED'leri yakıyor, ardından kalan sıralar için aynısını yapıyor. İşin püf noktası, LED'ler sıralar arasında yeterince hızlı dönerse, gözleriniz tek tek sıraların birer birer yandığını söyleyebilir. LED'lerle gözlerinizi kandırmanın daha fazla yolunu keşfetmek istiyorsanız, görme kalıcılığı kavramına bakmak isteyebilirsiniz (Google'da veya Instructables'ta kolayca aranabilir).

Anot sütunlarının ve katot satırlarının güncellenme şekli, 'UpdateShiftRegisters' adı verilen kullanıcı tanımlı bir işlev aracılığıyladır. Bu fonksiyon ilk önce çıkışa yeni bir bayt (8 bit) gönderilip gönderilmediğini kontrol eden mandal pimini düşürür, böylece çipe yeni bitler yazılırken çıkışlarda herhangi bir değişiklik yapılması mümkün olmaz. Daha sonra, özel olarak kaydırma yazmaçlarına veri göndermeyi işleyen 'ShiftOut' adlı yerleşik bir Arduino işlevini kullanarak, program hangi (katot) satırın düşük ve hangi (anot) sütunlarının yüksek olması gerektiğini yazar. Son olarak, çıkışı (LED'leri) güncellemek için mandal pimi yukarı çekilir.

4. Adım: Ek Bilgiler/Kaynaklar

Bu projeyle ilgili ek bilgi verebilecek bazı web sitelerine veya kitaplara bağlantılar:

learn.adafruit.com/adafruit-arduino-lesson-4-eight-leds/arduino-code

www.arduino.cc/en/tutorial/ShiftOut

www.ti.com/lit/ds/symlink/sn74hc595.pdf

www.youtube.com/watch?v=7VYxcgqPe9A

www.youtube.com/watch?v=VxMV6wGS3NY

Arduino'ya Başlarken, Massimo Banzi'nin 2. Baskısı

Önerilen: