Você está na página 1de 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
kapilguptansit@gmail.com(mailto:kapilguptansit@gmail.com)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
dinfrnpal@gmail.com

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)