0% found this document useful (0 votes)
245 views6 pages

Instructable LED Dot Matrix Display

This document describes how to create an 8x8 LED dot matrix display using an Arduino. It explains the concept of multiplexing, which allows individual LEDs to be controlled within the matrix without lighting other LEDs in the same row or column. The document provides instructions on the components needed, how to connect and code an Arduino to display an animation on the matrix.

Uploaded by

apofview
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
245 views6 pages

Instructable LED Dot Matrix Display

This document describes how to create an 8x8 LED dot matrix display using an Arduino. It explains the concept of multiplexing, which allows individual LEDs to be controlled within the matrix without lighting other LEDs in the same row or column. The document provides instructions on the components needed, how to connect and code an Arduino to display an animation on the matrix.

Uploaded by

apofview
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Explore (/tag/typeid/)

(/)
(/)

Create (/about/submit.jsp)

Contests
let's make (/contest/)

Community (/community/)
You (/you/)

share what you make >


(/editInstructable/)

(/id/intel/)

(/tag/typeid/categoryliving/channelreuse/?sort=FEATURED)
(/tag/typeid/categoryoutside/channelcamping/?sort=FEATU
(/tag/typeid/categorytechnology/chann

LEDDotMatrixDisplay bykapilgupta(/member/kapil+gupta/)
Download(/id/LEDDotMatrixDisplay1/?download=pdf)

(/id/LEDDotMatrixDisplay1/)
Collection

5Steps

IMadeit!

Favorite

Share

AboutThisInstructable
108,869views

Posted:
Aug4,2012

93favorites

License:
General
Public
License

kapilgupta
(/member/kapil+gupta/)

(http://cdn.instructables.com/FKA/PMYU/H5408HGO/FKAPMYUH5408HGO.LARGE.jpg)

Follow

Inthisproject,youshallagainusetwosetsofshiftregisters.Thesewillbe
connectedtotherowsand
columnsofthedotmatrixdisplay.Youwillthenshowasimpleobject,orsprite,
onthedisplayand
animateit.Themainaimofthisprojectistoshowyouhowadotmatrixdisplay
worksandintroducethe
conceptofmultiplexingbecausethisisaninvaluableskilltohave.

11

(/member/kapil+gupta/)
Bio: IamtheTechnologyloveralways
doinginterstingandinnovativestuff.
Subscribingtome=fun+excitement
!!!!!!!!!
Morebykapilgupta

(/id/RCMOODLYTE)

Led Matrix.mp4

(/id/ScopeclockAnalog
ClockAndTemperaturesensor)
Tags:
ledmatrix(/tag/typeid/categorytechnology/keyword
led+matrix/)
arduino(/tag/typeid/categorytechnology/keyword
arduino/)
multiplexing(/tag/typeid/category
technology/keywordmultiplexing/)
scrollingtext(/tag/typeid/category
technology/keywordscrolling+text/)
8x8matrix(/tag/typeid/categorytechnology/keyword
8x8+matrix/)

Step1:ThingsRequired

Addinstructableto:
Group

Related
LEDMatrixTest1using
anAS1107IC(/id/LED
MatrixTest1usingan
AS1107IC/)
byTheArduinoGuy

AutomatedCandy
Dispenser(/id/Automated
CandyDispenser1/)
bymarkarichard
(/member/markarichard/)
(http://cdn.instructables.com/F3Y/VORM/H5408HNM/F3YVORMH5408HNM.LARGE.jpg)

7BicolorLEDMatrix
ScrollingTextDisplay
(/id/7BicolorLEDMatrix
ScrollingTextDisplay/)
byjollifactory

forthisprojectyouwillrequire:

VoiceInputArduinoBi
colorLEDMatrixScrolling
TextDisplay(Bluetooth+

1.1LEDmatrix
2.8resistors1kohm
3.8557transistors
4.1ULN2803IC
5Arduino
6.274HC595shiftregister
7.2Breadboard
8.ConnectingWires

Step2:Working
Dotmatrixunitstypicallycomeineithera5x7or8x8matrixofLEDs.TheLEDs
arewiredinthe
matrixsuchthateithertheanodeorcathodeofeachLEDiscommonineach
row.Inotherwords,ina
commonanodeLEDdotmatrixunit,eachrowofLEDswouldhavealloftheir
anodesinthatrowwired
together.ThecathodesoftheLEDswouldallbewiredtogetherineachcolumn.
Thereasonforthiswill
becomeapparentsoon.
Atypicalsinglecolor8x8dotmatrixunitwillhave16pins,8foreachrowand8
foreachcolumn.
Thereasontherowsandcolumnsareallwiredtogetheristominimizethe
numberofpinsrequired.
Ifthiswerenotthecase,asinglecolor8x8dotmatrixunitwouldneed65pins,
oneforeachLEDanda
commonanodeorcathodeconnector.Bywiringtherowsandcolumnstogether,
only16pinsare
required.
However,thisnowposesaproblemifyouwantaparticularLEDtolightina
certainposition.If,for
example,youhadacommonanodeunitandwantedtolighttheLEDatX,Y
position5,3(5thcolumn,
3rdrow),thenyouwouldapplyacurrenttothe3rdRowandgroundthe5th
columnpin.
TheLEDinthe5thcolumnand3rdrowwouldnowlight.
NowletsimaginethatyouwanttoalsolighttheLEDatcolumn3,row6.Soyou
applyacurrentto
the6throwandgroundthe3rdcolumnpin.TheLEDatcolumn3,row6now
illuminates.Butwaitthe
LEDsatcolumn3,row6andcolumn5,row6havealsolitup.

Thisisbecauseyouareapplyingpowertorow3and6andgroundingcolumns
3and5.Youcant
turnofftheunwantedLEDswithoutturningofftheonesyouwanton.Itwould
appearthatthereisno
wayyoucanlightjustthetworequiredLEDswiththerowsandcolumnswired
togetherastheyare.The
onlywaythiswouldworkwouldbetohaveaseparatepinoutforeachLED,
meaningthenumberofpins
wouldjumpfrom16to65.A65pindotmatrixunitwouldbeveryhardtowireup
andcontrolbecause
youdneedamicrocontrollerwithatleast64digitaloutputs.
Isthereawaytogetaroundthisproblem?Yesthereis,anditiscalled
multiplexing(ormuxing).

Multiplexingisthetechniqueofswitchingonerowofthedisplayonatatime.
Byselectingthecolumn
thatcontainstherowthatcontainstheLEDthatyouwanttobelit,andthen
turningthepowertothat
rowon(ortheotherwayroundforcommoncathodedisplays),thechosenLEDs
inthatrowwill
illuminate.Thatrowisthenturnedoffandthenextrowisturnedon,againwith
theappropriate
columnschosenandtheLEDsinthesecondrowwillnowilluminate.Repeat
witheachrowtillyougetto

Android)(/id/VoiceInput
ArduinoLEDScrolling
Text~Simple&Easy
(/id/ArduinoLED
ScrollingTextSimple
Easy/)
SeeMore(/tag/typeid/?q=)

thebottomandthenstartagainatthetop.
Ifthisisdonefastenough(atmorethan100Hz,or100timespersecond)then
thephenomenonof
persistenceofvision(whereanafterimageremainsontheretinaforapprox
1/25thofasecond)willmean
thatthedisplaywillappeartobesteady,eventhougheachrowisturnedonand
offinsequence.
Byusingthistechnique,yougetaroundtheproblemofdisplayingindividual
LEDswithoutthe
otherLEDsinthesamecolumnorrowalsobeinglit.
ByscanningdowntherowsandilluminatingtherespectiveLEDsineachcolumn
ofthatrowand
doingthisveryfast(morethan100Hz)thehumaneyewillperceivetheimageas
steadyandtheimageof
theheartwillberecognizableintheLEDpattern.
YouareusingthismultiplexingtechniqueintheProject'scode.Thatshow
youretodisplaythe
heartanimationwithoutalsodisplayingextraneousLEDs.

Step3:

(http://cdn.instructables.com/FQ9/QFFJ/H54064CC/FQ9QFFJH54064CC.LARGE.jpg)

youhavetocalculatethevalueoftheresistorsyoucanuse
YoushouldfirstgetsomespecsonyourLEDs,youshouldknowtheirforward
voltageandforwardcurrent,youcangetthisinfofromthedatasheet.Thecircuit
operateson5VsoyourSourcevoltageis5Vwhichcanbeobtainedfroma5v
adapter
Downloadtheoriginalfiletoseetheschematicsbetter.(pressthe"i"iconinthe
topleftcornerofthepicture)

Step4:MakingitWork
Ihaveamadetheprogramthatdisplayssentencefromthearduinoserial
monitoronthematrix,mycodeisverybasic.Ihavemadeawindowsapplication
tomakethefontofthedisplay.Pleasewritetomeatmyemailid
[email protected](mailto:[email protected])youwanttoget
thatapplication

LedMatrixScrollingText.txt

(/files/orig/FQC/A1CY/H5EW79JK/FQCA1CYH5EW79JK.txt)6

KB

Step5:AllDone!!!!!!!!!

(http://cdn.instructables.com/FDO/SXFL/H5EW79J7/FDOSXFLH5EW79J7.LARGE.jpg)

Congratulationsyour8x8ledmatrixisready.Youcandisplayanythingyou
wouldlike.NowUcanplaywithitandmake8x8ledmatrixbymanually
solderingtheLed`sor16x8matrixandsoon!!!!!!

Wehaveabenicecommentpolicy.
Pleasebepositiveandconstructive.

IMadeit!

AddImages

Electo4fun(/member/Electo4fun/)

MakeComment

1yearago

Reply

GoodJob:D.
(/member/Electo4fun/)

Ididthisbutinsteadoftheletterslightinguptheentirematrixlightsupandthe
lettersdon't.
flag

Electo4fun(/member/Electo4fun/) Electo4fun

1yearago

Reply

AhIfixedit...Inthecodeyoumustremovethe'~'.
(/member/Electo4fun/)
flag

dinesh.maharjan.94064(/member/dinesh.maharjan.94064/) Electo4fun
Reply
8monthsago

Thanksforreply.canupleasetellinbrief.iam
(/member/dinesh.maharjan.94064/)
confusetoremovethe'~'.

flag

MarioK1(/member/MarioK1/)

9monthsago

Reply

Ohman,yourarticleissooonicebutinmyopinionyourSourcecodecould
(/member/MarioK1/)
havehadsomemorecommentsorplausiblevariablenames:PSpeciallyif

youtrytoportthistoanotherlanguage/platform...Imtryingtofindsome
solutionformyspecialIndustrialDotMatrixDisplay(TIP:Theretheyaddedthe
seperateColumnTransistorstothelastshiftregistersoyoucancontrol
everythingovertheserialshift)...Butthanksanyway!
flag

dinesh.maharjan.94064(/member/dinesh.maharjan.94064/) 10monthsago

Reply

Thanksfortheschematicandcode.Inthatcodeonly2timetextmessage
(/member/dinesh.maharjan.94064/)
display.butiwanttodisplaytextmessageforalongtimeuntilanotherserial

monitersendnexttextmessage.Sopleasehelpme.myidis
[email protected]

flag

RileyPankratz15(/member/RileyPankratz15/)

1yearago

Reply

AmIabletouses8050d331transistorsfromTexasInstruments?Igotthem
(/member/RileyPankratz15/)
fromakitandI'mwonderingiftheywillsubstitutenicelyornot?
flag

zeeroo(/member/zeeroo/)

1yearago

Reply

ThepictureshowsTO92NPNtransistorbutthepartslistsays557wichis
PNP
(/member/zeeroo/)
lookingattheschematicsitshouldbePNPtransistor
right?
flag

zeeroo(/member/zeeroo/) zeeroo

1yearago

Reply

sorryimeantshouldbeNPNnotPNP
(/member/zeeroo/)

petros9(/member/petros9/)

flag

1yearago

Reply

HowmuchtimedotheLEDlampsneedtoturnON?Whatistherefreshrate?
Howmuchtimeisitneededtoscanacolumn/rowandalsotoswitchfromone
(/member/petros9/)
column/rowtoanother?
Thanksinadvance
flag

msemtd(/member/msemtd/) petros9

1yearago

Reply

Ihaven'treadtheauthors'Arduinocodebytheway,butIwould
recommendperformingtherefreshofeachrowinatimerinterrupt
(/member/msemtd/)
(havealookontheArduinoplaygroundforhelponusingtimer
interrupts).
Youwanttochoosearefreshratethatlookssmoothtothehumaneye
sosomethingover50updates(oftheentiredisplay)persecondi.e.
50Hz.Let'ssaywechosetorefreshonerowpermillisecond.That
equatesto1000rowupdatespersecondor1000/8fulldisplayupdates
persecondonthis8rowdisplay.Thatisa125Hzrefreshrate.
Wecouldeasilyhalvethisratetoanicesmooth62.5Hzbyupdatinga
rowevery2milliseconds(fora16pixelhighdisplayat62.5Hzthe1ms
isideal).ThedurationforwhichtheLEDsareleftonduringthat2ms
rowscantimewilldictatehowbrightthedisplayis!
TheArduinowilltakealittletimetoclockthedataforeachrowintothe
shiftregister(s).Forlongerpixeldisplaystheshiftregistersarechained
togetherandmorebitsneedtobeshiftedin.Thankfullythe74HC595
hasalatchsothedatacanbeclockedinforthenextrowwhilethe
previousrowisbeingdisplayedontheLEDs!
SmartlycodedtimerinterruptswillallowtheArduinotodootherjobs
whilstmaintainingasolidrefreshrate.Iwillpostupsomecodewhen
I'vehadachancetotrythisoutonanArduino.BTW:onofmyjobsis
towritefirmwareforscrollingLEDmatrixdisplays:D
flag

layal_1(/member/layal_1/)

2yearsago

Reply

CanIdothisprojectbutwithoutArduino?
(/member/layal_1/)

flag

angel6120(/member/angel+6120/) layal_1

2yearsago

Reply

ifyoufoundthisprojectwithoutusingArduino.couldyoupleasehelp
me??
(/member/angel+6120/)
flag

knexpert1700(/member/knexpert1700/)

2yearsago

Reply

Ihavesomequestionsaboutthepartslist,I'vebeenlookingatan8x8ledrgb
displayonebayfor$6.95andI'mwonderingiftheresistorisULN2803IClike
(/member/knexpert1700/)
yousaidorisitULN2803AIClikewhatI'vebeenseeingonline.Also,Ithink

youshouldchangetheregistertoresistorinthepartslist.
flag

knexpert1700(/member/knexpert1700/) knexpert1700 2yearsago

Reply

Sorry,Imeanttosaytransistor!:P
(/member/knexpert1700/)

flag

ProBodger(/member/ProBodger/)

2yearsago

Reply

excellent
(/member/ProBodger/)

flag

kapilgupta(/member/kapil+gupta/)(author) ProBodger
2yearsago

Thanksbuddy!!
(/member/kapil+gupta/)

AboutUs

Reply
flag

FindUs

WhoWeAre(/about/)

Facebook(http://www.facebook.com/instructables)

Advertise(/advertise/)

Youtube(http://www.youtube.com/user/instructablestv)

Contact(/about/contact.jsp)

Twitter(http://www.twitter.com/instructables)

Jobs(/community/PositionsavailableatInstructables/)
Help(/id/howtowriteagreatinstructable/)

Pinterest(http://www.pinterest.com/instructables)
Google+(https://plus.google.com/+instructables)
Tumblr(http://instructables.tumblr.com)

Resources

Mobile

ForTeachers(/teachers/)

DownloadournewappsforiOS,
AndroidandWindows8!

ArtistsinResidence(http://www.autodesk.com/artistinresidence/home)
Join!
Join our newsletter: enteremail
GiftProAccount(/account/give?sourcea=footer)
Forums(/community/)
Answers(/tag/typequestion/?sort=RECENT)
TermsofService(http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=21959721)
|
Sitemap(/sitemap/)
PrivacyStatement(http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=21292079)
|

Android
(https://play.google.com/store/apps/details?
id=com.adsk.instructables)

LegalNotices&Trademarks(http://usa.autodesk.com/legalnoticestrademarks/) | MobileSite(http://m.instructables.com)
(http://usa.autodesk.com/adsk/servlet/pc/index?id=20781545&siteID=123112)
2015Autodesk,Inc.

GoProToday(/account/gopro?sourcea=footer)

We'reHiring!(/community/PositionsavailableatInstructables/)

iOS
(https://itunes.apple.com/app/instructables/id586765571)
Windows
(http://apps.microsoft.com/windows/en
us/app/7afc8194c771441a9590
54250d6a8300)

You might also like