Explore (/tag/typeid/)
(/)
(/)
Create (/about/[Link])
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
AboutThisInstructable
313,135views
Posted:
Jun14,2008
525favorites
License:
barney_1
(/member/barney_1/)
Follow
67
(/member/barney_1/)
Morebybarney_1
(/id/LEDHanukkah
Menorah)
(/id/BeerBottleDryingRack)
([Link]
(/id/HowtoMakeandCan
ConcordGrapeJam)
Tags:
([Link]
avr(/tag/typeid/categorytechnology/keywordavr/)
8x8(/tag/typeid/categorytechnology/keyword8x8/)
Thisinstructableismeanttobeamorecompleteexplanationthanothers
[Link],thiswillprovidemorehardwareexplanationthanis
availableintheLEDMarqueeinstructable([Link]
([Link]
LEDscrollingmarqueesign)byled555.
led(/tag/typeid/categorytechnology/keywordled/)
matrix(/tag/typeid/categorytechnology/keyword
matrix/)
marquee(/tag/typeid/categorytechnology/keyword
marquee/)
Goals
Thisinstructablepresentstheconceptsinvolvedwithshiftregistersandhigh
sidedrivers.Byillustratingtheseconceptswithan8x8LEDmatrixIhopeto
provideyouwiththetoolsneededtoadaptandexpandtothesizeandlayout
yourprojectcallsfor.
ExperienceandSkills
Iwouldratethisprojecttobeofmediumdifficulty:
Ifyoualreadyhaveexperienceprogrammingmicrocontrollersandworking
withLEDsthisprojectshouldbefairlyeasyforyoutocompleteandtoscale
tolargerarraysoflights.
IfyouarejuststartingoutwithmicrocontrollersandhaveflashedanLEDor
twoyoushouldbeabletocompletethisprojectwithsomehelpfromour
friendgoogle([Link]
Ifyouhavelittleornoexperiencewithmicrocontrollersorprogrammingthis
[Link]
otherbeginnerprojectsandcomebackwhenyou'vegotsomemore
experiencewritingprogramsformicrocontrollers.
DisclaimerandCredit
First,[Link],ornota
bestpractice,pleaseletmeknowandI'llmakethecorrection.
Dothisatyourownrisk!Youshouldknowwhatyou'redoingoryoucancause
shift(/tag/typeid/categorytechnology/keywordshift/)
register(/tag/typeid/categorytechnology/keyword
register/)
LEDs_guide(/tag/typeid/category
technology/keywordleds_guide/)
Addinstructableto:
Group
Related
UsingaDotMatrixLED
withanArduinoandShift
Register(/id/UsingaDot
MatrixLEDwithan
ArduinoandShiftR/)
[Link]
(/id/810LEDMatrixwith
4017/)
bySyst3mX
(/member/Syst3mX/)
watchfuturamaonan8x8
pixelscreen(/id/watch
futuramaonan8x8pixel
screen/)
bysethj(/member/sethj/)
damagetoyourcomputer,yourmicrocontroller,andevenyourself.
Ihavelearnedalotfromtheinternet,particularlyfromtheforumsat:
[Link]
[Link]
outhere:
[Link]
Step1:Parts
PartsList
GeneralParts
Tomakean8x8gridofLEDsandcontrolthemyouwillneed:
64LEDsofyourchoice
8ResistorsfortheLEDs
1Shiftregisterforthecolumns
1Driverarrayfortherows
8Resistorsforswitchingthedriverarray
1microcontroller
1clocksourceformicrocontroller
1prototypingboard
1powersupply
Hookupwire
SpecificPartsUsedHere
ForthisinstructableIusedthefollowing:
64greenLEDs(Mouserpart#604WP7113GD)
8220ohm1/4wattresistorsfortheLEDs(Mouserpart#660
CFS1/4CT52R221J)
1HEF4794LEDdriverwithshiftregister(Mouserpart#771HEF4794BPN)
1mic2981HighVoltageHighCurrentSourceDriverArray(Digikeypart
#5761158ND)
83.3kohm1/4wattresistorsforswitchingthedriverarray(RadioShackpart
#2711328)
1AtmelATmega8microcontroller(Mouserpart#556ATMEGA816PU)
112MHzcrystalforthemicrocontrollerclocksource(Mouserpart#815AB
12B2)
12200holeprototypingboard(RadioShackpart#276147)
ConvertedATXpowersupply:SeeThisInstructable
([Link]
toareally/)
Solidcore22awghookupwire(RadioShackpart#2781221)
Solderlessbreadboard(RadioShackpart#276169(nolongeravailable,try:
276002)
AVRDragon(Mouserpart#556ATAVRDRAGON)
DragonRider500byEcrosTechnologies:SeeThisInstructable
([Link]
withtheA/)
NotesRegardingParts
RowandColumnDrivers:Probablythemostdifficultpartofthisprojectis
[Link],Idonotthinkastandard74HC595
shiftregisterisagoodideaherebecausetheycannothandlethekindofcurrent
wewanttosendthroughtheLEDs.ThisiswhyIchosetheHEF4794driverasit
caneasilysinkthecurrentpresentwhenall8ledsareinonerowareswitched
on.
Theshiftregisterispresentonthelowside(thegroundpinoftheleds).Wewill
needarowdriverthatcansourceenoughcurrenttostringmultiplecolumns
[Link]
foundthatperformsthistaskistheUDN2981(digikeypart#6201120ND)
[Link]
ifyouknowofotherhighsidedriversthatwouldworkwellinthisapplication.
Beginnertutorial:
ControllingLEDmatrix
with2595shiftregisters
LEDDotMatrixDisplay
(/id/LEDDotMatrix
Display1/)
bykapilgupta
(/member/kapil+gupta/)
SeeMore(/tag/typeid/?q=)
LEDMatrix:Thismatrixis8x8becausetherowandcolumndriverseachhave
[Link]
andwillbediscussedinthe"modularconcepts"[Link],
orderalloftheneededpartsatonetime.
Thereare8x8,5x7and5x8LEDmatricesavailableinoneconvenientpackage.
[Link]
these.Mouserhassome5x7unitsavailablesuchaspart#604TA1211GWA.I
usedcheapgreenLEDsbecauseI'mjustplayingaroundandhavefun.
Spendingmoreonhighbrightness,highefficiencyLEDscanallowyouto
produceamuchmorespectacularlookingdisplay...thisisgoodenoughforme
though!
ControlHardware:ThematrixiscontrolledbyanAtmelAVRmicrocontroller.
[Link]
DragonRider500forwhichIhavewrittenbothassembly
([Link]
theA/)andusage([Link]
Rider500withyourAVRDrag/)[Link]
prototypingandIhighlyrecommendit.
Step2:Thematrix
([Link]
([Link]
([Link]
([Link]
([Link]
([Link]
([Link]
([Link]
([Link]
IwillbebuildingmyownLEDmatrixforthisprojectusing5mmledsanda
([Link]
[Link]
8x8dotmatrixledmodulesfromseveralsources,[Link]
workjustfinewiththisinstructable.
([Link]
ConstructionConsiderations
Alignment
TheLEDSneedtobealignedsotheyfacethesamedirectionatthesame
[Link]
[Link]
fewLEDsinplaceacoupleofinchesawayfromtherowIwasworkingonto
makesuretheplexiglasswasparallelwiththeprototypingboard.
([Link]
RowsandColumns
Weneedtohaveacommonconnectionforeachrowaswellaseachcolumn.
Becauseofourrowandcolumndriverchoiceweneedtohavetheanode
(positiveleadoftheLED)connectedbyrowandthecathode(negativeleadof
theLED)connectedbycolumn.
ControlWires
ForthisprototypeIamusingsolidcore(singleconductor)[Link]
[Link]
differentconnectortypetosuityourproject.
BuildingtheMatrix
[Link].
[Link],thiswillbevery
difficulttofixifyourealizeitlater.
[Link]
alignedcorrectly(notatweirdangles)[Link]
youdonotcliptheanodelead,wewillneedthatlatersojustleaveit
pointingup.
[Link]
wiretoeachcathoderightatboardlevel.
Itackedthisateachendthenwentbackandaddedabitofsolderateach
junction.
ThiswireshouldrunpastyourlastLEDtomakeforaneasyinterfacewhen
weaddcontrolwires.
5.Repeatparts14untilyouhaveallLEDsinplaceandallcolumnbuses
soldered.
[Link],bendseveraloftheanodeleadsata90degreeangleso
theytouchtheotheranodeleadsinthesamerow.
Therearedetailedpicturesofthisbelow.
Takecarenottoletthesecomeincontactwiththecolumnbuses,creatinga
shortcircuit.
[Link].
[Link]
therowdrivercontrolwires.
8.Repeatparts6&7untilallrowsbuseshavebeensoldered.
[Link].
Iusedredsolidcorewirefortherowsandblackforthecolumns.
[Link]
doneattheendofeachbus.
Important
[Link]
withoutresistorsyouwillprobablyburnoutyourLEDsandallthisworkwillbe
fornothing.
Step3:Thecontrolhardware
([Link]
([Link]
[Link]
beenconstructedsothattheAnodes(voltagesideoftheLED)constitutethe
rows,andtheCathodes(groundsideoftheLED)[Link]
meansourrowdriverneedtosourcecurrentandourcolumndriverneedsto
sinkit.
[Link]
wayIcancontrolanalmostunlimitednumberofcolumnswithjustfour
[Link]
tieddirectlytovoltage.IhaveselectedtheHEF4794LEDdriverwithshift
register.Thisisabetteroptionthanastandard74HC595asitcaneasilysink
thecurrentpresentwhenall8LEDsareonatonetime.
Onthehighside(currentsourcefortherows)[Link]
schematicshowsaUDN2981,[Link]
drivercansourceupto500mAofcurrent.Becauseweareonlydriving1rowat
atimethisgivesalotofopportunityforexpansion,upto33columnsforthischip
(moreonthatinthe"modularconcepts"step).
BuildingtheControlHardware
[Link]
solutionyouwillwanttoeitheretchyourowncircuitboardoruseprototyping
board.
[Link]
Placethemic2981(orUDN2981)inthebreadboard
ConnectPin9toVoltage(Thisisconfusingintheschematic)
ConnectPin10toGround(Thisisconfusingintheschematic)
insert3k3resistorsconnectingtopins18
ConnectfromPortDoftheATmega8(PD0PD8)tothe8resistors
Connectthe8rowcontrolwiresoftheLEDmatrixtopins1118(notethatI
haveconnectedthelowestrowofLEDstoPin18andtheHighestrowtoPin
11).
[Link]
Placethehef4794inthebreadboard
ConnectPin16tovoltage
ConnectPin8toground
Connect220ohmresistorstoPins47and1114.
Connectthe8columncontrolwiresfromtheLEDmatrixtothe8resistors
youjustconnected.
ConnectPin1(Latch)toPC0oftheATmega8
ConnectPin2(Data)toPC1oftheATmega8
ConnectPin3(Clock)toPC2oftheATmega8
ConnectPin15(EnableOutput)toPC3oftheATmega8
[Link]
Connecta12MHzcrystalandloadcapacitorsasshownintheschematic
[Link]
Connecttheprogrammingheaderasshownintheschematic
[Link]
ItisbesttofilterthevoltagesuppliedtotheATmega8.Usea0.1ufcapacitor
betweenPin7&8oftheATmega8
[Link]
resistortoconnectittovoltage,anythingabout1kshouldbegood.I'veused
a10kresistorintheschematic.
[Link]+[Link]'suptoyoutodesignthe
regulator.
Step4:Software
TheTrick
Yes,likeeverything,there'satrick.Thetrickisthattherearenevermorethan8
LEDsilluminatedatonetime.
Forthistoworkwell,[Link]
[Link]'showthedisplayinterruptworksinplain
english:
Timercountsuptoacertainpoint,whenreachedtheinterruptservice
routineisrun.
Thisroutinedecideswhichrowisthenextonetobedisplayed.
Theinformationforthenextrowislookedupfromabufferandshiftedinto
thecolumndriver(thisinformationisnot"latched"soitisnotyetdisplayed).
Therowdriverisshutoff,noLEDsarecurrentlylit.
Thecolumndriveris"latched"makeintheinformationweshiftedintwo
stepsagothecurrentinformationtodisplay.
Therowdriverthenprovidescurrenttothenewrowwearedisplaying.
Theinterruptserviceroutineendsandprogramreturnstonormalflowuntil
thenextinterrupt.
[Link]
meansthatwe'[Link]
[Link]
brightnessbecauseweareessentiallyrunningtheLEDsata1/8dutycycle
(theyareoff7/8ofthetime).InmycaseIgetanadequatelybrightdisplaywith
novisibleflashing.
[Link]
canbechanged(bemindfulofatomicity)andwillappearonthedisplayduring
thenextinterrupt.
ThespecificsofwritingcodefortheAVRmicrocontrollerandofhowtowrite
[Link]
includedthesourcecode(writteninCandcompiledwithAVRGCC)aswellas
[Link]
beabletousethistoclearupanyquestionsabouthowtogetdataintotheshift
registerandhowtherowrefreshisworking.
PleasenotethatIamusingafontfilethatcamewiththeks0108universalC
[Link]:[Link]
([Link]
Update:
ShiftRegisters:HowTo
I'[Link]
clearsthingsupforthosewhohaven'tworkedwiththembefore.
Whattheydo
ShiftRegisterstakeasignalfromonewireandoutputthatinformationtomany
[Link],thereisonedatawirethattakesinthedataand8
[Link]
thingsbetter,thereisanoutpinforeachshiftregisterthatcanbeconnectedto
[Link]
expansionpotentialanalmostunlimitedprospect.
TheControlPins
Shiftregistershave4controlpins:
LatchThispintellstheshiftregisterwhenitistimetoswitchtonewly
entereddata
DataThe1'sand0'stellingtheshiftregisterwhatpinstoactivateare
receivedonthispin.
ClockThisisapulsesentfromthemicrocontrollerthattellstheshift
registertotakeadatareadingandmovetothenextstepinthe
communicationprocess
EnableOutputThisisanon/offswitch,High=On,Low=Off
Makingitdoyourbidding:
Here'sacrashcourseintheoperationoftheabovecontrolpins:
Step1:SetLatch,Data,andClocklow
SettingtheLatchlowtellstheshiftregisterweareabouttowritetoit.
Step2:SetDatapintothelogicvalueyouwanttosendtotheShiftRegister
Step3:SetClockpinhigh,tellingtheShiftRegistertoreadinthecurrentData
pinvalue
AllothervaluescurrentlyintheShiftRegisterwillmoveoverby1place,
makingroomforthecurrentlogicvalueoftheDatapin.
Step4:SettheClockpinLowandrepeatsteps2and3untilalldatahasbeen
senttotheshiftregister.
TheclockpinmustbesetlowbeforechangingtothenextDatavalue.
Togglingthispinbetweenhighandlowiswhatcreatesthe"clockpulse"the
shiftregisterneedstoknowwhentomovetothenextstepintheprocess.
Step5:SetLatchhigh
Thistellstheshiftregistertotakeallofthedatathathasbeenshiftedinand
[Link]
isshiftinginnochangeintheoutputpinswilloccuruntiltheLatchisset
high.
Step6:SetEnableOutputhigh
TherewillbenopinoutputuntiltheEnableOutputissettohigh,nomatter
whatishappeningwiththeotherthreecontrolpins.
Thispincanalwaysbelefthighifyouwish
Cascading
Therearetwopinsyoucanuseforcascading,[Link]
[Link]
shiftregisterandtheoverflowfromthischipwillbeenteredintothenext.
Endofupdate
Addressingthedisplay
IntheexampleprogramIhavecreatedanarrayof8bytescalledrow_buffer[].
Eachbytecorrespondstoonerowofthe8x8display,row0beingthebottom
[Link],the
[Link]
valuetothatdataarray,theinterruptserviceroutinetakescareofrefreshingthe
display.
Programming
[Link]
DAPAprogrammingcableasIbelieveyouwillbeunabletoprogramthechip
[Link]
(STK500,MKII,Dragon,Parallel/Serialprogrammers,etc.).
Fuses:
Makesuretoprogramthefusestousethe12MHzcrystal
hfuse:0xC9
lfuse:0xEF
InAction
Onceyouprogramthechipthedisplayshouldscrolla"HelloWorld!".Hereisa
[Link]
withmydigitalcamera'svideofeatureandnotapropervideoorwebcam.
8x8_Matrix.zip
(/files/orig/FZ3/1Y26/FHEZC86Z/[Link])9KB
Step5:Modularconcepts
([Link]
([Link]
([Link]
[Link]
yourpowersupplycanprovide.(TheotherrealityishowmanyLEDsand
registershiftersyouhaveavailable).
Math
([Link]
IamdrivingtheLEDsatabout15mA(5V1.8vDrop/220ohms=14.5mA).This
meansIcandriveupto33columnswiththemic2981driver
(500mA/15mA=33.3).Dividedby8wecanseethatthisallowsustostring
together4shiftregisters.
Alsoconsiderthatyoudonotneedtohaveall32columnsstretchfromleftto
right.Youcouldinsteadcreatea16x16arraythatiswiredthesamewayyou
wouldan8x32array.Thiswouldbeaddressedbyshiftingin4bytes....thefirst
twowouldshiftallthewaytotheledsforthe9throw,thesecondtwobytes
[Link]
driver.
CascadingShiftRegisters
[Link]
shiftindata,[Link]
setofshiftregisterscanbeconnectedtoeachother,OspintoDatapin,adding
8columnswitheachnewchip.
AlloftheshiftregisterswillconnecttothesameLatch,Clock,andEnable
[Link]"cascading"effectiscreatedwhenthe
[Link]
programmingwillneedtobealteredtoreflecttheincreasednumberofcolumns.
Boththebufferthatstorestheinformationandthefunctionthatshiftsinformation
inforeachcolumnneedtobeupdatedtoreflecttheactualnumberofcolumns.
Aschematicofthisisgivenbelowasanexample.
MultipleRowDrivers
Therowdriver(mic2981)[Link]
ifyouwantmorethan32columns?Itshouldbepossibletousemultiplerow
driverswithoutusingmoremicrocontrollerpins.
[Link]
usingmorecolumnsthanitispossibletolightatonetime,additionrowdrivers
[Link]
[Link],each
drivercontrolstherowsforan8x32block.Eventhough64columnsmayhave
thesamePHYSICALrowplacement,wedividetherowbusesintwo,usingone
driverforthe8rowsofthefirst32columns,andaseconddriverforthe8rows
ofthesecond32columnsandsoforth.
Aschematicofthisisgivenbelowasanexample.
PotentialMissteps:
[Link]
wouldmeanthateachshiftregisterpinwouldbedrivingmorethanoneLEData
time.
2.Youmusthaveasetof8resistors(3k3)foreachrowdriver,onesetfor
multiplerowdriverswillnotworkasitwillnotprovidethenecessarycurrentto
switchthegates.
ForExample
IdecidedtoexpandonthematrixIbuiltearlier.Ihaveadded7morerowsfora
totalof15asthat'sallIcanfitonthisprotoboard.
IalsojustfoundoutaboutacontestthatInstructablesisdoingcalled"Letit
Glow".[Link],thedigitalcameraIused
totakethevideodoesn'[Link],
especiallywherealltheLEDsflash,butdoesn'tlooknearlyasgoodinthevideo.
Enjoy:
Sourcecodeforthislargerdisplayisincludedbelow.
Let_It_Glo.zip
(/files/orig/FCQ/LVN5/FHEJ16M3/[Link])11KB
Step6:Conclusion
PossibleAdditions
I2C
IhavelefttheTwoWireInterface(I2C)[Link]
severalinterestingprospectsthatcanusethesetwopins.AdditionofanI2C
[Link]
prospectofdesigningprogrammingtoturnthemega8intoanI2Ccompatible
[Link]
todisplaydataonyourLEDarraybypassingitovertheI2Cbus.
Input
TherearemanypinsleftoverthatcouldbeusedforbuttonsoranIRreceiver.
Thiswouldallowformessagestobeprogrammedinviaamenusystem.
Display
[Link]
writescharacterstothedisplay,theotherscrollscharactersontothedisplay.
Theimportantthingtorememberisthatwhatyouseeinthelightsisrepresented
[Link],the
lightswillchangeinthesameway.
Sometantalizingopportunitiesincludecreatingagraphingmeteroutofthe
[Link]
implementedfromthetopdownorbottomup,[Link],have
fun!
Step7:FollowUp
([Link]
([Link]
([Link]
([Link]
([Link]
([Link]
([Link]
([Link]
([Link]
AfterlettingthecontrollercircuitsitinthebreadboardformonthsIfinally
designedandetchedafewcircuitboardstoputthisprototypetogether.
Everythingworkedoutgreat,Idon'tthinkthere'sanythingIwouldhavedone
differently.
CircuitBoardFeatures
Shiftregistersareonseparateboardsthatcanbedaisychainedtogetherto
increasethesizeofthedisplay.
Controllerboardhasit'sownpowerregulatorsothiscanberunbyany
powersourcethatprovides7v30v(9vbatteryor12vbenchsupplyboth
workjustfineforme).
([Link]
6pinISPheaderincludedsothemicrocontrollercanbereprogrammed
withoutremovingitfromtheboard.
[Link]
aneepromtostoremoremessagesoreventomakethisaslavedevice
controlledbyanothermicrocontroller(RSStickeranyone?)
[Link]
firmwareinthefuturetoincludetheuseofthesebuttons.
Assembly
Givemeplexiglass,anglebrackets,6x32machinescrews,nuts,andwashers,
aswellasatapsettothreadholesandIcancreateanything.
LED_Matrix_PCB_Proto_Firmware.zip
(/files/orig/FJ8/9K1G/FLROM0XW/[Link])12KB
Wehaveabenicecommentpolicy.
Pleasebepositiveandconstructive.
IMadeit!
140of
130
AddImages
MakeComment
Next([Link]
&sort=ACTIVE&limit=40&offset=40#DISCUSS)
axeman911(/member/axeman911/)
4yearsago
Reply
insteadofmic2981wouldadecadecounterwork,orcouldwejustoutthepins
directlyonthearduino?
(/member/axeman911/)
flag
bweaver6(/member/bweaver6/) axeman911
3monthsago
Reply
YouwouldntwanttouseattlICtopowertheLED'[Link]
(/member/bweaver6/)
pulltomuchcurrentfortheICtohandle.
flag
zxlee(/member/zx+lee/)
1yearago
Reply
Thumbsup,greatexplanation,greatinstructables:D
(/member/zx+lee/)
flag
fredkylam(/member/fredkylam/)
1yearago
Reply
ThecolumndriverisdriveonlyONEcolumnatanyonetime,sothecurrent
(/member/fredkylam/)
[Link]
[Link]?
flag
MCUman(/member/MCUman/)
2yearsago
LEDmatrixusingshiftregisters bybarney_1(/member/barney_1/)
Reply
[Link]
needed?WhatisthecostofthisHEF4794?GiventhePOVofthehumaneye
(/member/MCUman/)
versusthespeedofamicrocontroller,Ihaveneverseenthisasaproblem
Download(/id/LEDmatrixusingshiftregisters/?download=pdf)
(/id/LEDmatrixusingshiftregisters/)
usingaoldtrusty74HC164,which,BTW,[Link]
theHC164isconsiderablycheaperoverthecostofthe4794by$[Link]
Collection
IMadeit!
doIknowthis?I'veusedtheHC164inthismodefornumeroussuccessful
designsthathavegonetoproduction,[Link]
greatarticletodemonstratetotheHEF4794butisittrulypractical?
flag
JHSTUBA(/member/JHSTUBA/)
2yearsago
Reply
Isthe10kresistornescessary?
(/member/JHSTUBA/)
flag
(/contest/letitglow/)
7Steps
Favorite
Share
Kamilon(/member/Kamilon/)
2yearsago
Reply
I'[Link]
matrixthatallowsfordirectdrive(eachLEDindividuallycontrolled),checkthis
(/member/Kamilon/)
out:
[Link]
[Link]
thanbuyingonebyfollowingyourinstructions.
flag
jigs859(/member/jigs859/)
3yearsago
Reply
imdoingthisproject....butadditioninthis,imuseagsmmodulewhich
receivesthemessagesendbyanycellphone,anditdisplaythemessageon
(/member/jigs859/)
theleddisplay...soineedCIRCUITDIAGRAMandCODEforthisproject....plz
helpmesoon...
flag
samwhiteUK(/member/samwhiteUK/) jigs859
2yearsago
Reply
Basicallyyouwantsomeoneelsetodoyourprojectforyouthendon't
you?You'lllearnalotmorebydoingtheresearchandthegraft
(/member/samwhiteUK/)
yourself.
flag
'earl(/member/%27earl/)
3yearsago
Reply
Shouldbe"clamp"Justsaying.
(/member/%27earl/)
flag
eriknyquist(/member/eriknyquist/)
3yearsago
Reply
IwanttobuildsomethinglikethisbutI'venoticedthatmostoftheexamplesof
codethatI'vefoundforLEDdrivingprogramsarewritteninanassembly
(/member/eriknyquist/)
[Link]?wouldliketoavoiditifpossible...
flag
axeman911(/member/axeman911/)
3yearsago
Reply
howdouuploadcodeinC++tothearduino???
(/member/axeman911/)
kimchhour(/member/kimchhour/)
flag
3yearsago
Reply
Hisirineedtomakeboardformatrix832.
(/member/kimchhour/)
[Link](/member/[Link]/)
flag
4yearsago
Reply
Atmega16?codeHelpPLZ
(/member/[Link]/)
shanakaplus(/member/shanakaplus/)
flag
4yearsago
Reply
I'[Link]
youhelpmetofindineagle?
(/member/shanakaplus/)
flag
avanner77(/member/avanner77/) shanakaplus
4yearsago
Reply
or,iftheydontmatchup,youcanmakeyourownpartwiththistutorial:
[Link]
(/member/avanner77/)
flag
avanner77(/member/avanner77/) shanakaplus
4yearsago
Reply
ifyoucheckthedatasheetsforthehef4794andthe74hc595,youcan
seeiftheyhavethesamepinoutandjustusetheeaglepartforthe595
(/member/avanner77/)
flag
EmilianoValencia(/member/Emiliano+Valencia/)
4yearsago
Reply
hi,imreallyinterestedinthisproject,speciallyinthe16x16array,butIwantto
useitwithanarduino,andalso,thateachLEDisindividuallyaddressable
(/member/Emiliano+Valencia/)
(meaningthatthecodeshuldhaveaplacewithlineswiththetext
"B00000000,x32"andthateachlinehasatotalof2560(Whichcanbe
changedto1tomaketleLEDlightup)soeachlinewouldbeanewframewith
everyLEDindividuallyaddressable.
TheproblemisthatImkindanewwithmicrocontrollersandcan'twritethe
code,WherecanIgetit??canyouhelpmewriteit??
plzhelp,
reallyinterestedinurproject.
Thanks.
flag
sun580(/member/sun580/)
4yearsago
Reply
thanksitsgood
(/member/sun580/)
kalasas18(/member/kalasas18/)
flag
4yearsago
[Link]
(/member/kalasas18/)
example:
LISTP=16F876
#include<[Link]>
__CONFIG_CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC
ORG0x2100
DE0x00
ORG0
cblock0x20
d1
d2
d3
endc
gotostart
Delay
999990cycles
movlw0x07
movwfd1
movlw0x2F
movwfd2
movlw0x03
movwfd3
Delay_0
decfszd1,f
goto$+2
decfszd2,f
goto$+2
decfszd3,f
gotoDelay_0
6cycles
goto$+1
goto$+1
goto$+1
4cycles(includingcall)
return
loop:
movlwb'00000111'
movwfPORTA
movlwb'11110010'
movwfPORTB
movlwb'11111111'
movwfPORTC
callDelay
callDelay
callDelay
gotoloop
start:
Reply
bsfSTATUS,RP0selectregisterpage1
movlw0put0intoW
movwfTRISCsetportCalloutput
clrfTRISA
clrfTRISB
bsfSTATUS,RP1selectPage2,
bcfSTATUS,RP0bysettingRP1inStatusregisterandclearingRP0
clrfPORTCselectDigitalI/OonportC
bcfSTATUS,RP1backtoRegisterPage0
gotoloop
end
[Link]
[Link],Itriedtoigniteapairofcolumnson
[Link],
donotlightlonger...Anybodyknowwhat'swrong...
Programmecode:
LISTP=16F876
#include<[Link]>
__CONFIG_CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC
ORG0x2100
DE0x00
ORG0
cblock0x20
Delay1delayloop1
Delay2delayloop2
Delay3delayloop3
TimeDelaytimedelayx0.001s
EndCountusedtotellPICtheendofthetableisreached
Counterusedastablecounter
Line1Line1
Line2Line2
Line3Line3
Line4Line4
Line5Line5
sad
Line6Line6
Line7Line7
Line8Line8
Layer4brightness,andtime
BrightnessLEDbrightness
Timetimeforeachpatterntostay
Temptempregister
d1
d2
d3
endc
gotostart
Delay
999990cycles
movlw0x17
movwfd1
movlw0x2F
movwfd2
movlw0x03
movwfd3
Delay_0
decfszd1,f
goto$+2
decfszd2,f
goto$+2
decfszd3,f
gotoDelay_0
6cycles
goto$+1
goto$+1
goto$+1
4cycles(includingcall)
return
loop:
movlwb'00000001'
movwfLine1
movlwb'11110010'
movwfLine2
calloutput
callDelay
movlwb'11100000'
movwfLine1
movlwb'10101010'
movwfLine2
calloutput
callDelay
gotoloop
start:
bsfSTATUS,RP0selectregisterpage1
movlw0put0intoW
movwfTRISCsetportCalloutput
clrfTRISA
clrfTRISB
bsfSTATUS,RP1selectPage2,
bcfSTATUS,RP0bysettingRP1inStatusregisterandclearingRP0
clrfPORTCselectDigitalI/OonportC
bcfSTATUS,RP1backtoRegisterPage0
gotoloop
output:
movfwLayer4
andlwb'00000001'
movwfTime
incfTime,1
bcfSTATUS,C
rlfTime,1
bcfSTATUS,C
rlfTime,1
bcfSTATUS,C
rlfTime,1
bcfSTATUS,C
rlfTime,1
bcfSTATUS,C
rlfTime,1
clrfPORTBclearportB
movfwLine1movelayer1toW
movwfPORTCputWontoPortC
bsfPORTB,4turnonlayer1buyoutputingbit5ofPortB
movfwBrightnessputbrightnessintoW
callDelayycallthedelay
bcfPORTB,4turnofflayer1
movfwBrightnessputBrightnessintoW
sublw4subWfrom4
btfssSTATUS,Zskipifthezeroflagisset
callDelayycallthedelay
decfszTime
clrfPORTBclearportB
movfwLine2moveLine2toW
movwfPORTCputWontoPortC
bsfPORTB,5turnonlayer2buyoutputingbit6ofPortB
movfwBrightnessputbrightnessintoW
callDelayycallthedelay
bcfPORTB,5turnofflayer2
movfwBrightnessputBrightnessintoW
sublw4subWfrom4
btfssSTATUS,Zskipifthezeroflagisset
callDelayycallthedelay
decfszTime
decfszTimedecrementtheTimeregiester
return
Delayy:
movwfDelay3putWintoDelay3
Loop1:
AfterDelay2decresesto0,itisresetto..
movlw0x1put1intoW
movwfDelay2putWintoDelay2
Loop2:
AfterDelay1decresesto0,itisresettoE9h
movlw0x1Dput80intoW
movwfDelay1putWintoDelay1
Loop3:
decfszDelay1decrementDelay1
gotoLoop3jumpbacktoLoop3
decfszDelay2decrementDelay2
gotoLoop2jumpbacktoLoop2
decfszDelay3decrementDelay3
gotoLoop1jumpbacktoLoop1
return
end
Thanksforhelp.:)
flag
[Link](/member/[Link]/)
4yearsago
Reply
DoesanyoneknowifthematrixwouldworkwithanArduinoboard????
(/member/[Link]/)
ji394su3(/member/ji394su3/)
flag
4yearsago
Reply
goodarticle!!
(/member/ji394su3/)
pavanbhushan(/member/pavanbhushan/)
flag
4yearsago
Reply
whatistheadditionalconnectionthatshouldbemadetomaketheLEDsglow
individualletters???
(/member/pavanbhushan/)
flag
pavanbhushan(/member/pavanbhushan/)
4yearsago
Reply
howcanwemakethe8*8leddisplaytheletters????I'mstuckatthispoint...
(/member/pavanbhushan/)
Suresh.D.M(/member/Suresh.D.M/)
flag
4yearsago
Reply
canweaddshiftregisterstothecolumnandshiftthebit
(/member/Suresh.D.M/)
pontikakis3(/member/pontikakis3/)
flag
4yearsago
Reply
WhereistheFontSetat[Link]
(/member/pontikakis3/)
DanielIt(/member/DanielIt/)
flag
5yearsago
Reply
Heythere..niceproject,[Link]
learningC,ienlargedtheprojecttobe8x32columns,buticantgetthecodeto
(/member/DanielIt/)
[Link]?Therearesome
partsinthecodecommentedthatneedtobealtered,buticantfigureout
[Link],orustreplyhere.
Thank'sandkeepupthegoodwork!!
flag
dhimullai(/member/dhimullai/) DanielIt
5yearsago
Reply
Hi
Itootriedwithexpanding8x32,itdoesn'tworksasexpected.,Anyone
(/member/dhimullai/)
canhelpme,
flag
knektek(/member/knektek/)
5yearsago
Reply
Couldyouuseawholeloadoftransistors?Forswitchingsomethingelse?
Maybeanarrayofmotorsorswitchingrelays?
(/member/knektek/)
flag
greekwow(/member/greekwow/)
5yearsago
Reply
doestheledshavegoodbrighness?thereisnotproblemwithdutycycle?
becouseihavethatprobleminmyproject,(iuse4017decadecounter)
(/member/greekwow/)
flag
ndinitz(/member/ndinitz/)
5yearsago
Reply
canthisbedoneusingparallelloadshiftregistersordoesithavetobedone
withserialload.
(/member/ndinitz/)
ifitistobedoablewithparallelloadregistersthentheboarddoesnthaveto
displayonlyonecolumnatatime,right?thatwouldbesomuchcoolerand
youcouldbuildmodulesandconnectthemwithparallelinserialouttoserialin
parallelout.
lemeknowwhatyouthink...
flag
rammbo69(/member/rammbo69/)
5yearsago
Reply
Bothare20pF.
(/member/rammbo69/)
malth91(/member/malth91/)
flag
5yearsago
Reply
averyinformativeandinterestingsite
(/member/malth91/)
roketlights(/member/roketlights/)
flag
5yearsago
Reply
whatarevaluesforc2andc3?????imrelyingentirelyonthis!!please?igot
[Link]!!!
(/member/roketlights/)
flag
jeffo(/member/jeffo/)
5yearsago
Reply
Justtoclarify,couldIprograminabunchofphrases(like,3040)andcallup
anyoneofthembasedoncertaininputs?Whatisthelimitonphraselength
(/member/jeff
o/) withoutanyexternalmemory?
flag
roketlights(/member/roketlights/)
5yearsago
Reply
ijustboughtabuttloadofregisters.imtryingtomakea32x32anypointers?
onhowtoconnect8x8inrowsandcolumns?anyhelpwouldbeapprecieated.
(/member/roketlights/)
:)
flag
hype1(/member/hype1/)
5yearsago
Reply
IamlookingintoyoursetupandInoticedthis:Whydoyouusesuchadriver
onthehighsidewhenyouarelightingonecolumnatthetimeduring
(/member/hype1/)
multiplexing?Nowyoucouldsourcerowsof8LED'satonetime,butthatisn't
thecasewhilemultiplexing,right?
flag
monkeydluffy(/member/monkeydluffy/)
6yearsago
Reply
brobarney,canuhelpmetogetHEF4794?ineedtheHEF4794??9ofthem
[Link]'snostoresellthatshift
(/member/monkeydluffy/)
register:(:(CanIgetitfromu??I'llpayitlater.I'minJakarta,Indonesia.
Pleasehelpmemaster,[Link]
:)
flag
ndegwa(/member/ndegwa/)
6yearsago
Reply
Ineedhelpprogrammingthemicrocontrollercouldyoupleasehelpiwould
likemydisplaytoscrollthefollowingNBI..............VOI.............MBSoverand
(/member/ndegwa/)
overandcanalsobemadetostopatoneofthelettersshown.
flag
CallumSnowden(/member/Callum+Snowden/)
6yearsago
Reply
CouldyouuseaMAX232toconnectittoacomputer?
(/member/Callum+Snowden/)
140of
130
flag
Next([Link]
&sort=ACTIVE&limit=40&offset=40#DISCUSS)
Wehaveabenicecommentpolicy.
Pleasebepositiveandconstructive.
IMadeit!
AboutUs
AddImages
MakeComment
FindUs
WhoWeAre(/about/)
Facebook([Link]
Advertise(/advertise/)
Youtube([Link]
Contact(/about/[Link])
Twitter([Link]
Jobs(/community/PositionsavailableatInstructables/)
Help(/id/howtowriteagreatinstructable/)
Pinterest([Link]
Google+([Link]
Tumblr([Link]
Resources
Mobile
ForTeachers(/teachers/)
DownloadournewappsforiOS,
ArtistsinResidence([Link]
Join!
Join our newsletter: enteremail
GiftProAccount(/account/give?sourcea=footer)
AndroidandWindows8!
Forums(/community/)
Answers(/tag/typequestion/?sort=RECENT)
TermsofService([Link]
|
Android
([Link]
id=[Link])
Sitemap(/sitemap/)
PrivacyStatement([Link] |
LegalNotices&Trademarks([Link] | MobileSite([Link]
([Link]
2015Autodesk,Inc.
iOS
([Link]
Windows
([Link]
us/app/7afc8194c771441a9590
54250d6a8300)
GoProToday(/account/gopro?sourcea=footer)
We'reHiring!(/community/PositionsavailableatInstructables/)