Instructable LED Dot Matrix Display

Click here to load reader

  • date post

    16-Jul-2016
  • Category

    Documents

  • view

    75
  • download

    3

Embed Size (px)

description

LED Dot Matrix Display

Transcript of Instructable LED Dot Matrix Display

  • (/)

    let's makeExplore (/tag/typeid/) Create (/about/submit.jsp) Contests (/contest/) Community (/community/)

    share what you make >

    (/editInstructable/) (/id/intel/) (/tag/typeid/categoryliving/channelreuse/?sort=FEATURED)(/tag/typeid/categoryoutside/channelcamping/?sort=FEATURED)(/tag/typeid/categorytechnology/channelraspberrypi/?sort=FEATURED)

    Inthisproject,youshallagainusetwosetsofshiftregisters.Thesewillbeconnectedtotherowsandcolumnsofthedotmatrixdisplay.Youwillthenshowasimpleobject,orsprite,onthedisplayandanimateit.Themainaimofthisprojectistoshowyouhowadotmatrixdisplayworksandintroducetheconceptofmultiplexingbecausethisisaninvaluableskilltohave.

    Led Matrix.mp4

    Step1:ThingsRequired

    forthisprojectyouwillrequire:

    Related

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

    (http://cdn.instructables.com/F3Y/VORM/H5408HNM/F3YVORMH5408HNM.LARGE.jpg)

    AboutThisInstructable

    Posted:Aug4,2012

    License:GeneralPublicLicense

    108,869views

    93favorites

    (/member/kapil+gupta/)

    kapilgupta(/member/kapil+gupta/)

    Follow

    IamtheTechnologyloveralwaysdoinginterstingandinnovativestuff.Subscribingtome=fun+excitement!!!!!!!!!

    11

    Bio:

    (/id/RCMOODLYTE)

    (/id/ScopeclockAnalogClockAndTemperaturesensor)

    Morebykapilgupta

    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/)

    Tags:

    Group

    Addinstructableto:

    LEDMatrixTest1usinganAS1107IC(/id/LEDMatrixTest1usinganAS1107IC/)byTheArduinoGuyAutomatedCandyDispenser(/id/AutomatedCandyDispenser1/)bymarkarichard(/member/markarichard/)7BicolorLEDMatrixScrollingTextDisplay(/id/7BicolorLEDMatrixScrollingTextDisplay/)byjollifactoryVoiceInputArduinoBicolorLEDMatrixScrollingTextDisplay(Bluetooth+

    (/)

    LEDDotMatrixDisplay bykapilgupta(/member/kapil+gupta/)

    Collection IMadeit!

    Download(/id/LEDDotMatrixDisplay1/?download=pdf) 5Steps

    Favorite Share

    (/id/LEDDotMatrixDisplay1/)

    You (/you/)

  • 1.1LEDmatrix2.8resistors1kohm3.8557transistors4.1ULN2803IC5Arduino6.274HC595shiftregister7.2Breadboard8.ConnectingWires

    Step2:Working

    Dotmatrixunitstypicallycomeineithera5x7or8x8matrixofLEDs.TheLEDsarewiredinthematrixsuchthateithertheanodeorcathodeofeachLEDiscommonineachrow.Inotherwords,inacommonanodeLEDdotmatrixunit,eachrowofLEDswouldhavealloftheiranodesinthatrowwiredtogether.ThecathodesoftheLEDswouldallbewiredtogetherineachcolumn.Thereasonforthiswillbecomeapparentsoon.Atypicalsinglecolor8x8dotmatrixunitwillhave16pins,8foreachrowand8foreachcolumn.Thereasontherowsandcolumnsareallwiredtogetheristominimizethenumberofpinsrequired.Ifthiswerenotthecase,asinglecolor8x8dotmatrixunitwouldneed65pins,oneforeachLEDandacommonanodeorcathodeconnector.Bywiringtherowsandcolumnstogether,only16pinsarerequired.

    However,thisnowposesaproblemifyouwantaparticularLEDtolightinacertainposition.If,forexample,youhadacommonanodeunitandwantedtolighttheLEDatX,Yposition5,3(5thcolumn,3rdrow),thenyouwouldapplyacurrenttothe3rdRowandgroundthe5thcolumnpin.TheLEDinthe5thcolumnand3rdrowwouldnowlight.

    NowletsimaginethatyouwanttoalsolighttheLEDatcolumn3,row6.Soyouapplyacurrenttothe6throwandgroundthe3rdcolumnpin.TheLEDatcolumn3,row6nowilluminates.ButwaittheLEDsatcolumn3,row6andcolumn5,row6havealsolitup.

    Thisisbecauseyouareapplyingpowertorow3and6andgroundingcolumns3and5.YoucantturnofftheunwantedLEDswithoutturningofftheonesyouwanton.ItwouldappearthatthereisnowayyoucanlightjustthetworequiredLEDswiththerowsandcolumnswiredtogetherastheyare.TheonlywaythiswouldworkwouldbetohaveaseparatepinoutforeachLED,meaningthenumberofpinswouldjumpfrom16to65.A65pindotmatrixunitwouldbeveryhardtowireupandcontrolbecauseyoudneedamicrocontrollerwithatleast64digitaloutputs.Isthereawaytogetaroundthisproblem?Yesthereis,anditiscalledmultiplexing(ormuxing).

    Multiplexingisthetechniqueofswitchingonerowofthedisplayonatatime.ByselectingthecolumnthatcontainstherowthatcontainstheLEDthatyouwanttobelit,andthenturningthepowertothatrowon(ortheotherwayroundforcommoncathodedisplays),thechosenLEDsinthatrowwillilluminate.Thatrowisthenturnedoffandthenextrowisturnedon,againwiththeappropriatecolumnschosenandtheLEDsinthesecondrowwillnowilluminate.Repeatwitheachrowtillyougetto

    SeeMore(/tag/typeid/?q=)

    Android)(/id/VoiceInput

    ArduinoLEDScrollingText~Simple&Easy(/id/ArduinoLEDScrollingTextSimpleEasy/)

  • thebottomandthenstartagainatthetop.Ifthisisdonefastenough(atmorethan100Hz,or100timespersecond)thenthephenomenonofpersistenceofvision(whereanafterimageremainsontheretinaforapprox1/25thofasecond)willmeanthatthedisplaywillappeartobesteady,eventhougheachrowisturnedonandoffinsequence.Byusingthistechnique,yougetaroundtheproblemofdisplayingindividualLEDswithouttheotherLEDsinthesamecolumnorrowalsobeinglit.

    ByscanningdowntherowsandilluminatingtherespectiveLEDsineachcolumnofthatrowanddoingthisveryfast(morethan100Hz)thehumaneyewillperceivetheimageassteadyandtheimageoftheheartwillberecognizableintheLEDpattern.YouareusingthismultiplexingtechniqueintheProject'scode.ThatshowyouretodisplaytheheartanimationwithoutalsodisplayingextraneousLEDs.

    Step3:

    youhavetocalculatethevalueoftheresistorsyoucanuseYoushouldfirstgetsomespecsonyourLEDs,youshouldknowtheirforwardvoltageandforwardcurrent,youcangetthisinfofromthedatasheet.Thecircuitoperateson5VsoyourSourcevoltageis5Vwhichcanbeobtainedfroma5vadapter

    Downloadtheoriginalfiletoseetheschematicsbetter.(pressthe"i"iconinthetopleftcornerofthepicture)

    Step4:MakingitWork

    Ihaveamadetheprogramthatdisplayssentencefromthearduinoserialmonitoronthematrix,mycodeisverybasic.Ihavemadeawindowsapplicationtomakethefontofthedisplay.Pleasewritetomeatmyemailidkapilguptansit@gmail.com(mailto:kapilguptansit@gmail.com)youwanttogetthatapplication

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

  • Wehaveabenicecommentpolicy.Pleasebepositiveandconstructive.

    IMadeit! AddImages MakeComment

    (/member/Electo4fun/)

    1yearago Reply

    flag

    (/member/Electo4fun/)

    1yearago Reply

    flag

    (/member/dinesh.maharjan.94064/)

    8monthsago Reply

    flag

    (/member/MarioK1/)

    9monthsago Reply

    flag

    (/member/dinesh.maharjan.94064/)

    10monthsago Reply

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

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

    Congratulationsyour8x8ledmatrixisready.Youcandisplayanythingyouwouldlike.NowUcanplaywithitandmake8x8ledmatrixbymanuallysolderingtheLed`sor16x8matrixandsoon!!!!!!

    Electo4fun(/member/Electo4fun/)

    GoodJob:D.

    Ididthisbutinsteadoftheletterslightinguptheentirematrixlightsupandthelettersdon't.

    Electo4fun(/member/Electo4fun/) Electo4fun

    AhIfixedit...Inthecodeyoumustremovethe'~'.

    dinesh.maharjan.94064(/member/dinesh.maharjan.94064/) Electo4fun

    Thanksforreply.canupleasetellinbrief.iamconfusetoremovethe'~'.

    MarioK1(/member/MarioK1/)

    Ohman,yourarticleissooonicebutinmyopinionyourSourcecodecouldhavehadsomemorecommentsorplausiblevariablenames:PSpeciallyifyoutrytoportthistoanotherlanguage/platform...ImtryingtofindsomesolutionformyspecialIndustrialDotMatrixDisplay(TIP:TheretheyaddedtheseperateColumnTransistorstothelastshiftregistersoyoucancontroleverythingovertheserialshift)...Butthanksanyway!

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

    Thanksfortheschematicandcode.Inthatcodeonly2timetextmessagedisplay.butiwanttodisplaytextmessageforalongtimeuntilanotherserialmonitersendnexttextmessage.Sopleasehelpme.myidisdinfrnpal@gmail.com

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

  • flag

    (/member/RileyPankratz15/)

    1yearago Reply

    flag

    (/member/zeeroo/)

    1yearago Reply

    flag

    (/member/zeeroo/)

    1yearago Reply

    flag

    (/member/petros9/)

    1yearago Reply

    flag

    (/member/msemtd/)

    1yearago Reply

    flag

    (/member/layal_1/)

    2yearsago Reply

    flag

    (/member/angel+6120/)

    2yearsago Reply

    flag

    (/member/knexpert1700/)

    2yearsago Reply

    RileyPankratz15(/member/RileyPankratz15/)

    AmIabletouses8050d331transistorsfromTexasInstruments?IgotthemfromakitandI'mwonderingiftheywillsubstitutenicelyornot?

    zeeroo(/member/zeeroo/)

    ThepictureshowsTO92NPNtransistorbutthepartslistsays557wichisPNPlookingattheschematicsitshouldbePNPtransistorright?

    zeeroo(/member/zeeroo/) zeeroo

    sorryimeantshouldbeNPNnotPNP

    petros9(/member/petros9/)

    HowmuchtimedotheLEDlampsneedtoturnON?Whatistherefreshrate?Howmuchtimeisitneededtoscanacolumn/rowandalsotoswitchfromonecolumn/rowtoanother?

    Thanksinadvance

    msemtd(/member/msemtd/) petros9

    Ihaven'treadtheauthors'Arduinocodebytheway,butIwouldrecommendperformingtherefreshofeachrowinatimerinterrupt(havealookontheArduinoplaygroundforhelponusingtimerinterrupts).

    Youwanttochoosearefreshratethatlookssmoothtothehumaneyesosomethingover50updates(oftheentiredisplay)persecondi.e.50Hz.Let'ssaywechosetorefreshonerowpermillisecond.Thatequatesto1000rowupdatespersecondor1000/8fulldisplayupdatespersecondonthis8rowdisplay.Thatisa125Hzrefreshrate.

    Wecouldeasilyhalvethisratetoanicesmooth62.5Hzbyupdatingarowevery2milliseconds(fora16pixelhighdisplayat62.5Hzthe1msisideal).ThedurationforwhichtheLEDsareleftonduringthat2msrowscantimewilldictatehowbrightthedisplayis!

    TheArduinowilltakealittletimetoclockthedataforeachrowintothes