Isi kandungan:

Matrik LED Pushbutton: 4 Langkah
Matrik LED Pushbutton: 4 Langkah

Video: Matrik LED Pushbutton: 4 Langkah

Video: Matrik LED Pushbutton: 4 Langkah
Video: How a keypad works - 4x4 button keypad matrix tutorial 2024, Julai
Anonim
Matrik LED tekan butang
Matrik LED tekan butang

Projek ini boleh dianggap sebagai projek Arduino pengantar lain yang sedikit lebih maju daripada projek 'berkedip LED' khas anda. Projek ini menggabungkan matriks LED, tombol tekan, register shift (yang dapat menjimatkan pin pada papan Arduino anda), dan konsep utama yang disebut multiplexing. Saya harap anda dapati tutorial ini memberi pencerahan dan mencabar diri anda untuk memperbaikinya!

Bekalan

(1x) Arduino Uno

(5x) Tombol Tekan Taktil

(2x) Kapasitor 0.1 uF

(2x) 1 Kapasitor uF

(8x) 1k Perintang

(5x) Perintang 10k

(2x) register shift 74HC595

Wayar Pelompat

Kawat Hitam

Kawat Merah

Langkah 1: Langkah 1: Membuat Matriks LED

Langkah 1: Membuat Matriks LED
Langkah 1: Membuat Matriks LED
Langkah 1: Membuat Matriks LED
Langkah 1: Membuat Matriks LED
Langkah 1: Membuat Matriks LED
Langkah 1: Membuat Matriks LED

Tutorial yang saya gunakan untuk membuat matriks LED 8x8 dalam projek ini boleh didapati di sini. Terdapat konfigurasi biasa untuk matriks LED:

a) Anod Baris Biasa

b) Katod Baris Biasa

Oleh kerana saya menggunakan susunan matriks Common Row Cathode, saya akan membincangkannya di sini dan anda boleh memperluas logik yang sama dengan susunan Common Row Anode. Dalam susunan Common Row Cathode, katod LED (atau terminal negatif yang merupakan kaki yang lebih pendek pada LED) disambungkan bersama dalam baris sementara anod (atau terminal positif yang kaki lebih panjang pada LED) disambungkan bersama dalam lajur. Untuk mengatasi LED tertentu, tarik baris katod yang katod LED berada di bawah dan tarik lajur anod di mana anod LED berada pada ketinggian.

Catatan: Semasa membuat matriks LED yang ditunjukkan dalam pautan di atas, pastikan untuk menyambungkan lajur anod dengan perintang 1k ohm sebelum menerapkan jumlah voltan ke LED.

Langkah 2: Langkah 2: Memasang Tombol Tekan dan Shift

Langkah 2: Memasang Butang Push dan Shift Register
Langkah 2: Memasang Butang Push dan Shift Register
Langkah 2: Memasang Butang Push dan Shift Register
Langkah 2: Memasang Butang Push dan Shift Register
Langkah 2: Memasang Butang Push dan Shift Register
Langkah 2: Memasang Butang Push dan Shift Register
Langkah 2: Memasang Butang Push dan Shift Register
Langkah 2: Memasang Butang Push dan Shift Register

Pendawaian untuk menekan butang dan register shift ditunjukkan di atas. Saya ingin perhatikan bahawa register pergeseran dalam rajah litar tidak menunjukkan pin ground (pin 8 of the IC) dan Vcc atau power supply (pin 16 of the IC) untuk cip; pin ground disambungkan ke pin GND papan Arduino dan Vcc disambungkan ke pin 5V papan Arduino. Pin Vcc setiap register shift juga disambungkan ke kapasitor 0.1uF yang disambungkan ke tanah.

Catatan: Keluaran setiap daftar peralihan disenaraikan sebagai QA ke QH (abaikan QH *). Mereka disenaraikan dalam bentuk bit paling tidak signifikan (LSB) (untuk QA) hingga bit paling signifikan (MSB) (untuk QH) iaitu QA akan mengawal baris ke-0 atau lajur, dll.

Langkah 3: Langkah 3: Memuat naik Kod

Kod untuk mengawal matriks LED dilampirkan pada tutorial ini. Saya cuba mengulas seberapa banyak kod yang saya boleh sehingga akan sangat jelas bagaimana program ini berfungsi. Asas utama program ini adalah terdapat matriks yang mengawasi LED mana yang harus dihidupkan atau dimatikan. Untuk menampilkan pelbagai LED dengan betul tanpa menyalakan dioda yang tidak diingini adalah menggunakan konsep yang disebut multiplexing. Multiplexing pada dasarnya menyalakan LED individu pada baris tertentu sementara semua LED lain dalam baris lain, kemudian melakukan perkara yang sama untuk baris yang tinggal. Caranya ialah jika LED berpusing melalui baris dengan cukup cepat, mata anda dapat mengetahui bahawa setiap baris menyala satu demi satu. Sekiranya anda ingin meneroka lebih banyak cara untuk menipu mata anda dengan LED, anda mungkin ingin melihat konsep kegigihan penglihatan (mudah dicari di Google atau Instructables).

Cara lajur anod dan baris katod diperbaharui adalah melalui fungsi yang ditentukan pengguna yang disebut 'UpdateShiftRegisters'. Fungsi ini pertama kali memutar pin kait, yang mengawal jika bait baru (8 bit) dikirim ke output, rendah sehingga tidak ada perubahan pada output yang mungkin sementara bit baru sedang ditulis ke cip. Kemudian menggunakan fungsi Arduino bawaan yang disebut 'ShiftOut', yang secara khusus menangani pengiriman data ke shift shift, program menulis baris mana (katod) mana yang rendah dan lajur (anod) mana yang tinggi. Akhirnya, pin kait ditarik tinggi sehingga untuk mengemas kini output (LED).

Langkah 4: Maklumat / Sumber Tambahan

Berikut adalah beberapa pautan ke laman web atau buku yang mungkin memberikan maklumat tambahan mengenai projek ini:

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

Bermula dengan Arduino, Edisi ke-2 oleh Massimo Banzi

Disyorkan: