Lightburn on a Sainsmart 3018
4:55
ws2811 Pixel  pumpkin 2020
0:59
3 жыл бұрын
CNC 2nd go on SainSmart 3018-MX3
1:52
Bagging up 3,000 piece puzzle
1:41
6 жыл бұрын
Removing wood glue from work surface
2:13
Drone View #1 - Johnson City
2:50
7 жыл бұрын
1st  Snow 2017 - DJI Phantom 4 in 4K
7:48
Phase 1, jumping arches, complete
0:22
Tis' the Season - with Farmer Oakley
2:25
Пікірлер
@coolhand1964
@coolhand1964 2 ай бұрын
Possibly the bearing grease being stiff, until it warm up, or a new capacitor is needed (cheap as and easy to change over).
@chadthedrummer7
@chadthedrummer7 10 ай бұрын
1:13 i think you shat yourself! 😂 💨
@matechsolutions6392
@matechsolutions6392 10 ай бұрын
This is awesome; we subscribed!
@Backyardwoodworks2014
@Backyardwoodworks2014 10 ай бұрын
Thanks for the sub!
@Backyardwoodworks2014
@Backyardwoodworks2014 Жыл бұрын
I posted this here to share with Dell for an email they sent to me asking for a review.
@DonaldMelton
@DonaldMelton 3 жыл бұрын
what is the width of strip your cutting ? is it a 1" x 1" 60 degree cut ?
@Backyardwoodworks2014
@Backyardwoodworks2014 3 жыл бұрын
I believe it was 7/8" - the plans came from www.thewinfieldcollection.com
@DonaldMelton
@DonaldMelton 3 жыл бұрын
@@Backyardwoodworks2014 thanks so very much for that info
@lmjhalloween
@lmjhalloween 3 жыл бұрын
How do you do this so easily?? It’s such a pain for me!
@Backyardwoodworks2014
@Backyardwoodworks2014 3 жыл бұрын
Fellow Lighter who I work with made the jig, but to answer your question I use a leather glove with the thumb wrapped with layers& layers of duct tape. This short video was from before I had 1,000's to do LOL
@lmjhalloween
@lmjhalloween 3 жыл бұрын
@@Backyardwoodworks2014 wow lol, do you know if the pixel pliers from holiday Coro are any good?
@jwilloughby1171
@jwilloughby1171 3 жыл бұрын
Just wondering where you get your tomato boxes? And are they stackable?
@Backyardwoodworks2014
@Backyardwoodworks2014 3 жыл бұрын
Yes they stack quite well - most cardboard is from uline.com
@madhubalur5982
@madhubalur5982 3 жыл бұрын
Where can I get this machine..?
@IaMaWeSoMe7478
@IaMaWeSoMe7478 3 жыл бұрын
Me: Searches for better hardware for my clean server setup. KZbin: How about this? Me: HOLY MOTHER OF EARTH!
@Backyardwoodworks2014
@Backyardwoodworks2014 3 жыл бұрын
LOL
@rlawz
@rlawz 4 жыл бұрын
So cool!
@Backyardwoodworks2014
@Backyardwoodworks2014 3 жыл бұрын
It was fun - though I haven't done many more recently.
@lyric.kayden
@lyric.kayden 4 жыл бұрын
Question for ya. When you power off the band saw and it’s winding down does the top of the saw shake or vibrate a little?
@Backyardwoodworks2014
@Backyardwoodworks2014 3 жыл бұрын
No - it is solid. My biggest problem with the bandsaw is that the fence will not lock in place. Grizzly says its not a warranty part so I just clamp the fence in place with a pipeclamp
@hd2kill
@hd2kill 4 жыл бұрын
Cool
@CanadianGoldenEagles
@CanadianGoldenEagles 5 жыл бұрын
Great design and idea. What are the holders you're using to 'grasp' the wood trims please? I've been having issues locating anything similar.
@Backyardwoodworks2014
@Backyardwoodworks2014 4 жыл бұрын
They are called dog bench clamps amzn.to/2PpzEZm
@dalef9441
@dalef9441 5 жыл бұрын
Fantastic video. Embedded maps...better!
@Backyardwoodworks2014
@Backyardwoodworks2014 4 жыл бұрын
Thank you.
@dalef9441
@dalef9441 6 жыл бұрын
Fantastic work. I’m going to add a link to my blog. Dale Fitzgerald
@Backyardwoodworks2014
@Backyardwoodworks2014 4 жыл бұрын
thank you!
@kcwoolsey1396
@kcwoolsey1396 6 жыл бұрын
the only thing that would have made it better is if it had been my team - great idea!!!!
@Backyardwoodworks2014
@Backyardwoodworks2014 4 жыл бұрын
Thank you
@jon2wr1
@jon2wr1 6 жыл бұрын
Thanks. Was thinking I needed electric or other expensive tools.
@garzonlaperle9403
@garzonlaperle9403 6 жыл бұрын
Great to see that woodprix has new instructions to save my money and energy to build it.
@swirlingorlando7535
@swirlingorlando7535 5 жыл бұрын
ok!
@Backyardwoodworks2014
@Backyardwoodworks2014 4 жыл бұрын
These plans aren't on WoodProx - but I like that you are trying to get sales.
@daphlavor
@daphlavor 6 жыл бұрын
I had to print the manual from their site
@Backyardwoodworks2014
@Backyardwoodworks2014 4 жыл бұрын
I called them and sent photos but I still cannot get the stop to lock in place.
@sherrybranham8218
@sherrybranham8218 6 жыл бұрын
If I wanted to make these do you share where you get your supplies?
@Backyardwoodworks2014
@Backyardwoodworks2014 4 жыл бұрын
various suppliers, woodcraft, Wood turners supplies, Jays Turningz
@keqh5757
@keqh5757 6 жыл бұрын
I never seen a aerial view of the area before it looks weird
@isaacstebleton6408
@isaacstebleton6408 6 жыл бұрын
How often do they go there? Where were you when you filmed this?
@Backyardwoodworks2014
@Backyardwoodworks2014 6 жыл бұрын
Isaac Stebleton PRMC is pretty large on the Easternshore but not a huge trauma center so helicopters are constantly flying in and out daily. That day a friends daughter being loaded and flown out.
@isaacstebleton6408
@isaacstebleton6408 6 жыл бұрын
Jay's BackyardWoodworks.com, ok. Thank you. I hope that she is doing ok.
@garzonlaperle9403
@garzonlaperle9403 7 жыл бұрын
Great place to learn how to make it yourself much much cheaper. Just google for 'WoodPrix' website:)
@Backyardwoodworks2014
@Backyardwoodworks2014 4 жыл бұрын
oh so your gonna just add this comment to all my videos?
@pierluigicolotto9570
@pierluigicolotto9570 7 жыл бұрын
Nice movie. However you can make it yourself. Just google woodprix and learn how to do it easily.
@samnadol647
@samnadol647 7 жыл бұрын
Hello. So, I built this LED cube and I uploaded the code given by the creator of this video in the comments onto the Arduino, but I just got a bunch of random crud. I checked for shorts, but I didn't see any. Any ideas why the cube is not working?
@Backyardwoodworks2014
@Backyardwoodworks2014 7 жыл бұрын
wow - there are so many things that could cause you problems - it is hard to point you in the correct direction without being able to see it. maybe check your solder joints? I am no expert on this, the cube sits on my desk & I turn it on every so often - haven't attempted to reprogram it since the build. just try to get one or two lights on and go through code until you confirm each bulb is programmable. keep me posted I'd be curious what the error is
@DavidBishopinc
@DavidBishopinc 7 жыл бұрын
Interesting
@roberthelveston2823
@roberthelveston2823 7 жыл бұрын
Not a great photo shoot.. TOOOOOO much movement.
@Backyardwoodworks2014
@Backyardwoodworks2014 7 жыл бұрын
sorry you didn't enjoy it, this was 5 yrs ago and was one of the first attempts at any video taping on an iphone. I agree there's room for improvement.
@aux1z11
@aux1z11 7 жыл бұрын
I got the 17 in and had it in the garage for over a year in the crate waiting to build my pole barn and this week I un crate it and there is no screws nuts and bolts for anything
@Backyardwoodworks2014
@Backyardwoodworks2014 7 жыл бұрын
Contact Grizzly, they were great about sending replacement parts
@artmakersworlds
@artmakersworlds 7 жыл бұрын
ah hell, I want to SEE THE CUTTING and sanding. Not ok, here it's done now. No help here at all.
@Backyardwoodworks2014
@Backyardwoodworks2014 7 жыл бұрын
yup sorry - this was back a few years ago before I learned how to edit videos, so the whole beginning part was lost after the iphone memory filled up and cut off. do you have any questions I could maybe assist with? It was more of a hands on learning experience, I am by far no expert on this topic.
@artmakersworlds
@artmakersworlds 7 жыл бұрын
No questions, I probably could answer some for you on poly clay. Been making pens for some time now but… JUST got a lathe. Now that's a whole new toy there. I turned a few test pens, didn't come out too bad for a first attempt but needs work. I've been picking brains on a few good wood turners forum boards. But nothing beats watching it done. Not too many good videos out there. Tons on turning wood, not so much with clay. It's so much softer, just the slightest pressure on the tool and it gouges. Turns out I was simply holding the tool wrong. Probably should try a flatter tool as well. I had a round "finishing" tool. So try try again.
@Backyardwoodworks2014
@Backyardwoodworks2014 7 жыл бұрын
you hit the nail on the head slightest pressure can blow out the polymer when turning. The biggest problem i encountered were the air pockets in the clay. I attempted the deal after seeing the blanks on a site, looking for bookmark..maybe an email to these folks can give you pointers...www.ptownsubbie.com/polymerclaypenblanks.aspx
@Backyardwoodworks2014
@Backyardwoodworks2014 7 жыл бұрын
here is another link with awesome clay - she doesn't use a lathe, just rounds them down using the bushings on the table. bakes then polishes them. www.claypenblanks.com/
@artmakersworlds
@artmakersworlds 7 жыл бұрын
There is some really nice can work on there. Now if you look at her blanks page, specifically at the one in the very foreground. See the sea turtle on the right? Man times you pack canes in translucent clay. That piece it shows up. BUT clay is never really clear. The trick with canes is to use paper thin slices. Very tough to do and it makes it impossible to turn on a lathe. It would only remove all the cane work. I actually got pretty good at rolling pen blanks but with a slight curve just like they were turned. Here's one, faux woodgrain, a band of cane work, (no translucent involved.) and something you simply can't do on a lathe, it's added later, the feather sculpted on top. Did a bunch of those and they sell out as fast as I can make them. Now… here are some I CAN do on lathe. A faux stone I came up with. www.flickr.com/photos/artmakersworlds/8926402174/ These were rolled, and here I just started getting the hang of giving them more shape, but I bet I can get them even more perfectly shaped once I get some lathe practice.
@jobadiola
@jobadiola 7 жыл бұрын
tnx...it did help me a lot...
@judithrushing135
@judithrushing135 7 жыл бұрын
How did you put on the polymer clay on the pen tube? I tried it and the clay keep blowing out. Could you show how you put on the clay to stick on the tube? Thanks.
@Backyardwoodworks2014
@Backyardwoodworks2014 7 жыл бұрын
hey I only had to use the tube for the shape, once hardened I glued it just the same as any other pen blank.
@rcoolpens169
@rcoolpens169 7 жыл бұрын
thanks I will have to give this a try.
@sethdfilms
@sethdfilms 7 жыл бұрын
Amazing flight! The colors look so majestic to me because of that sunset.
@Backyardwoodworks2014
@Backyardwoodworks2014 7 жыл бұрын
thanks!
@Sebastopolmark
@Sebastopolmark 7 жыл бұрын
That's a nice "shout out" but it does not tell us "How to Print large patterns using BigPrint"??
@Backyardwoodworks2014
@Backyardwoodworks2014 4 жыл бұрын
You are correct - only that I did it with the software. I should have been more clear. Thank you for letting me know.
@sandhyasharma5407
@sandhyasharma5407 7 жыл бұрын
That was very helpful. Thanks
@stormbytes
@stormbytes 7 жыл бұрын
Congrats on the (new) band saw :) Looks and sounds terrific! Hopefully you'll get a lot more cutting practice and get real good at it!
@JimBeshears
@JimBeshears 8 жыл бұрын
Man you coulda stored a couple of those in my fridge, lol. Hope everything turned out ok for you all.
@seniorchiefharris
@seniorchiefharris 8 жыл бұрын
Jay...for safety sake and more accurate cuts, lower you top blade guide to just about 1/4" above the wood's surface. Less chance of you being cut, plus the blade will not drift as much and your cuts will be more accurate since the blade is supported properly. Take a look at several other bandsaw videos here on you tube and you'll be an expert in no time! Have fun with your new bandsaw and safe wood working to you!
@Backyardwoodworks2014
@Backyardwoodworks2014 4 жыл бұрын
I am glad you pointed this out when you did - I even lower it to the table when its unplugged
@Nichol0824
@Nichol0824 8 жыл бұрын
That is AWESOME! I'm about to get my lathe and stuff to get started pen turning and was thinking hmmm POLYMER CLAY blanks....i'm SOOOOOOO happy i found your video...it works YAY...do you have a video on making the blank....if you do sry...i was so excited to find your video,
@Backyardwoodworks2014
@Backyardwoodworks2014 8 жыл бұрын
I've made only a few (as time gets away from me, it was probably a few years ago at that) look for the heart pen - pretty sure i documented the how.
@agisfg
@agisfg 8 жыл бұрын
READ the user manual. ALL of the assembly instructions are in it.
@SHADOWATOIF
@SHADOWATOIF 8 жыл бұрын
Great video bro. I just ordered the same saw and this video will definitely come in handy. Thanks.
@mgrcreations1
@mgrcreations1 8 жыл бұрын
The pens came out great! tfs
@Backyardwoodworks2014
@Backyardwoodworks2014 8 жыл бұрын
+mgrcreations1 Thanks!
@edfliction1348
@edfliction1348 8 жыл бұрын
For the love of god can someone please tell me where to get the basic RadioShack files for this. I'm all, like AAAHHHH
@Backyardwoodworks2014
@Backyardwoodworks2014 8 жыл бұрын
+EDFLICTION Dude - expand my reply to Dezzen's comment below - I copied & pasted all the code in there. Radio Shack 's site is defuct
@edfliction1348
@edfliction1348 8 жыл бұрын
Oh thank you
@Backyardwoodworks2014
@Backyardwoodworks2014 8 жыл бұрын
EDFLICTION no problem - upload a video of yours when you get it working so I can see it
@robertnix3988
@robertnix3988 8 жыл бұрын
I just bought this same kit. The URL given in the instructions does not work. Do you know where I can find the example code for the project?
@Backyardwoodworks2014
@Backyardwoodworks2014 8 жыл бұрын
+Robert Nix its copy & pasted into one of the replies on a previous comment.
@SteveCarmichael
@SteveCarmichael 8 жыл бұрын
Awesome! Congrats on the new saw. I didn't know they were that heavy. It sure is pretty!
@Backyardwoodworks2014
@Backyardwoodworks2014 8 жыл бұрын
+Steve Carmichael - You can come use it anytime! I've been asked to make a bass guitar - "ibanex btb" style I sure could use a CNC to make a template... congrats on making Make!
@lct111352
@lct111352 9 жыл бұрын
Thanks, that DID help. I was expecting it to be a much bigger job. :o)
@dezzen
@dezzen 9 жыл бұрын
Any idea where to get the sketch? Apparently the Radio Shack site is no longer.
@Backyardwoodworks2014
@Backyardwoodworks2014 9 жыл бұрын
dezzen Here is the copy & paste: /* * * MiniCube LED Cube with 74164 shift registers * Original (and likely, inefficient) code, comments, and documentation * somehow pieced together by: * David Ratliff * July, 2013 * * designed for use with my Pin-Source, 4x4, LED cube with 74164 shift registers attached to 16 anode leads * and 4 NPN (2N4401) transistors connected to each of 4 cathode leads (one for each horizontal layer of 16 LEDs). * * ***Naming convention*** * * Cartesian Coordinate System used. With axis, (x, y) = (0, 0). * X-Axis (y=0) is line of LEDs parallel, and closest, to the transistors on board * Y-Axis (x=0) is line of LEDs parallel, and closest, to the Cathode leads coming from cube * Z-Axis extends upwards from the board beginning with "1"(bottom layer) and ending with "4" (top layer) * * FUNCTIONS & THEIR NAMES *------------------------ * After morphing through many permutations and made-sense-at-the-time naming schemes... * I finally settled on one which, I beleive, makes the code easiest to understand. * Here is a brief introduction (and REMINDER to myself!) - * "planes" contain 16 active LEDs. May be horizontal or vertical. function contains x, y, or z (and it's value) to indicate position * "hinges" transition between planes. Usually "hinging" upon row of LEDs shared by both planes (starting & ending plane). * "slashe" are angled planes which run through center of cube * "slants" are angled planes which contain one corner-edge of cube - typically only use two rows/columns along one of axis * * */ #define data1 6 // PWM Pin #define data2 4 // PWM pin #define clock1 5 //PWM Pin #define clock2 3 // PWM Pin #define cathode3 11 #define cathode4 10 #define cathode2 9 #define cathode1 8 int Flow = 80; // "delay" to hold patterns before shifting next pattern ***Update this eventually to use 'millis' or some timer to avoid so much wasted time on 'delays' long randNumber; // holder for Random number from generator function unsigned long previousMillis = 0; // will store last time LED was updated -- **Leftover from prev version? ** Don't think this is currently used in any functions. /* // Intervals used in previous version of functions -- Not currently used unsigned long intervalConstant = 3000; unsigned long interval1 = (intervalConstant/4); // interval at which to blink milliseconds) unsigned long interval2 = (intervalConstant/2); unsigned long interval3 = (3* intervalConstant/4); unsigned long interval4 = intervalConstant; */ void setup() { Serial.begin(9600); pinMode(A0, INPUT); // to read "noise" as random number randomSeed(analogRead(A0)); // Seed Pseudo-RNG with noise from open/floating pin A0 // Set pins to shift registers as OUTPUT pinMode(clock1, OUTPUT); // Clock for Shift Register 1 pinMode(clock2, OUTPUT); // Clock for Shift Register 2 pinMode(data1, OUTPUT); // Data for Shift Register 1 pinMode(data2, OUTPUT); // Data for Shift Register 1 // Set shift register pins to a LOW "idle" state --- *74164 Shift Register "clocks" on rising edge of digital signal digitalWrite(clock1, LOW); digitalWrite(clock2, LOW); digitalWrite(data1, LOW); digitalWrite(data2, LOW); // set cathode pins to output pinMode(cathode1, OUTPUT); pinMode(cathode2, OUTPUT); pinMode(cathode3, OUTPUT); pinMode(cathode4, OUTPUT); } void loop() { hingeX3Y0(Flow); // from planeX3 to planeY0 slantY1Y2(5, 5); slashY0Y3(5, 5); pinWheelL(5, 5); pinWheelL(5, 5); pinWheelL(5, 5); pinWheelL(5, 5); pinWheelL(5, 5); slantY0Y3(5, 5); /* planeZ(1, Flow); // Bottom Layer planeZ(2, Flow); planeZ(3, Flow); planeZ(4, Flow); planeZ(3, Flow); planeZ(2, Flow); planeZ(1, Flow); */ planeZ(1, Flow); hingeZ1Y3(5, 5); planeY3(Flow); hingeY3X3(Flow); hingeX3Y0(Flow); hingeY0X0(Flow); // Hinges CCW from planeY0 to planeX0 // Begin Small Sq up, Large Sq down hSquareSmall(1, Flow); hSquareSmall(2, Flow); hSquareSmall(3, Flow); hSquareSmall(4, Flow); hSquareLarge(4, Flow); hSquareLarge(3, Flow); hSquareLarge(2, Flow); hSquareLarge(1, Flow); hSquareSmall(1, Flow); hSquareSmall(2, Flow); hSquareSmall(3, Flow); hSquareSmall(4, Flow); hSquareLarge(4, Flow); hSquareLarge(3, Flow); hSquareLarge(2, Flow); hSquareLarge(1, Flow); hSquareSmall(1, Flow); hSquareSmall(2, Flow); hSquareSmall(3, Flow); hSquareSmall(4, Flow); hSquareLarge(4, Flow); hSquareLarge(3, Flow); hSquareLarge(2, Flow); hSquareLarge(1, Flow); // End Small Sq up, Large Sq down growSquareLarge(4, 40); sqPillarLg(5, 20); sinkSquareLarge(4, 40); growSquareSmall(4, 40); sqPillarSm(5, 20); sinkSquareSmall(4, 40); growSquareLarge(4, 40); sqPillarLg(5, 20); sinkSquareLarge(4, 40); growSquareSmall(4, 40); sqPillarSm(5, 20); sinkSquareSmall(4, 40); bitwiseRandomFall(100, 20); planeZ(1, Flow); // Bottom Layer planeZ(2, Flow); planeZ(3, Flow); planeZ(4, Flow); planeZ(3, Flow); planeZ(2, Flow); planeZ(1, Flow); hingeY0X0(Flow); // Hinges CCW from planeY0 hingeX0Y3(Flow); hingeY3X3(Flow); hingeX3Y0(Flow); // back to planeY0 slantY3Y0(5, 5); slashY3Y0(5, 5); slantY3Y2(5, 5); planeY3(Flow); hingeY3Z4(5,5); planeZ(4, Flow); // "Plane" = 16 LEDs horizontally. "4" = Top Layer planeZ(3, Flow); // Layer just above center planeZ(2, Flow); // Layer just below center planeZ(1, Flow); // Bottom Layer planeZ(2, Flow); planeZ(3, Flow); planeZ(4, Flow); hingeZ4Y3(5, 5); planeY3(Flow); planeY2(Flow); planeY1(Flow); planeY0(Flow); planeY1(Flow); planeY2(Flow); planeY3(Flow); hingeY3Z1(5, 5); } // End void loop() // Pattern Sequences// void semiShift(int lightTime) // GOAL: To shiftOut (less than a byte) new binary BETWEEN cathode changes! --- NOT SUCCESSFUL.... { for(int j=0; j<255; j++) // set to any range within 0-255 ( 8 bits ) { cathodeOff(0); for(int cat = 4; cat > 0; cat--) // turn on Cathodes 1 thru 4, one at time { // Send data to Cube for (int i = 0; i < 3; i++) // Customized "shiftOut" function code { digitalWrite(data2, !!(B010 & (1 << i))); digitalWrite(clock2, HIGH); digitalWrite(clock2, LOW); } for (int i = 0; i < 3; i++) // Customized "shiftOut" function code { digitalWrite(data1, !!(B01 & (1 << (2 - i)))); digitalWrite(clock1, HIGH); digitalWrite(clock1, LOW); } // Turn on ONE cathode cathodeOn(cat); // turn on/off cathodes from top to bottom - ("Rain") if(cat < 4) { cathodeOff(cat+1); } // end if cat // increase i j++; // delay to see effect delay(2*lightTime); } //end for cat } // end for int i } // end semiShift void bitwiseRandomLone(int lightTime) { for(int i=0; i<255; i++) // set to any range within 0-255 ( 8 bits ) { randNumber = random(255); // generate "random" number from 0 -255 cathodeOff(0); // turn ALL cathodes off prior to shift for(int cat = 4; cat > 0; cat--) // turn on Cathodes 1 thru 4, one at time { int randNumber = random(255); // generate "random" number from 0 -255 // Send data to Cube shiftOut(data2, clock2, LSBFIRST, (randNumber & (randNumber-1))); // keep it "random looking" on ShiftReg2 shiftOut(data1, clock1, MSBFIRST, (i & randNumber)); // again, for ShiftReg1 // Turn on ONE cathode cathodeOn(cat); // turn on/off cathodes from top to bottom - ("Rain") if(cat < 4) { cathodeOff(cat+1); } // end if cat // increase i i++; // delay to see effect delay(2*lightTime); } //end for cat } // end for int i } // end bitwiseRandomLone void bitwiseRandomFall(int range, int lightTime) { for(int i=0; i<range; i++) // set to any range within 0-255 ( 8 bits ) { cathodeOff(0); for(int cat = 4; cat > 0; cat--) // turn on Cathodes 1 thru 4, one at time { // Send data to Cube shiftOut(data2, clock2, LSBFIRST, (i & (5*i/3))); // keep it "random looking" on ShiftReg2 shiftOut(data1, clock1, MSBFIRST, (i & (7*i/2))); // again, for ShiftReg1 // Turn on ONE cathode cathodeOn(cat); // turn on/off cathodes from top to bottom - ("Rain") if(cat < 4) { cathodeOff(cat+1); } // end if cat // increase i i++; // delay to see effect delay(2*lightTime); } //end for cat } // end for int i } // end bitwiseRandomFall void bitwiseRain(int lightTime) // Use bitwise & to create custom light pattern { for(int i=140; i<255; i++) // set to any range within 0-255 ( 8 bits ) { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, (i & (i+111))); // keep it "random looking" on ShiftReg2 shiftOut(data1, clock1, MSBFIRST, (i & (i-213))); // again, for ShiftReg1 for(int cat = 4; cat > 0; cat--) // turn on Cathodes 1 thru 4, one at time { cathodeOn(cat); // turn on/off cathodes from top to bottom - ("Rain") if(cat < 4) { cathodeOff(cat+1); } // end if cat delay(lightTime); } //end for cat } // end for int i } // end bitwiseRain void bitwiseTwins(int lightTime) { for(int i=130; i<200; i++) // set to any range within 0-255 ( 8 bits ) { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, (i & (i+1))); // count (backwards?) 1- 255 on ShiftReg2 shiftOut(data1, clock1, MSBFIRST, (i & (i-1))); // count 1 - 255 on ShiftReg1 for(int cat = 1; cat < 5; cat++) // turn on Cathodes 1 thru 4, one at time { cathodeOn(cat); // turn on/off cathodes from bottome to top if(cat>1) { cathodeOff(cat-1); } // end if cat delay(lightTime); } //end for cat } // end for int i } // end bitwiseTwins void binaryTwins(int lightTime) { for(int i=100; i<155; i++) // set to any range within 0-255 ( 8 bits ) { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, i); // count (backwards?) 1- 255 on ShiftReg2 shiftOut(data1, clock1, MSBFIRST, i); // count 1 - 255 on ShiftReg1 for(int cat = 1; cat < 5; cat++) // turn on Cathodes 1 thru 4, one at time { cathodeOn(cat); // turn on/off cathodes from bottom to top - ("growth") if(cat>1) { cathodeOff(cat-1); } // end if cat delay(lightTime); } //end for cat } // end for int i } // end Binary Twins void binaryGrowth(int lightTime) // WARNING! - USES LOTS OF CURRENT!! // TOO MUCH for Arduino to handle. // be sure to connect LEDs to own power source // ....AND CONNECT GROUNDS TOGETHER { for(int i=0; i<510; i++) { if( i>=0 && i < 256) { cathodeOff(0); shiftOut(data2, clock2, MSBFIRST, B00000000); // send all 0 to ShiftReg2 shiftOut(data1, clock1, MSBFIRST, i); // count 1 - 255 on ShiftReg1 for(int cat = 1; cat < 5; cat++) // turn on Cathodes 1 thru 4, one at time { cathodeOn(cat); if(cat>1) { cathodeOff(cat-1); } // end if cat delay(lightTime); } //end for cat } //end if if( i>=256 && i < 510) { cathodeOff(0); shiftOut(data1, clock1, MSBFIRST, B11111111); // send all 1 to ShiftReg1 shiftOut(data2, clock2, MSBFIRST, i-255); // count 1- 255 on ShiftReg12 for(int cat = 1; cat < 5; cat++) // turn on Cathodes 1 thru 4, one at time { cathodeOn(cat); if(cat>1) { cathodeOff(cat-1); } // end if cat delay(lightTime); } // end for cat } // end for } // end for } // end void binaryGrowth // CONTROL CATHODES ON/OFF void cathodeOff(int cathNum) { if (cathNum == 1) { digitalWrite(cathode1, LOW); } // end if 1 if (cathNum == 2) { digitalWrite(cathode2, LOW); } // end if 2 if (cathNum == 3) { digitalWrite(cathode3, LOW); } // end if 3 if (cathNum == 4) { digitalWrite(cathode4, LOW); } // end if 4 if (cathNum == 0) { digitalWrite(cathode1, LOW); digitalWrite(cathode2, LOW); digitalWrite(cathode3, LOW); digitalWrite(cathode4, LOW); } // end if ALL } // end void CathodeOFF void cathodeOn(int cathNum) // Turn one or all cathodes on { if (cathNum == 1) // Bottom layer { digitalWrite(cathode1, HIGH); } // end if 1 if (cathNum == 2) { digitalWrite(cathode2, HIGH); } // end if 2 if (cathNum == 3) { digitalWrite(cathode3, HIGH); } // end if 3 if (cathNum == 4) // Top layer { digitalWrite(cathode4, HIGH); } // end if 4 if (cathNum == 0) // Turn ALL cathodes/Layers on { digitalWrite(cathode1, HIGH); digitalWrite(cathode2, HIGH); digitalWrite(cathode3, HIGH); digitalWrite(cathode4, HIGH); } // end if 0 / ALL } // end void CathodeOn // ******* END CONTROL CATHODES ************* // ******** 3D SHAPES - Begin *********** void sqPillarSm(int lightTime, int frameNum) { for (int i = 0; i <= frameNum; i++) { hSquareSmall(1, lightTime); hSquareSmall(2, lightTime); hSquareSmall(3, lightTime); hSquareSmall(4, lightTime); } // End for i frameNum } // End sqPillarSm void sqPillarLg(int lightTime, int frameNum) { for (int i = 0; i <= frameNum; i++) { hSquareLarge(1, lightTime); hSquareLarge(2, lightTime); hSquareLarge(3, lightTime); hSquareLarge(4, lightTime); } // End for i frameNum } // End sqPillarLg // ********* END --- 3D SHAPES ************ // ********* HORIZONTAL SEQUENCES ************** //********* Static Horizontal Shapes ************ void planeZ(int level, int lightTime) { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B11111111); shiftOut(data1, clock1, LSBFIRST, B11111111); cathodeOn(level); delay(lightTime); } // end void planeZplaneZ() void hSquareLarge(int level, int lightTime) { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B10011111); shiftOut(data1, clock1, LSBFIRST, B11111001); cathodeOn(level); delay(lightTime); } // end void hSquareLarge void hSquareSmall(int level, int lightTime) { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B01100000); shiftOut(data1, clock1, LSBFIRST, B00000110); cathodeOn(level); delay(lightTime); } // end void hSquareSmall //********* END ** Static Horizontal Shapes ************ //******** BEGIN ** Vertical Grow & Sink ************ void growSquareLarge(int level, int lightTime) { cathodeOff(0); // build square level by level from bottom to top for (int i = 1; i <= level; i++) { shiftOut(data2, clock2, LSBFIRST, B10011111); shiftOut(data1, clock1, LSBFIRST, B11111001); cathodeOn(i); delay(lightTime); } //end for } // end void growSquareLarge void growSquareSmall(int level, int lightTime) { cathodeOff(0); // build square level by level from bottom to top for (int i = 1; i <= level; i++) { shiftOut(data2, clock2, LSBFIRST, B01100000); shiftOut(data1, clock1, LSBFIRST, B00000110); cathodeOn(i); delay(lightTime); } // end for } // end void growSquareSmall void sinkSquareLarge(int level, int lightTime) { cathodeOff(0); // turn whole square on shiftOut(data2, clock2, LSBFIRST, B10011111); shiftOut(data1, clock1, LSBFIRST, B11111001); cathodeOn(0); delay(lightTime); // turn off level one by one from top to bottom for (int i = level; i > 0; i--) { shiftOut(data2, clock2, LSBFIRST, B10011111); shiftOut(data1, clock1, LSBFIRST, B11111001); cathodeOff(i); delay(lightTime); } //end for } // end void sinkSquareLarge void sinkSquareSmall(int level, int lightTime) { cathodeOff(0); // turn whole square on shiftOut(data2, clock2, LSBFIRST, B01100000); shiftOut(data1, clock1, LSBFIRST, B00000110); cathodeOn(0); delay(lightTime); // turn off level one by one from top to bottom for (int i = level; i > 0; i--) { cathodeOff(i); delay(lightTime); } // end for } // end void sinkSquareSmall // ********END ** Vertical Growth **************** void hFLipUp1(int lightTime) // flips up from planeX0 to planeZ4 { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B00010001); shiftOut(data1, clock1, LSBFIRST, B00010001); cathodeOn(0); delay(lightTime); //first "step" //**PseudoCode ***loop this for "lightTime" milliseconds???? cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B00010001); shiftOut(data1, clock1, LSBFIRST, B00010001); cathodeOn(4); cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B00100010); shiftOut(data1, clock1, LSBFIRST, B00100010); cathodeOn(3); cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B01000100); shiftOut(data1, clock1, LSBFIRST, B01000100); cathodeOn(2); cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B10001000); shiftOut(data1, clock1, LSBFIRST, B10001000); cathodeOn(1); // end first "step" } // end hFlipUp1 // END HORIZONTAL SEQUENCES // VERTICAL SEQUENCES // ************ Verical WIDES - Y-axis "planes of Light" ****************** void planeX3(int lightTime) // "Wall of light" entire row, all layers. Header side of board { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B10001000); shiftOut(data1, clock1, LSBFIRST, B10001000); cathodeOn(0); delay(lightTime); } void planeX2(int lightTime) { cathodeOff(0); digitalWrite(cathode4, LOW); shiftOut(data2, clock2, LSBFIRST, B01000100); shiftOut(data1, clock1, LSBFIRST, B01000100); cathodeOn(0); delay(lightTime); } void planeX1(int lightTime) { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B00100010); shiftOut(data1, clock1, LSBFIRST, B00100010); cathodeOn(0); delay(lightTime); } void planeX0(int lightTime) // "Wall of light" entire row, all layers. Cathode side of board { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B00010001); shiftOut(data1, clock1, LSBFIRST, B00010001); cathodeOn(0); delay(lightTime); } // ************END Verical Wides - Y-axis "Walls of light" ****************** // ************ Verical Slices - X-axis "Walls of light" ****************** void planeY0(int lightTime) // "Wall of light" entire row, all layers. Transistor side of board { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B00001111); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(0); delay(lightTime); } // End void vSlice 1 void planeY1(int lightTime) { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B11110000); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(0); delay(lightTime); } // End void vSlice 2 void planeY2(int lightTime) { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001111); cathodeOn(0); delay(lightTime); } // End void vSlice 3 void planeY3(int lightTime) // "Wall of light" entire row, all layers. Empty end of board { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11110000); cathodeOn(0); delay(lightTime); } // End void vSlice 4 // ************END Verical Slices - X-axis "Walls of light" ****************** // ************ Flat turns, hinges, transitions - ***************** void hingeY0X0(int lightTime) // Turns from planeY0 to planeX0 { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B00001111); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B11000011); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B00100001); shiftOut(data1, clock1, LSBFIRST, B10000100); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B00010001); shiftOut(data1, clock1, LSBFIRST, B01000010); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B00010001); shiftOut(data1, clock1, LSBFIRST, B00010001); cathodeOn(0); delay(lightTime); } // end hingeY0X0 void hingeX0Y3(int lightTime) // turns from planeX0 to planeY3 - Cathode side { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B00010001); shiftOut(data1, clock1, LSBFIRST, B00010001); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B00100010); shiftOut(data1, clock1, LSBFIRST, B00010001); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B01001000); shiftOut(data1, clock1, LSBFIRST, B00010010); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00111100); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11110000); cathodeOn(0); delay(lightTime); } // end hingeX0Y3 void hingeY3X3(int lightTime) // turns from planeY3 to planeX3 - Cathode side { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11110000); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11000011); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B00100001); shiftOut(data1, clock1, LSBFIRST, B10000100); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B01000100); shiftOut(data1, clock1, LSBFIRST, B10001000); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B10001000); shiftOut(data1, clock1, LSBFIRST, B10001000); cathodeOn(0); delay(lightTime); } // End hingeY3X3 // *****HINGE UP & DOWN FUNCTIONS *********** void hingeY3Z4(int lightTime, int frameNum) // Hinges plane UP from Y3 to Z4 { slantY2Y3(lightTime, frameNum); slashY0Y3(lightTime, frameNum); slantZ3Y0Y3(lightTime, frameNum); } // End hingeY3Z4 void hingeZ4Y3(int lightTime, int frameNum) // Hinges plane DOWN from Y3 to Z4 { slantZ3Y0Y3(lightTime, frameNum); slashY0Y3(lightTime, frameNum); slantY2Y3(lightTime, frameNum); } // End hingeZ4Y3 void hingeZ1Y3(int lightTime, int frameNum) // Hinges plane UP from Z1 to Y3 { slantY3Y0(lightTime, frameNum); slashY3Y0(lightTime, frameNum); slantY3Y2(lightTime, frameNum); } // End hingeZ1Y3 void hingeY3Z1(int lightTime, int frameNum) // Hinges plane DOWN from Y3 to Z1 { slantY3Y2(lightTime, frameNum); slashY3Y0(lightTime, frameNum); slantY3Y0(lightTime, frameNum); } // End hingeY3Z1 // ***** END --- HINGE UP & DOWN FUNCTIONS *********** void hingeX3Y0(int lightTime) // turns from planeX3 to planeY0 - Cathode side { cathodeOff(0); shiftOut(data2, clock2, LSBFIRST, B10001000); shiftOut(data1, clock1, LSBFIRST, B10001000); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B10001000); shiftOut(data1, clock1, LSBFIRST, B01000100); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B01001000); shiftOut(data1, clock1, LSBFIRST, B00010010); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B00111100); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(0); delay(lightTime); shiftOut(data2, clock2, LSBFIRST, B00001111); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(0); delay(lightTime); } // end hingeX3Y0 void slashY1Y2(int lightTime, int frameNum) { for (int i = 0; i <= frameNum; i++) { cathodeOff(0); // planeY0 shiftOut(data2, clock2, LSBFIRST, B11110000); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(1); delay(lightTime); cathodeOff(0); // planeY1 shiftOut(data2, clock2, LSBFIRST, B11110000); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(2); delay(lightTime); cathodeOff(0); // planeY2 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001111); cathodeOn(3); delay(lightTime); cathodeOff(0); // planeY3 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001111); cathodeOn(4); delay(lightTime); cathodeOff(0); } //end for } void slashY0Y3(int lightTime, int frameNum) { for (int i = 0; i <= frameNum; i++) { cathodeOff(0); // planeY0 shiftOut(data2, clock2, LSBFIRST, B00001111); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(1); delay(lightTime); cathodeOff(0); // planeY1 shiftOut(data2, clock2, LSBFIRST, B11110000); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(2); delay(lightTime); cathodeOff(0); // planeY2 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001111); cathodeOn(3); delay(lightTime); cathodeOff(0); // planeY3 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11110000); cathodeOn(4); delay(lightTime); cathodeOff(0); } //end for } void slantY1Y2(int lightTime, int frameNum) { for (int i = 0; i <= frameNum; i++) { cathodeOff(0); // planeY0 shiftOut(data2, clock2, LSBFIRST, B00001111); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(1); delay(lightTime); cathodeOff(0); // planeY1 shiftOut(data2, clock2, LSBFIRST, B00001111); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(2); delay(lightTime); cathodeOff(0); // planeY2 shiftOut(data2, clock2, LSBFIRST, B11110000); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(3); delay(lightTime); cathodeOff(0); // planeY3 shiftOut(data2, clock2, LSBFIRST, B11110000); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(4); delay(lightTime); cathodeOff(0); } //end for } void slantY0Y3(int lightTime, int frameNum) { for (int i = 0; i <= (2*frameNum); i++) { cathodeOff(0); // planeY0 shiftOut(data2, clock2, LSBFIRST, B11111111); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(1); delay(lightTime); cathodeOff(0); // planeY1 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11111111); cathodeOn(2); delay(lightTime); cathodeOff(0); } //end for } void slashZ2Y0Z3Y3(int lightTime, int frameNum) { for (int i = 0; i <= (2*frameNum); i++) { cathodeOff(0); // planeY0 shiftOut(data2, clock2, LSBFIRST, B11111111); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(2); delay(lightTime); cathodeOff(0); // planeY1 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11111111); cathodeOn(3); delay(lightTime); cathodeOff(0); } //end for } void slashY2Y1(int lightTime, int frameNum) { for (int i = 0; i <= frameNum; i++) { cathodeOff(0); // planeY0 shiftOut(data2, clock2, LSBFIRST, B11110000); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(4); delay(lightTime); cathodeOff(0); // planeY1 shiftOut(data2, clock2, LSBFIRST, B11110000); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(3); delay(lightTime); cathodeOff(0); // planeY2 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001111); cathodeOn(2); delay(lightTime); cathodeOff(0); // planeY3 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001111); cathodeOn(1); delay(lightTime); cathodeOff(0); } //end for } void slashY3Y0(int lightTime, int frameNum) { for (int i = 0; i <= frameNum; i++) { cathodeOff(0); // planeY0 shiftOut(data2, clock2, LSBFIRST, B00001111); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(4); delay(lightTime); cathodeOff(0); // planeY1 shiftOut(data2, clock2, LSBFIRST, B11110000); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(3); delay(lightTime); cathodeOff(0); // planeY2 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001111); cathodeOn(2); delay(lightTime); cathodeOff(0); // planeY3 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11110000); cathodeOn(1); delay(lightTime); cathodeOff(0); } //end for } void slantY3Y2(int lightTime, int frameNum) { for (int i = 0; i <= frameNum; i++) { cathodeOff(0); // planeY0 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001111); cathodeOn(4); delay(lightTime); cathodeOff(0); // planeY1 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001111); cathodeOn(3); delay(lightTime); cathodeOff(0); // planeY2 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11110000); cathodeOn(2); delay(lightTime); cathodeOff(0); // planeY3 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11110000); cathodeOn(1); delay(lightTime); cathodeOff(0); } //end for } void slantY2Y3(int lightTime, int frameNum) { for (int i = 0; i <= frameNum; i++) { cathodeOff(0); // planeY0 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11110000); cathodeOn(4); delay(lightTime); cathodeOff(0); // planeY1 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11110000); cathodeOn(3); delay(lightTime); cathodeOff(0); // planeY2 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001111); cathodeOn(2); delay(lightTime); cathodeOff(0); // planeY3 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001111); cathodeOn(1); delay(lightTime); cathodeOff(0); } //end for } // End slantY2Y3 void slantZ3Y0Y3(int lightTime, int frameNum) { for (int i = 0; i <= (2*frameNum); i++) { cathodeOff(0); // planeY0 shiftOut(data2, clock2, LSBFIRST, B11111111); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(3); delay(lightTime); cathodeOff(0); // planeY1 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11111111); cathodeOn(4); delay(lightTime); cathodeOff(0); } //end for } // End slantZ3Y0Y3 void slashZ2Y3Z3Y0(int lightTime, int frameNum) { for (int i = 0; i <= (2*frameNum); i++) { cathodeOff(0); // planeY0 shiftOut(data2, clock2, LSBFIRST, B11111111); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(3); delay(lightTime); cathodeOff(0); // planeY1 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11111111); cathodeOn(2); delay(lightTime); cathodeOff(0); } //end for } void slantY3Y0(int lightTime, int frameNum) { for (int i = 0; i <= (2*frameNum); i++) { cathodeOff(0); // planeY0 shiftOut(data2, clock2, LSBFIRST, B11111111); shiftOut(data1, clock1, LSBFIRST, B00000000); cathodeOn(2); delay(lightTime); cathodeOff(0); // planeY1 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11111111); cathodeOn(1); delay(lightTime); cathodeOff(0); } //end for } void pinWheelL(int lightTime, int frameNum) // spins in middle from slashY0Y3 to (just before) slashY0Y3 { // Each "set" goes halfway slashY0Y3(lightTime, frameNum); slashZ2Y0Z3Y3(lightTime, frameNum); slashZ2Y3Z3Y0(lightTime, frameNum); // Second "set" completes the '360' slashY3Y0(lightTime, frameNum); slashY2Y1(lightTime, frameNum); slashY1Y2(lightTime, frameNum); } void halfPinLBot(int lightTime, int frameNum) // Bottom "half" of pinwheel -- useful for transistion to slashY3Y0 / from slashY0Y3 { slashY0Y3(lightTime, frameNum); slashZ2Y0Z3Y3(lightTime, frameNum); slashZ2Y3Z3Y0(lightTime, frameNum); } void halfPinLTop(int lightTime, int frameNum) // Top "half" of pinwheel -- useful for transistion to slashY0Y3 / from slashY3Y0 { slashY3Y0(lightTime, frameNum); slashY2Y1(lightTime, frameNum); slashY1Y2(lightTime, frameNum); } // Individual LED Coordinates - (x,y) - axis = corner of transistors (x) & cathodes (y) void oneOne() { shiftOut(data2, clock2, LSBFIRST, B00000001); shiftOut(data1, clock1, LSBFIRST, B00000000); } void oneTwo() { shiftOut(data2, clock2, LSBFIRST, B00000010); shiftOut(data1, clock1, LSBFIRST, B00000000); } void oneThree() { shiftOut(data2, clock2, LSBFIRST, B00000100); shiftOut(data1, clock1, LSBFIRST, B00000000); } void oneFour() { shiftOut(data2, clock2, LSBFIRST, B00001000); shiftOut(data1, clock1, LSBFIRST, B00000000); } void twoOne() { shiftOut(data2, clock2, LSBFIRST, B00010000); shiftOut(data1, clock1, LSBFIRST, B00000000); } void twoTwo() { shiftOut(data2, clock2, LSBFIRST, B00100000); shiftOut(data1, clock1, LSBFIRST, B00000000); } void twoThree() { shiftOut(data2, clock2, LSBFIRST, B01000000); shiftOut(data1, clock1, LSBFIRST, B00000000); } void twoFour() { shiftOut(data2, clock2, LSBFIRST, B10000000); shiftOut(data1, clock1, LSBFIRST, B00000000); } void threeOne() { shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00000001); } void threeTwo() { shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00000010); } void threeThree() { shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00000100); } void threeFour() { shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001000); } void fourOne() { shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00010000); } void fourTwo() { shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00100000); } void fourThree() { shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B01000000); } void fourFour() { shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B10000000); } /* Single lines --- REFERENCE BINARY -------- planeY0 -- Transistor Side of Board shiftOut(data2, clock2, LSBFIRST, B00001111); shiftOut(data1, clock1, LSBFIRST, B00000000); planeY1 shiftOut(data2, clock2, LSBFIRST, B11110000); shiftOut(data1, clock1, LSBFIRST, B00000000); planeY2 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001111); planeY3 shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B11110000); planeX0 -- Cathode Side of Board shiftOut(data2, clock2, LSBFIRST, B00010001); shiftOut(data1, clock1, LSBFIRST, B00010001); planeX1 shiftOut(data2, clock2, LSBFIRST, B00100010); shiftOut(data1, clock1, LSBFIRST, B00100010); planeX2 shiftOut(data2, clock2, LSBFIRST, B01000100); shiftOut(data1, clock1, LSBFIRST, B01000100); planeX3 -- Header Side of Board shiftOut(data2, clock2, LSBFIRST, B10001000); shiftOut(data1, clock1, LSBFIRST, B10001000); Cathode 1 -- Bottom Layer cathodeOn(1); cathodeOff(1); Cathode 2 cathodeOn(2); cathodeOff(2); Cathode 3 cathodeOn(3); cathodeOff(3); Cathode 4 -- Top Layer cathodeOn(4); cathodeOff(4); ALL CATHODES cathodeOn(0); cathodeOff(0); ****INDIVIDUAL LEDs / Columns **** Given in X,Y coordinates. X = "vSlice" - running from Cathode side of board to Headers Y = "vWide" -Running from Transistor side of board to empty end of board (1,1) shiftOut(data2, clock2, LSBFIRST, B00000001); shiftOut(data1, clock1, LSBFIRST, B00000000); (1,2) shiftOut(data2, clock2, LSBFIRST, B00000010); shiftOut(data1, clock1, LSBFIRST, B00000000); (1,3) shiftOut(data2, clock2, LSBFIRST, B00000100); shiftOut(data1, clock1, LSBFIRST, B00000000); (1,4) shiftOut(data2, clock2, LSBFIRST, B00001000); shiftOut(data1, clock1, LSBFIRST, B00000000); (2,1) shiftOut(data2, clock2, LSBFIRST, B00010000); shiftOut(data1, clock1, LSBFIRST, B00000000); (2,2) shiftOut(data2, clock2, LSBFIRST, B00100000); shiftOut(data1, clock1, LSBFIRST, B00000000); (2,3) shiftOut(data2, clock2, LSBFIRST, B01000000); shiftOut(data1, clock1, LSBFIRST, B00000000); (2,4) shiftOut(data2, clock2, LSBFIRST, B10000000); shiftOut(data1, clock1, LSBFIRST, B00000000); (3,1) shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00000001); (3,2) shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00000010); (3,3) shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00000100); (3,4) shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00001000); (4,1) shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00010000); (4,2) shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B00100000); (4,3) shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B01000000); (4,4) shiftOut(data2, clock2, LSBFIRST, B00000000); shiftOut(data1, clock1, LSBFIRST, B10000000); */
@beastmode4906
@beastmode4906 9 жыл бұрын
thank you so much was on google for hours trying to find the code, you just help me so much!!
@rmandra
@rmandra 3 жыл бұрын
@@Backyardwoodworks2014 Also, thank you. I got this kit many years ago and recently started to work on it when I found out that the Radio Shack blog that had the code was no more.