Talaan ng mga Nilalaman:

Pushbutton LED Matrix: 4 na Hakbang
Pushbutton LED Matrix: 4 na Hakbang

Video: Pushbutton LED Matrix: 4 na Hakbang

Video: Pushbutton LED Matrix: 4 na Hakbang
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Hulyo
Anonim
Pushbutton LED Matrix
Pushbutton LED Matrix

Ang proyektong ito ay maaaring isipin bilang isa pang panimulang proyekto ng Arduino na medyo mas advanced kaysa sa iyong tipikal na 'kumikislap na isang LED' na proyekto. Ang proyektong ito ay nagsasama ng isang LED matrix, pushbuttons, shift register (na maaaring makatipid ng mga pin sa iyong Arduino board), at isang pangunahing konsepto na tinatawag na multiplexing. Inaasahan kong makita mo ang tutorial na nagpapaliwanag at hamunin ang iyong sarili na pagbutihin ito!

Mga gamit

(1x) Arduino Uno

(5x) Mga Tactile Pushbuttons

(2x) 0.1 uF Capacitors

(2x) 1 uF Capacitors

(8x) 1k Resistors

(5x) 10k Resistors

(2x) 74HC595 paglilipat ng mga rehistro

Jumper Wires

Itim na Wire

Red Wire

Hakbang 1: Hakbang 1: Paggawa ng isang LED Matrix

Hakbang 1: Paggawa ng isang LED Matrix
Hakbang 1: Paggawa ng isang LED Matrix
Hakbang 1: Paggawa ng isang LED Matrix
Hakbang 1: Paggawa ng isang LED Matrix
Hakbang 1: Paggawa ng isang LED Matrix
Hakbang 1: Paggawa ng isang LED Matrix

Ang tutorial na ginamit ko upang gawin ang 8x8 LED matrix sa proyektong ito ay matatagpuan dito. Mayroong mga karaniwang pagsasaayos para sa isang LED matrix:

a) Karaniwang Row Anode

b) Karaniwang Row Cathode

Dahil ginamit ko ang pag-aayos ng Common Row Cathode ng matrix, higit sa lahat tatalakayin ko ito dito at maaari mong pahabain ang parehong lohika sa pag-aayos ng Common Row Anode. Sa pag-aayos ng Common Row Cathode, ang mga cathode ng LEDs (o mga negatibong terminal na mas maikli ang paa sa isang LED) ay magkakakonekta sa mga hilera habang ang mga anode (o mga positibong terminal na kung saan ang mas mahabang paa sa isang LED) ay magkakakonekta sa mga haligi. Upang matugunan ang isang partikular na LED, hilahin ang hilera ng cathode na ang LED cathode ay nasa mababang at hilahin ang haligi ng anode na nasa mataas ang LED anode.

Tandaan: Kapag ginagawa ang LED matrix na ipinakita sa link sa itaas, tiyaking ikonekta ang mga haligi ng anode sa mga resistor ng 1k ohm bago ilapat ang anumang dami ng boltahe sa mga LED.

Hakbang 2: Hakbang 2: Pag-kable ng Mga Pushbutton at Mga Rehistro ng Shift

Hakbang 2: Pag-kable sa Mga Pushbuttons at Shift Registro
Hakbang 2: Pag-kable sa Mga Pushbuttons at Shift Registro
Hakbang 2: Pag-kable sa Mga Pushbuttons at Shift Registro
Hakbang 2: Pag-kable sa Mga Pushbuttons at Shift Registro
Hakbang 2: Pag-kable sa Mga Pushbuttons at Shift Registro
Hakbang 2: Pag-kable sa Mga Pushbuttons at Shift Registro
Hakbang 2: Pag-kable sa Mga Pushbuttons at Shift Registro
Hakbang 2: Pag-kable sa Mga Pushbuttons at Shift Registro

Ang mga kable para sa mga pushbuttons at shift register ay ipinapakita sa itaas. Nais kong tandaan na ang paglilipat ng mga rehistro sa circuit diagram ay hindi ipinapakita ang ground (pin 8 ng IC) at Vcc o power supply (pin 16 ng IC) na mga pin para sa mga chips; ang ground pin ay konektado sa GND pin ng Arduino board at ang Vcc ay konektado sa 5V pin ng Arduino board. Ang Vcc pin ng bawat rehistro ng paglilipat ay konektado din sa isang 0.1uF capacitor na konektado sa lupa.

Tandaan: Ang mga output ng bawat rehistro ng paglilipat ay nakalista bilang QA hanggang QH (huwag pansinin ang QH *). Nakalista ang mga ito sa mga tuntunin ng hindi gaanong makabuluhang bit (LSB) (para sa QA) hanggang sa pinakamahalagang bit (MSB) (para sa QH) ibig sabihin ay makokontrol ng QA ang ika-0 na hilera o haligi, atbp.

Hakbang 3: Hakbang 3: Pag-upload ng Code

Ang code upang makontrol ang LED matrix ay nakakabit sa tutorial na ito. Sinubukan kong magkomento nang mas marami sa code hangga't maaari upang maging napakalinaw kung paano gumagana ang programa. Ang pangunahing batayan ng programa ay mayroong isang matrix na sinusubaybayan kung aling mga LED ang dapat na naka-on o naka-off. Upang maipakita nang tama ang iba't ibang mga LED nang hindi sinasadyang buksan ang mga hindi nais na diode ay ang paggamit ng isang konsepto na tinatawag na multiplexing. Ang multiplexing ay mahalagang pag-iilaw ng mga indibidwal na LED sa partikular na hilera habang ang lahat ng iba pang mga LED sa iba pang mga hilera, pagkatapos ay ginagawa ang pareho para sa natitirang mga hilera. Ang bilis ng kamay ay na kung ang cycle ng LEDs sa pamamagitan ng mga hilera mabilis na, ang iyong mga mata ay maaaring sabihin na ang mga indibidwal na mga hilera ay naiilawan nang paisa-isa. Kung nais mong galugarin ang higit pang mga paraan na maaari mong linlangin ang iyong mga mata sa mga LED, baka gusto mong tingnan ang konsepto ng pagtitiyaga ng paningin (madaling mahahanap sa Google o Mga Instructable).

Ang paraan ng pag-update ng mga haligi ng anode at mga row ng cathode ay sa pamamagitan ng isang function na tinukoy ng gumagamit na tinatawag na 'UpdateShiftRegisters'. Ang pagpapaandar na ito ay unang lumiliko ang aldaba pin, na kumokontrol kung ang isang bagong byte (8 bits) ay ipinadala sa output, mababa kaya walang mga pagbabago sa mga output na posible habang ang mga bagong piraso ay nakasulat sa maliit na tilad. Pagkatapos ay gumagamit ng built-in na function ng Arduino na tinatawag na 'ShiftOut', na partikular na humahawak sa pagpapadala ng data sa paglilipat ng mga rehistro, ang programa ay nagsusulat ng alinmang hilera (cathode) na magiging mababa at kung aling (anode) ang mga haligi ay dapat na mataas. Sa wakas, ang latch pin ay nakuha nang mataas upang mai-update ang output (ang mga LED).

Hakbang 4: Karagdagang Impormasyon / Mga Mapagkukunan

Narito ang ilang mga link sa mga website o libro na maaaring magbigay ng karagdagang impormasyon tungkol sa proyektong ito:

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

Pagsisimula sa Arduino, 2nd Edition ni Massimo Banzi

Inirerekumendang: