Synchronization of Coupled Pendulums

Check This OutI've been working on a related problem for one of my classes (Finding the natural frequencies of spring coupled pendulums with 2DoF). I just finished, and I did a quick Google search on coupled pendulum motion. I came across that link, which, I think, is very interesting.I just thought someone else might find it interesting :)

Topic by trebuchet03 


Synchronous AC110V Motor Question

I have a small AC synchronous microwave motor that I want to use for a project. The problem is that even though it says CCW/CW, which i take it to mean counter clockwise and clockwise, it randomly seems to choose which direction it wants to turn rather than me reversing the current to change the direction. What makes this motor randomly choose a direction? Is it some internal component that randomly decides it's direction? Basically, is there a way I can make it go the direction I want? If not, can someone point out a small size motor type that is cheap and has a lot of torque? Thanks to anyone who replies!

Topic by rodneykristy   |  last reply


Help with TIP 31 Sound Reactive LED's Answered

I am having trouble getting my led strip to blink to music.  I built this circuit: I have tried this with a battery powered strip of led's and it worked perfectly, but when I connect it to the led's powered by the power supply, it either doesn't turn on at all or is extremely dim. Could someone explain why it isn't working?

Question by cardboarddude   |  last reply


Synchronize Console .log files with Email

Does anyone know a method of emailing yourself updates to a .log file on the Mac? I guess you could use a crontab, but is there any other way?

Topic by Ethanal 


Help with LED's on headphones synchronized to music.

I want to be able to put LED lights in my SkullCandy headphones and have them synchronize to the music or at least light up and look cool. Maybe I could throw in a 555IC and have the LED's blink from left to right. I have read online how to do it and I'm stuck. If someone could please explain how to do it or show me in a video. I have a multimeter and such. I don't know the model number or model name of the headphones. I will post pictures of the headphones and where I want the LED's. I don't think this matters much but I want to use high-intensity bright green LED's. I know how to take them apart. I would prefer if I didn't have to use a transistor, but if I have to then I will. Please send me a schematic or something. Thanks. On the picture where I am pointing that is where I want the LED's.

Topic by Wally_Z   |  last reply


DISNEY LED SHOW HELP?

I have a paper model of "Sleeping Beauty Castle" of Disneyland. I got this model from disneyexperience.com and I need to make the lighting on the castle exactly or like the one at Disney during their firework shows.Now I'd like to place the LEDs around the perimeter of the inside of the castle. The perimeter meaning the space in between the castle and the pink top part of the castle. I want to know if you guys know how to program them to change color fade and do other effects and to synchronize the lights to music. And not just flashing or pulsing to music, but being part of it...just like the one at Disneyland. I'd also like to have a dimming effect on it too. And the LEDS will be 7 color changing ones. ANY help would be gladly appreciated. THANK YOU. Please let me know if you need anything on my end.

Question by ray33   |  last reply


Mp3 players (except ipods) and itunes synchronizing software?

I was wondering if i can synchronize my mp3 player with itunes and not use the drag and drop utility

Question by arv_christos   |  last reply


what is hybrid electricity grid?

How to synchronize solar and wind energy?

Question by    |  last reply


chrisymas lights

Can anyone tellme what i need and hw to synchronize my christmas lights  that wont break the bank

Topic by elissa11   |  last reply


AC 30v 50/60Hz Synchronous Motor from 110

So I bought some Mirrowave turn table motors to use as an Epoxy Rod dryer I knew I didnt want the 220's and thought I had bought 110 AC  but they are  AC 30V    3W   I have 4 of them and need to know a cheap way to wire em up.  Was being cheap and didnt want to pay $10 a motor and got all 4 for $10 but now I see I am going to need a voltage reduction and or transformer.  Was thinking one of my old printer or laptop cubes would work.. but those are all AC/DC converters :-( I am pretty good with hands.. but Electrical circuits not my strong suit. 

Question by ToddG39   |  last reply


Windows Media Player won't sync w/ Creative Zen V Plus?

Every time I try to sync my Creative Zen V Plus with my Windows Media Player library, an error message pops up that says "sorry for the inconvenience", but if I move that aside, WMP runs fine. I then try to sync my songs with my player, but every time I do, the message "Preparing to sync" appears and nothing else happens. I try again and WMP says that my MP3 player is running slowly, but it's fine. I've synced with WMP before, this is a new problem. Help! Please!

Question by shinyegg   |  last reply


LEd light show

Is there any way to synchronize your computer LED lights with an equalizer to make it do a light show? based on bass and treble. thanks for all ther help you can provide.

Topic by Yomster 


Which power do i need to run a motor as a generator in the following environment?

I want to generate electricity with a rotating axis at a power of 3 Watt. The mechanical torque (depending on the gearbox) on the input axis varies between 0.73 Nm (@ 250 rpm) and 0.122 Nm (@ 1500 rpm). Currently i am thinking about a synchronous machine, because it yields higher efficiency, but it is very difficult for me to find a synchronous machine fulfilling the mechanical torque regarding the power.  Furthermore i usually just find motors in that size, so i need to turn them around but i have problems understanding the data sheet. For example this motor: Name: ASM 16 Output Power: 3.1 W Input Power: 9.2 VA Rotation velocity: 1000 rpm As this is a motor, but i want to use it as a generator, should i align the output power from the motor with my input power (the 3 W mentioned above, and than as a generator)?  Can you please give me some ideas how o progress from here? 

Question by falko_doering   |  last reply


Why use 2 mosfets? Answered

Http://electronicdesign.com/site-files/electronicdesign.com/files/archive/electronicdesign.com/content/14978/60488_fig_01.gif In the circuit, they use 2 mosfets namely q1 and q2. I was thinking what does q1 do. I tried simulating the circuit with and without q1 and the result were identical. Almost all synchronous rectifiers are following this pattern, what could be the purpose of q1? input and output conditions... Input: sine wave similar to AC mains (100Vrms 60Hz) Output: half wave rectified sinewave Load: 1kOhm resistor The red curve in the graph represents the voltage in the output The blue curve in the graph represents the voltage of a 1 ohm resistor in the input (for current reading purposes)

Question by codestroy7   |  last reply


Image Notes Misaligned

I added image notes to a photo via Firefox 4 on this page:  https://www.instructables.com/id/Yet-Another-Daft-Punk-Coffee-TableDisplay/step7/Music-Synchronization/.  It's the 3rd photo.  The boxes are all in the wrong place, shifted upward, when viewed on the Instructable.  However, n the editor, they're perfectly aligned.

Topic by lincomatic   |  last reply


what is meant by ESCs calibration?

I know how to calibrate ESCs on the quad-copter. Howver, I dnt understand the concept of calibration. What is meant by ESC callibrarion? what happens when we calibrate the ESCs? is it so they move synchronously or so the PWM signal reaches each ESC at the same time?

Question by Bam Boy   |  last reply


How to synchronize the brightness of a grille-mounted neon tube/LED bar to a car's tach/speedo?

I have a 1997 BMW 328i, and I've been thinking about installing either a neon tube or a bar of LED's in the grille of the car to use at night (most likely not street legal, I know). I want the brightness of the tube/bar to be controlled by one of two things: The speedometer or the tachometer. I.e., if the speedometer is at 0 MPH, the light is off, and if the speedo is at 75 MPH, the light is fully on. Same thing with the tach, light off at 0 RPM, light fully on at redline. Unfortunately, I haven't the slightest idea how to use the car's computer or the gauges themselves to set up a control module for the light. If any of you has a good amount of knowledge about automotive gauges, I would appreciate your help!

Question by Jonny Katana   |  last reply


Synchornized external falsh light for cheap

Hi, I am looking for someone who could do an synchonized flash light such as this one but for much cheaper ;-) The challenge is on synchronizing the camera with the flashlight, if possible wireless. The light itself and the diffuseur are no real topic. The use of such devices helps a lot when taking pics for your I'bles or your ETSY shop if you have one. Thx B

Topic by BaptisteL8   |  last reply


synchonized flash light for cheap?

Also posted in "burning question " forum Hi, I am looking for someone who could do an synchonized flash light such as this one but for much cheaper ;-) The challenge is on synchronizing the camera with the flashlight, if possible wireless. The light itself and the diffuseur are no real topic. The use of such devices helps a lot when taking pics for your I'bles or your ETSY shop if you have one. Thx B

Topic by BaptisteL8 


Led problem

Hello, I apologize for my bad English, I'm from a country where English is not the official. I have a problem, I made ​​a circuit to synchronize the lights to music with a TIP31. the problem is when I connect it to the amplifier is blown, I fixed it, but I do not understand why it burns, can you help me? Is it because TIP31 is powered by 12V? If you could help me find a solution?

Topic by mitza sb   |  last reply


Help with making a triangle wave sequencer with pitch relative to tempo, please? Answered

I'd like to make a low frequency triangle wave oscillator/sequencer, but the oscillator and sequencer have to somehow be synchronized with each other, so that if the tempo gets doubled, for example, the pitch also goes up one octave. How can I do this? I've already made a circuit based on this oscillator and the 4017 decade counter as a sequencer. (Ignore all capacitor, resistor and pot values; I haven't defined them yet)

Question by aelias36   |  last reply


AC motor speed controller for stereo turntable

Hello Brainiacs, I am wondering about salvaging a electric fan speed controller for my Vintage (1980's) Stereo turntable. I purchased a table from Europe and it ran on 50Hz 240v. But once I rewired the unit for 110v 60Hz it still ran too fast. It is a synchronous 24 pole motor driving a small pulley and belt system. I was told a speed controller would fix the issue by varying the voltage. True? Or if someone could come up with a schematic! ??? Any suggestions? 

Topic by bullit224   |  last reply


Dropbox application in background process on OpenWRT processor of my Arduino Yun.

Hello everybody, Simple question: does the Arduino YUN support the same DROPBOX functionalities as my laptop? Basically, I need to download data from the SD card of my Arduino Yun to my application server. But the internet connection of my Arduino is not very stable. How I want it to work: 1.    I have a sketch that writes data on a TXT file to my SD card every 10 minutes 2.    I want to install Dropbox on my Arduino Yun 3.    Then, whenever the Yun is connected, it will synchronize all the files from the SD Card with my Dropbox folder on my server. That would happen (I guess) in the background, without my Arduino needing to run a sketch. To do that, I think I need drobox to run ‘in the background’ on my Arduino microprocessor. Did anyone do this before? Thanks. What does NOT work: Initially, I used the "LogToDropbox" sketch inserted in the "Datalogging to Dropbox with Arduino Yun" tutorial at the following link: https://www.instructables.com/id/Datalogging-to-Dropbox-with-Arduino-Yun/ in order to ‘actively’ upload files to my Dropbox app console from my SD card with an internet connection. But if , my Arduino Yun is losing the internet connection, it is impossible to upload the files created during the downtime to my Dropbox app console. These files are stored on the SD card plugged on the Yun during this time interval, but not synchronized.

Topic by DELETED_jay97430 


What Capacitor size for a 4 stack MOT Tesla coil?

I have just bought a 4 stack MOT transformer in a case and oil filled it says 8.6kv on it but no idea of amperage, I have a large variable ballast and hooked it up to my test jacobs ladder and it pulls about 10amp and really fires the ladder well. My coil has a 6inch by 29inch winding on the secondary and a Synchronous spark gap (200bps) but I cant seem to get a decent spark off it I have an MMC of 44.0nF @20kv at the moment 

Question by GordieO1   |  last reply


Stator back iron and Slot dept determination? Answered

Hi All! I am working on Permanent Magnet Synchronous Motor design. I need assistance on how to determine analytically or by any means possible stator back iron and slot dept dimensions other than using machine design software or application. Also, the Rotor Core size or diameter so as to know the spindle diameter. In the course of my research, I had uncovered how to calculate slot width, tooth width, pole arc etc but am yet to solve above problem. Anyone with the solution please help! Thanks in anticipation.

Question by Ugoem   |  last reply


Top LED Instructables

The number of awesome LED Instructables keeps increasing, and we want to show them off! We have an older list of top LED Instructables, but within the space of a year and a half, including the very successful Let it Glow! and Get the LED Out! Contests, we've gotten many more cool projects that light up with color due to LEDs. Here are, in no particular order, 10 more great LED Instructables for you to try (or just admire): LED Chess Set With some dedicated modifying, you can turn a cheap glass chess set into a beautiful, glowing version. It also inspired another Instructable, the Simpler LED Chess Set.   Synchronizing Fireflies A favorite of randofo's , this series of LEDs shows a possible way that fireflies synchronize lighting up at the same time. Turn Signal Biking Jacket Hand signals, meet technology: a biking jacket with controllable glowing turn signals built in. 4x4x4 LED Cube Make light-based designs and patterns come to life with a large cube of LEDs. Animated Multilayered Engravings Transform a simple engraving into an animated piece of art with LEDs. LED Pasties The LED pasties became an instant classic--a very simple, very creative upgrade of burlesque pasties. Daft Punk Replica Table The squares on top of this table light up individually and can be programmed to make patterns and designs. LED Creatures These LED creatures can be programmed to recognize each other and can be a great project for kids and beginner LEDers. Hard Hat LED Display Geeks and construction workers are not often associated, but this hard hat bridges the gap with its LED Pong display. Fiber Optic and LED Garden Make a glowing garden that looks good both day and night and never needs to be watered. Choosing these 10 was very difficult--there are an enormous number of great LED projects on Instructables.Enjoy these projects, and let there be light-emitting diodes!

Topic by joshf   |  last reply


OneDrive error 0x80070185 during migration from Dropbox to Onedrive

We are attempting to migrate from Dropbox to OneDrive across the organization Mac and PC. We are piloting with a few users and "Files on Demand" are a requirement. We are running into issues where accessing Office documents from the OneDrive folder (using windows explorer) causes an error 0x80070185. If on a PC, you can click "skip" and the file opens normally. On a Mac, you have to wait a few minutes for OneDrive for business to realize you want to access the file which means it synchronizes and then opens up normally. I have opened up a Support request in Office3 65 but it's obvious first line support has no clue what they are doing. Anyone else have this issue? I have seen other posts about this error with no resolution.Any help much appreciated.

Question by Akshay_M   |  last reply


help with leds blinking to music

Ok so im in the process of building a portable car stereo and i have everything done except for putting some leds blinking to the music on it. i have attempted this in the past and it never really worked how i wanted it to. so i cant really explain every connection in my box but i will explain the components used car stereo      12-14v Xbox power supply    12v drill battery    12-13v drill charger   2 relays used to automatically switch from the wall battery   and the battery charger  everything shares a ground and connected to the stereo have leds hooked up to the remote normally used to switch on car amps   its output is 12v and i think 300 milliamps i would like to use this for the power and i need to use the speaker output as the audio  i tried to use a tip31 but it never worked the way i needed it to just ask if u need any more info

Topic by kylejjjjj 


What will be the effect of series connection of two fans on static pressure of air? Answered

I have bought two similar  axial fan blades similar in each respect pitch,size,material,angle of attack etc below is the image.I have a powerful 300W electric motor.I want to attach{weld} both of these blades with the shaft of the same motor in series one above the another on the same motor shaft this would ensure that both the blades rotate with same RPM ,of course they would be separated by some distance i know that series connection of fans would increase the static pressure of air,but what confuses me a lot is that how the guide vanes{wings} of both the blades be aligned with respect to each other for maximum static pressure should the wings of both the blades synchronize with each other i-e clocked at the same rate or should they be at different positions with respect to each other.I have searched every forum but nothing fould.You people are my last hope.

Question by LoRD CurZoN   |  last reply


Laser Pointer shooting range ideas?

Idea is to slightly modify the annoy a tron circuit to turn on a laser pointer at a specific time interval, then back off... Then i would put this into my lego mindstorms robotic thingy that will point the laser to random points on the walllink to annoy a tron: https://www.instructables.com/id/Homemade_Annoy_a_thing_Annoy_a_tron/thats all great and a work in progress, really just background inforeal question, just askin, is what technologies are there that would allow a microcontroller to "sense" where the laser is pointing and then to link that info to an sensor that would find where the bb bullet hits? Then just give me a percentage of how far off i was from the dot, maybe in the form of an LED bargraph display like this one: http://www.goldmine-elec-products.com/prodinfo.asp?number=G8942this isnt something i expect to do, but i want to do something with 555s and this looks like a pretty cool ideato clarify, on the top part, the laser and lego mindstorms are 2 separate systems, one is simply mounted on the other, but by using the same timings it is possible to make them work synchronously... its a work in progress, stay tuned if interested

Question by raykholo 


VB6 Christmas Light Controller

I have created a VB6 program that synchronizes Christmas lights to music. It could use some refinements in the program. I have used this program for over 13 years. It is capable of 128 channels, may be more but I do not need any more at this time. As of right now the program loads the sync file first then plays the music. This takes up to 4 minutes to load the music sync file between songs. I would like to read the file as it needs it when playing the music. That way to load time would be almost nothing. These are only on and off (blinky) lights for my display, but that is fine with me. I call this program Rudolf and it works on almost any computer. I have run this on a 166 MHz computer with only 48mb of ram and Windows 98! The program also could some help with the editing feature for the lights. If anyone is willing to give me a hand with this I would be very grateful. I am more than willing to give the source code to any one for free. I plan on using this program for many more years to come. I have tried Vixen, but it stops running after a while. Thank You Ricki

Topic by ricki.baron7   |  last reply


Converting 3 AAA device to direct power point plug Q?

Dear electronic gurus, i need some urgent assistance with this "relatively" simple problem, but am not sure how to work it out... i have a device that is like a multi-colour changing light bulb ( not sure if it is glass or led ( most probably the later)), which REQUIRES 3 AAA batteries in the sequence of UP DOWN UP (standing arrangement) and I wish to convert this towards something that i could directly use a DC plug point power source ( 240v ) ... Can anyone please assisst / provide an instructable for me ? I've looked at something like this (http://www.ebay.com.au/itm/AU-Power-Supply-Adapter-Converter-AC-110-240V-to-DC-4-5V-1A-w-6-x-plug-converter-/200874819533?pt=AU_Laptop_Accessories&hash;=item2ec5127fcd) which is a AU Power Supply Adapter Converter 100V-240V AC to DC 4.5V 1A Jack 5.5x2.1MM but am not sure if it is correct and don't want the light bulb to blow up on me .. i understand some soldering may be required but need guidance on the whole project.... Please please throw your ideas at me I'm thinking if this is successful, i might do it for another similar device making it two light bulbs  which can be powered through the same point if possible to maintain synchronization of the colour change :) Thanks heaps in advance!! :D

Question by porkupine888 


Homestuck Albums

I know this is not something that I usually do, but I have decided to create albums for the original kids from Homestuck: John Egbert, Rose Lalonde, Dave Strider, and Jade Harley.  Explanations of the songs picked will be noted, and I will try and get the running times of each album.  Each album has six tracks, with extended versions of songs when possible, so I'd say these are Deluxe EP (extended playtime) Singles.  I may try to cut down the running time and make LP (limited playtime) singles another time, and also, don't hold me to it, do soundtracks for some of my favorite trolls. (Note: you don't have to appreciate, understand, or have read Homestuck to enjoy this; as all the songs center around a character, to some extent, they center around a theme.  Enjoy!) Without further ado, DarkOwlKnex productions proudly presents its first four Deluxe EP singles. (Disclaimer: I don't own any of these songs; these are just some of my favorites that I feel fit the lives of the characters.  All rights go to the original artist and record company.) The Windy Thing: The Tale of John Egbert 1. Blue Monday (12" Version) - New Order (John's Home Life Theme) 2. Procession (12" Version) - New Order (John's 'Physical' Death Theme) 3. Ride The Wild Wind (Hybrid Extended Version; Fan Made Mix) - Queen (John, The Heir of Breath) 4. Hammer To Fall (Headbangers 12" Mix) - Queen (John's Strife Specibus: The Hammer)  5. Lullaby - The Cure (John and Vriska's Theme) 6. High (Extended Version) - The Cure (John's Ascent to God Tier; John and Jade's Brotherly/Sisterly Love Theme) GrimDark: The Tale of Rose Lalonde 1. Vicious Streak - New Order (Rose's Home Life Theme; The One-Upping-War Against Her 'Mother.') 2. Procession - Queen/Traditional Arrangement (Rose's 'Physical' Death Theme) 3. The Prophet's Song - Queen (Rose, The Seer of Light; Rose and Doc Scratch's Theme) 4. Twenty Four Hours - Joy Division (Rose's Destiny) 5.  The March Of The Black Queen (Deep Cuts Version) -  Queen (Rose's Rampage) 6. She's Lost Control (12" Version) - Joy Division (Rose Goes GrimDark) Cool Kid: The Tale of Dave Strider 1. Airheads - Roger Taylor (Dave, The Cool Kid; Dave's Home Life Theme) 2. Ceremony (Original Version) - New Order (Dave's 'Physical' Death Theme) 3. Time - Freddie Mercury (Dave, The Knight Of Time) 4. Two Sharp Pencils (Get Bad) - Roger Taylor (Dave's Ironic Humor; Dave and Terezi's Theme) 5. Synchronicity (Part One) - The Police (Dave's Time Hijinks) 6. Synchronicity (Part Two) - The Police (Dave's Time Hijinks... Revisited) Squiddles: The Tale of Jade Harley 1. De Do Do Do, De Da Da Da - The Police (Jade's Home Life Theme; Jade, The Silly, Creative Girl) 2. Ceremony (Alternate Version) - New Order (Jade's 'Physical' Death Theme) 3. Killing Time - Roger Taylor (Jade, The Witch Of Space) 4. Dreams Never End - New Order (Jade's Dreams) 5. A Winter's Tale (Fickle Mix; Fan Made Extended Version) - Queen (Jade's World In The Medium) 6. Beautiful Dreams - Roger Taylor (Jade's Dreams... Revisited) That's it!  Again, all rights go to the original artist and their record company/copyright holder. I hope that you enjoyed, and since I'm assuming that you didn't listen to all of the Deluxe EP's, I encourage you to come back and listen to them all when you have the time. -DarkOwlKnex

Topic by DarkOwlProductions   |  last reply


End Zone card game (a great card game I made up)

END ZONE The Card Game End Zone is a fun card game using strategy while choosing a way to win. Here's one of the most interesting facts about End Zone: Only one deck is needed to play. Each deck must have exactly 100 cards. At the bottom is the Blackout card, or End Zone card. The blackout card has no picture. Each deck must have one blackout card. Each blackout card is placed at the bottom of the deck and must be shown to each player before being placed there. The whole point of the game is to get your opponent to draw the blackout card. But there is a catch. At no time can you look through the deck to see where the blackout card is. Any cards that were played are sent to the bottom of the deck at the end of the controller's turn unless stated otherwise. This is where strategy comes in. You will have to remember how many cards were already played in order to make an accurate guess where the blackout card is. Here are the basic steps to playing. 1.Each player draws three cards a the beginning of the game. Because there is only one deck, you would have to synchronize between draws meaning that you would draw a card, then your opponent would draw a card, then you would draw your second card, and so on. This only makes it fair. When it is your turn: 1.Draw one cards. 2.You must play one card. You are allowed to activate a card during the first turn. 3.Discard two cards `to the bottom of the deck. 4.End turn. When it is your opponents turn: 1.Opponent draws two cards. 2.If you have a card that has a lightning bolt in the top corner, you can play it after your opponent draws. 3.Opponent makes move. Once again, cards with a lightning bolt can be played. 4.Opponent discards two cards. 5.Opponent ends turn.

Topic by PineapplebobTheGreat   |  last reply


Neotech NT7086 display and arduino?

I found a couple of these older looking dot matrix LCDs in some electronic logbooks that didnt work. it was a 14 pin connector, so i figured why not try it out. i found the pinout of each pin using the chips that were on board, but i don`t know where to go from here, or if i should even bother. the display was made by or for hantronix, and they have a touch layer that could be used as well. each display has 7 of the NT7086PQ chips on it, a 74HC74D, a 74HC40103D, and an LM324. it was originally connected via a flat flex cable, but it had a convenient place for headers to plug it into a breadboard. the 74HC40103D is an 8-bit synchronous binary down counter: http://www.nxp.com/documents/data_sheet/74HC40103.pdf the 74HC74D is a Dual D-type flip-flop: http://www.mouser.com/ds/2/302/74HC_HCT74-225071.pdf the Neotech chips are LCD display drivers: http://www.crystalfontz.com/controllers/NT7086.pdf upon inspecting the physical properties of the display I can see there are the rubber/carbon edge contacts on two sides and a ribbon on one end. The pinout i figured out is: 14 is GND 13 is base on SOT23 transistor     (connected to 12 on parent board) 12 collector on a SOT23 transistor 11 gets pulled low at some point (pulled low on parent board) 10 is power 9 is cl2          (unactive high?) (on one set of neotech chips, assuming the edge contact drivers) 8 Clock input (74HC40103D) 7 does nothing 6 is d4 on one chip? 5 is display off  (active low) 4 is d4 3 is d3 2 is d2 1 is d1 So i would appreciate any input people have. I would ideally like to drive this using an arduino/atmega, and although i have not read the neotech datasheet to much depth it would appear to work similar to the popular parallel displays, but maybe with different syntaxes. so is this a possible thing, or is it a fruitless endeavor? thanks in advance.

Question by zack247   |  last reply


Circuitry help needed - microcontroller in binary clock

Ok, so I am currently working on a project which involves some circuitry and programming. I am planning to make a simple binary watch. Now with my current plan I am planning on making 2-3 circuit boards depending on what I can get. The first circuit board will connect the leds for the time read. It will be a standard four column hour and minute binary clock readout. The second board will contain an ATtiny85 microcontroller, a 74HC595 8-bit shift register, two push buttons, two 10k ohm resistors, and four 220 ohm resistor. The third board will be glued to the bottom of the second board for the battery holder and some extra space to add wire tracing. Now I plan to design and etch my own pcb boards and solder them together. Though for the second and third board being glued together would add a bit of thickness so I am wondering if I can buy a dual sided pre-sensitized circuit board to etch?Thes plans are based off the work of another user on here, link to his clock below: https://www.instructables.com/id/Simple-Binary-Cl... Credit to him for this great and simple system. With my very limited knowledge and understanding of circuitry and programming, this is one of the most straightforward clocks I have found. This is general format I will try to follow, though I do wish to make some modifications to the circuit or program based on what is possible with the circuit setup. First I am concerned about the power consumption of the system and how I can reduce the supplied power to make it run on a watch battery and run for about a year if possible or longer. Second I know that adding a crystal oscillator can improve the accuracy of the clock by synchronizing the internal clock on a set frequency. So with that, how would I add a 16 Mhz crystal oscillator to the circuit? The program that is given in the project runs based on the internal 16 Mhz internal clock of the ATtiny85. Third question is what system works best to program the ATtiny85? I have a Raspberry Pi 3B+ and I also have Syper IDE and I am fairly good at programming with python. So could I program the ATtiny85 with my Raspberry pi and use python? Or would I have to use a different board and language to program the micocontroller?

Topic by Tman179 


Will a 240 Volt AC Motor Operate on 120 Volts AC

I need to know if a 240 volt ac squirrel cage fan motor can be safely run on 120 volts ac. An quick internet search reveals several sources that all say no, but I am concerned that the people answering the question don't know what they are talking about - as is often the case on the internet. I know there are a lot of want-to-be engineers out there ready to answer any question posed even when they have no experience or knowledge of the issue. Please do not guess at this or offer some unsubstantiated opinion.  I need a real answer to this question. Here is what I do know about this issue from researching a couple of electrical engineering sites. Lowering the motor input voltage by 50 % does several things. 1) The motor will run slower. 2) The torque developed will drop to about 25% of its full voltage rating.  3) This decrease in torque can make the motor stall when trying to start under a heavy load. 4) There may be drastic speed fluctuations due to load variations.  5) The motor current will double if the load remains constant. I can understand how these issues could cause severe problems in some applications, but perhaps not in the application I am looking at. I want to use a squirrel cage motor rated at 1/20 HP, 240 volts, 0.5 amp in a direct drive fan application. Here is how I am looking at this issue: - I need to reduce the fan speed so the speed reduction is a good thing in my application. - I have test run the motor on 120 volts for about an hour and there is plenty of torque to operate the fan. I figure at the lower speed there is less air load on the fan blades so less torque is required. Again a good thing for this application. The is no heavy load at start up and the motor seems to have plenty of starting torque for the fan. The fan does not reach full speed as fast as it does on 240 volts, but it still does so in about 4 to 5 seconds so this shouldn't be an issue either. Since it is a fan moving air and not some machine moving gears and levers the load is constant so the speed does not fluctuate at all. Again this should not be a problem. The possibility of the motor current increasing is my only concern so far and apparently it is not an issue since a test run showed the current decreased from 0.5 amps at 240 volts to 0.4 amps at 120 volts.That is a significant current drop instead of the predicted increase. Since this is a fan, I think the current decreases because the load decreases with the lower speed. For these reasons and based on my apparently successful test run I think the motor will operate fine on the decreased voltage. However, I am not sure how to factor the motor slip into this. Slip is the difference between the synchronous and asynchronous speed of an induction motor. From what I have read the slip will increase dramatically when the voltage is cut in half, but I am not sure what physical affect that will have on the motor. If you know what effect that will have or know of some other factor I am not catching please let me know.         

Topic by biochemtronics   |  last reply


"Ride" by Michael Cooper - My Favorite Thing From the Maker Faire

This was, by far, my favorite thing at the 2008 Maker Faire. From Make's Description:Ride is a custom single rider helicopter with eight engines conceived & created by sculptor, Michael Cooper. It looks like more like a time machine invented by Dr. Seuss for George Jetson than anything you've seen in the air (or on land) recently.Michael Cooper is a sculptor who combines wood, metal, kinetics and mechanics with a twisted imagination resulting in beautiful, unique works of art that roll, spin, hop, contort and make people laugh while simultaneously scratching their heads. After 34 years as an art instructor at Foothill and DeAnza Colleges, he has now "retired" to his studio in Sebastopol where he spends his days devoted to sculpting, inventing and pushing the boundaries of form and function with a heavy does of humor.I know the pictures don't do it justice, and it's really hard to see everything, but take a long look and answer this question before you continue: Do you think it does/could fly? (Scroll down below the line and look at the pictures.)... did you look at the pictures first?There are so many reasons why it can't fly that I won't bother to discuss them here. However, the truly fascinating thing I liked so much was standing around Ride and listening to the conversations, and particularly watching its creator stage-manage the discussion. Lots of people wanted to discuss why they thought it could or couldn't fly - remember that this was the Maker Faire, so lots people here were builders or tinkerers (or at least thought of themselves as such). There were half-hour long heated debates about the tiniest of minutiae -- fuel line diameters and spiral exhaust ports, for example.Periodically, someone would gain the courage to think about the system as a whole and would approach the creator to ask, "So it flies, right?" He'd answer truthfully enough by saying, "Well, it's not done yet," and then launch into a detail, like the difficulty in synchronizing 8 engines; this would get the whole group rolling again. Later Saturday evening, when most of the kids had gone home and everyone else was outside listening to a band, a group of particularly crotchety old tinkerer-types were showing off their smarts and trying to outwit each other. After one onlooker had finished with his unnecessarily loud pronouncement of "based on my extensive experience building 1/6th-scale steam locomotive engines, I absolutely sure it can fly," another of the group tentatively approached the creator, and asked the inevitable question.Michael Cooper took his cue, dodged, and redirected into a discussion of how the transmission linking the 8 engines to the propellor was open, and the first time he ran it, he was probably going to get covered in grease. I burst out laughing.After they were all rolling again on how many cubic feet of compressed air the vehicle should optimally carry for its four pneumatic lifter feet, I quietly asked Michael how many people "got it" and how many people asked if it could fly. He confided that I was very much in the minority. Further, he got a big kick out of removing his name tag, and listening in to the can-it-fly conversations, too.I really hope I get a change one day to work with Michael Cooper to design and build a gorgeous Ride-like vehicle for me, so I get the chance to answer the question, "So, does it really fly?"

Topic by ewilhelm   |  last reply


How can I create a PPM-generating device whose output can be recorded as audio?

Dear Community,          In the late 80s and early 90s, the whole Teddy Ruxpin craze took off, and there were many spin-offs on this.  The basic idea was that the toy had a cassette player where one channel was directed to an audio circuit in the usual way, and the other channel had animation synchronization code directed to some sort of receiving circuit which controlled motors to make the mouth and eyes move so it would appear to be telling a story or singing a song.  My favorite instance of this (which I had as a child), is the Ideal Big Bird Storymagic based on the famous Sesame Street character.  There were so-called "satellite toys", Cookie Monster and Oscar which connected to Big Bird via a special patch cord, and they talked along and helped Big Bird tell the story.  I never had those though.  Different fans tell me that the animation sync code is Pulse-position modulation, the same code used over radio waves to guide remote controlled cars and helicopters.  I'm not sure if this is true or not.  I've looked at it in a waveform editor, and there appears to be some amplitude modulation going on here too.  (Please see below).  The highlighted (white) section is the span of two words.  The right (lower) channel shows the voice speaking these two words, and the left (upper) channel shows what happens to the code (which really sounds like a fax machine) as he moves his jaw down, up, and down again in time with the words.  Is this PPM, and if not, what is it? Now that I'm in my mid 20s, and I work with young children, I found one of these Ideal Big Birds on Ebay in great working order.   I'm wondering if it's possible to try to re-create what the manufacturers used to create this sync code in the first place.  Sesame Street created many nice "regular" story / music tapes with Big Bird as the central character.  I thought it might be cool to take some of these (especially the Follow That Bird soundtrack) and add the sync to make my own sort of unofficial storymagic tape (just for fun, and for my students, not to sel or share, as this would be a copyright issue).      I'm wondering if some sort of 1KHz oscillator-like device could be built that has levers of some kind, which could be routed through a DAW or a mixer, which would allow one to perform along with a program, and place the appropriate modulation envelopes into the stream of PPM to place the movements?  I think there are at least two kinds of modulation in the code; that for the beak, and for the eyes.  There must be other kinds of modulation for Cookie Monster and for Oscar.  If something like this seems practical and feasible, I'd enjoy learning about it, just for the fun of it.  If it is possible, I am also wondering how or where I could have it built, and for what sort of budget, as I am far better with my ears than with the soldering iron.  I have tried and tried, to no avail, to find someone in the “talking toys” community who knows how this was originally created.  Let me know if you'd like me to send you a clip of the audio file.  Here's a link to someone else's on Youtube so that you can see what I'm talking about.  Thank you so much for taking the time to read all of this senseless ramble!! http://www.youtube.com/watch?v=xxCnmao8FAs Thanks a ton for any insights that you have!!!  I apologize in advance for the inherent nutty-ness of this post! ;)  Sincerely, Jessica

Question by jtsoundtech   |  last reply


Useful Batch Commands

Hey guys, I wanted to post a quick forum topic about useful batch commands that are seldom used or not well-known, or maybe just useful tidbits. Note: These do not have to be used, they are just extremely helpful and are just "extra," meaning you could probably find easier-to-understand but not as useful commands. 1. The CHOICE command The reason this command is so cool is that unlike other Y/N menus, when you enter the desired number, you don't have to hit enter, it goes straight to the next screen. You can also program it to execute a command after a set amount of time. Here's how to write it out: choice /c:12345 /t:5,10 if errorlevel 5 goto ha if errorlevel 4 goto joke if errorlevel 3 goto tired if errorlevel 2 goto fried if errorlevel 1 goto chiken To time it, you type /t and then a colon. You write the choice that you want to be timed, e.g. 5, and the amount of time in seconds you want it to wait for seperated by a comma. 2. The Random Variable The reason I deceided to put this up is because it is one of the only if not the only variable that is already programmed into the system. By using it correctly, you can generate a number between 1 and 32767. WHAT?! Of course, you can narrow it down, to, say about 1 and 100. :dim set rnd=%random% if %rnd% GEQ 101 goto dim if %rnd% LEQ 0 goto dim set number=%rnd% So as you can see, %random% is a set variable and generates a random number for you. Please keep in mind that this can take one second, or one eternity (literally) since it doesn't narrow down the choices after finding that a number doesn;t work. So, you may keep on generating 101 forever and never get to 100! 3. The ^| Command. Ever get frustrated because you are making an animation with, for example, stick figures and are getting driven nuts because the minute it gets to a certain part, it exits on you? The reason is probably because you used the | symbol, which is actually knd of like a command by itself. So, if you're doing something like this: echo [0] echo /| echo / The reason it is not working is because you didin't use a ^ before the |. Here's what it should be: echo [0] echo /^| echo / Yes, it looks wierd in the editing stages, but looks much better in the real thing. Just remember, you will have to remember that the ^ will be invisible, so make sure everything else in front of it is like this: echo [0]   [ echo /^|    [ echo /     [ So that the [ or whatever it is is one space ahead from the others. 4. The %TIME:~0,5% Command. What time is it? Oh, it's 3:16:52.29! Ever been frustrated with the TIME command? For one, who ( and when I mean who, I mean the average batcher who doesn't use the TIME command to synchronize seven different computers around the house which I could never hope to do) needs to be that exact? When making a batch alarm clock, for example, the user wouldn't really want to do all of that, would they? So, for those of you who would want to make such a clock, here's an example: @echo off title Alarm Clock :start cls color f0 echo. echo Use 24 hour clock echo. set /p a=Set Alarm: cls echo. echo Alarm set to %a%. :alarm if %time:~0,5% EQU %a% goto alarmset goto alarm :alarmset color fc echo echo echo cls echo. echo It's %time:~0,5%! echo. echo Press 1 to acknowledge. choice /n /c:12 /t:2,1 if errorlevel 2 goto alarmset if errorlevel 1 goto sleep goto alarmset :sleep goto start So there's one example. %TIME:~0,5% sets the time from 3:15:00.00 to just 15:15. This doesn't work just with the TIME command, you can do this with any variable. If I had a variable %x% and it said "crayon" and wanted it to say "cray," I would type in %x:~0,-2%. If I wanted to make %x% say "on," I would type in %x:~-4,0%. 5. The AT Command The AT command is exactly what it appears to be. You tell it AT (time) /every:[day(s) of the week] (command to be executed). So, it I wanted an alarm to go off whenever the Simpsons are on, I'd type AT 19:30 /every:sumtwthfs echo ALARM!!! Now, I know that the Simpsons are on at a different time on Sundays, but that's not important. Please not that you HAVE to specify what day you want it to go off on (it can be dd/mm/yyyy to be really specific). Default is set to "tomorrow." This was probably too confusing. For one, I talk too much. Thank you for even getting this far, anyways. Thanks a bunch!

Topic by TheBatchies   |  last reply


Robo-Goat Lives - At least I hope he Will

OK here goes. I work at zoo and I am a self taught geek, (mainly old school). I recently volunteered for a project mainly because I'm too stupid to know that it's not possible :~) Purpose of the program/project To - Engineer, Design and Build an Animatronic Robot Goat for: a Cheetah Conservation Fund in Kenya, Africa. This device will replicate a live goat in: size; appearance; movement; sound and smell (smell supplied by others), that can withstand the sever conditions of the desert, durable, possibly solar powered and easy to transport, setup and operate. Note: Up until this point real goats have been tried but they have not been too successful. They were either too stressed or they were stolen for by locals their meat. Objective(s): To lure Cheetahs into an area and enticement them into a cage trap with a simulated live goat (Robo-Goat), to provide a safe humane and ethical capture of wild cheetahs so that recently acquired state of the art GPS/Cellular tracking collars can be placed on them to help gather information to preserve this endangered animal. Analog Radio Tracking Collars have provided the only way to gather much of the information for many different wild animals. Radio Tracking style of the past has always been a difficult and time consuming endeavor, with old style tracking, large heavy radio collars that broadcast a ”beep” continuously, must be tracked with specialized hand-held radios and yagi antennas. All this to locate an animal being studied. Many times you would have to get close enough to disturb the animal just to find out where it is and then try to track it. Obviously not good “normal behavior” data gathering. The new GPS/Cellular systems track the animal in real time and send back data coordinates on the animals location, elevation, speed and direction as it travels. This GPS information is sent via cell towers, (yes they have them in Africa), to a computer that logs and graphs the movements. The research gathered through these efforts may provide the answers to saving these endangered animals. Project design/methods: #1. Establish parameters Record video & audio movements and sounds of normal & panicked goats Research and study movements and demonstrate what mechanical requirements will be necessary to replicate the minimum needed movements - [DONE]. {Raise and lower head; Look left and right; open/close mouth} Determine movement engine {I'm not sure here} {All of the movements are really axial in nature} {At first I was thinking motors but then there are end stops, control systems, ect. To deal with} {next I'm considering solenoids for the low energy requirements and simple full scale movements, except you cant control the speed} {But now I am becoming fixated on model airplane actuators for low weight, low noise and appendage like joints and accessories} {then I ran across "pager motors" and how they are small powerful and inexpensive some how I don't know where to begin} {can you tell this is all still up in the air?} Throw distance & Speed of movement - [DONE]. {Raise and lower head = 90 degrees of arc from base of neck = 5 seconds max} { Look left and right = 90 degrees of arc from left to right with return to normal center point half way = full movement l-r = 2 seconds max i hope} {open/close mouth = 45 degrees of arc from lower jaw = 1 second max} Repetition rate & pattern {random if possible} Determine audio requirements - [DONE]. {this is easy but requires playback trigger synchronized with mouth} The Cosmetics: Determine body and outer skin requirements – [Engineering]. {aluminum wire frame mesh} {foam sculpted head for low mass} {foam wrap suit for body & legs for low mass} {tyvek skin, airbrushed or penned for low mass} {stainless steel / nylon joints for low mass} DB level of normal and panicked goats - [DONE] {I have determined audio system requirements} Determine control system requirements {clueless at this point} Determine power requirements {I'm thinking deep cell marine battery and solar panels to retain charge autonomously} {amp hour rating for battery and solar charging circuit TBD after R&D; tests} {if solar is not feasible them battery exchange schedule TBD} #2 Acquire all electronic and mechanical parts #3 Create mechanicals Fabricate lightweight frame and skeleton structure. Assemble motion joints and motion engine Assemble and test motor functions Determine estimate of MTBF for spare parts, if any #4 Create & install sound system Edit custom audio media for both normal & panicked goats Utilize 12v Solid State Audio Playback Unit # 5 Create Control System #6 R&D; Testing Test charging and power circuit Final assembly #7 Final test Any help to provide suggestions to get me started on the type of engines would be great. tia

Topic by sharpfocus 


RadioShack Tri Color LED strip light show help?

I'm having partial success creating a synchronized light show by calling some colors and adding delays. My main problem is creating specific colors or even displaying one color on the entire strip.  here's the default code for the strip for arduino: #include // ******** DEBUG ==== should auto config to adapt different mother board ********* //#define DATA_1 (PORTF |=  0X01)    // DATA 1    // for ATMEGA //#define DATA_0 (PORTF &=  0XFE)    // DATA 0    // for ATMEGA //#define STRIP_PINOUT DDRF=0xFF  // for ATMEGA #define DATA_1 (PORTC |=  0X01)    // DATA 1    // for UNO #define DATA_0 (PORTC &=  0XFE)    // DATA 0    // for UNO #define STRIP_PINOUT (DDRC=0xFF)    // for UNO PROGMEM const unsigned long pattern_test_red[10][10]={   {0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000}, }; PROGMEM const unsigned long pattern_test_blue[10][10]={   {0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00}, }; PROGMEM const unsigned long pattern_test_green[10][10]={   {0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff}, }; PROGMEM const unsigned long pattern_test_white[10][10]={   {0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff}, }; PROGMEM const unsigned long pattern_test_comet1[][10]={   {0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff}, }; PROGMEM const unsigned long pattern_test_comet2[][10]={   {0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff},   {0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff}, }; PROGMEM const unsigned long pattern_test_comet3[][10]={   {0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff},   {0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x444444},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0xffffff,0x444444,0x111111},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0xffffff,0x444444,0x111111,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0xffffff,0x444444,0x111111,0x000000,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0xffffff,0x444444,0x111111,0x000000,0x000000},   {0x000000,0x000000,0x000000,0xffffff,0x444444,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0xffffff,0x444444,0x111111,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0xffffff,0x444444,0x111111,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0xffffff,0x444444,0x111111,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff}, }; PROGMEM const unsigned long pattern_test_rainbow[10][10]={   {0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000},   {0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000},   {0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000},   {0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff},   {0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff},   {0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff},   {0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00},   {0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00},   {0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00},   {0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000}, }; // *********************************************************************************************************** // * // *                            Power Up Init. // * // * // *********************************************************************************************************** void setup() {                  STRIP_PINOUT;        // set output pin - DEBUG: should auto detect which mother board for use   reset_strip();   //noInterrupts(); } // *********************************************************************************************************** // * // *                            Main Loop // * // * // *********************************************************************************************************** void loop() {   send_1M_pattern(pattern_test_red, 10, 500);   delay(500);   send_1M_pattern(pattern_test_blue, 10, 500);   delay(500);   send_1M_pattern(pattern_test_green, 10, 500);   delay(500);   send_1M_pattern(pattern_test_white, 10, 500);   delay(500);   send_1M_pattern(pattern_test_comet1, 10, 70);   delay(500);   send_1M_pattern(pattern_test_comet2, 10, 70);   delay(500);   send_1M_pattern(pattern_test_comet3, 10, 70);   delay(500);         while (1)   {     send_1M_pattern(pattern_test_rainbow, 10, 70);   }   /* frame++;     if(frame<=10) LEDSTRIP_PATTERN_0();     if(10     if(20     if(frame>30) frame=1;    */   //delay(1); } /******************************************************************************* * Function Name  : send_1M_pattern * Description    : Transmit pattern to whole 1 meter strip *                  * Input          : pointer to ROM pattern; pattern length; frame rate *                  * Output         : None * Return         : None *******************************************************************************/ void send_1M_pattern(const unsigned long data[][10], int pattern_no, int frame_rate) {   int i=0;   int j=0;   uint32_t temp_data;   for (i=0;i   {     noInterrupts();     for (j=0;j<10;j++)     {       temp_data=pgm_read_dword_near(&data;[i][j]);       send_strip(temp_data);     }     interrupts();     delay(frame_rate);   } } /******************************************************************************* * Function Name  : send_strip * Description    : Transmit 24 pulse to LED strip *                  * Input          : 24-bit data for the strip *                  * Output         : None * Return         : None *******************************************************************************/ void send_strip(uint32_t data) {   int i;   unsigned long j=0x800000;     for (i=0;i<24;i++)   {     if (data & j)     {       DATA_1;       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");          __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       /*----------------------------*/       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");        __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");        __asm__("nop\n\t");        __asm__("nop\n\t");        /*----------------------------*/            DATA_0;     }     else     {       DATA_1;       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");          DATA_0; /*----------------------------*/             __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");      /*----------------------------*/             }     j>>=1;   }   } /******************************************************************************* * Function Name  : reset_strip * Description    : Send reset pulse to reset all color of the strip *                  * Input          : None *                  * Output         : None * Return         : None *******************************************************************************/ void reset_strip() {   DATA_0;   delayMicroseconds(20); } //***********AND HERE"S MY MODIFIED LIGHT SHOW CODE:*********** #include // ******** DEBUG ==== should auto config to adapt different mother board ********* //#define DATA_1 (PORTF |=  0X01)    // DATA 1    // for ATMEGA //#define DATA_0 (PORTF &=  0XFE)    // DATA 0    // for ATMEGA //#define STRIP_PINOUT DDRF=0xFF  // for ATMEGA #define DATA_1 (PORTC |=  0X01)    // DATA 1    // for UNO #define DATA_0 (PORTC &=  0XFE)    // DATA 0    // for UNO #define STRIP_PINOUT (DDRC=0xFF)    // for UNO PROGMEM const unsigned long pattern_test_red[10][10]={   {0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000}, }; PROGMEM const unsigned long pattern_test_blue[10][10]={   {0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00}, }; PROGMEM const unsigned long pattern_test_green[10][10]={   {0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff}, }; PROGMEM const unsigned long pattern_test_white[10][10]={   {0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff}, }; PROGMEM const unsigned long pattern_test_comet1[][10]={   {0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff}, }; PROGMEM const unsigned long pattern_test_comet2[][10]={   {0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff},   {0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff}, }; PROGMEM const unsigned long pattern_test_comet3[][10]={   {0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff},   {0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x444444},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0xffffff,0x444444,0x111111},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0xffffff,0x444444,0x111111,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0xffffff,0x444444,0x111111,0x000000,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0xffffff,0x444444,0x111111,0x000000,0x000000},   {0x000000,0x000000,0x000000,0xffffff,0x444444,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0xffffff,0x444444,0x111111,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0xffffff,0x444444,0x111111,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0xffffff,0x444444,0x111111,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff}, }; PROGMEM const unsigned long pattern_test_rainbow[10][10]={   {0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000},   {0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000},   {0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000},   {0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff},   {0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff},   {0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff},   {0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00},   {0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00},   {0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00},   {0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000}, }; // *********************************************************************************************************** // * // *                            Power Up Init. // * // * // *********************************************************************************************************** void setup() {                  STRIP_PINOUT;        // set output pin - DEBUG: should auto detect which mother board for use   reset_strip();   //noInterrupts(); } // *********************************************************************************************************** // * // *                            Main Loop // * // * // *********************************************************************************************************** void loop() {   send_1M_pattern(pattern_test_white, 0, 0);   delay(36000);   send_1M_pattern(pattern_test_white, 500,0);   delay(5000);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);    send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);    send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);     send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 500, 0);   delay(4000);       while (1)   {     send_1M_pattern(pattern_test_rainbow, 10, 70);   }       /* frame++;     if(frame<=10) LEDSTRIP_PATTERN_0();     if(10     if(20     if(frame>30) frame=1;    */   //delay(1); } /******************************************************************************* * Function Name  : send_1M_pattern * Description    : Transmit pattern to whole 1 meter strip *                  * Input          : pointer to ROM pattern; pattern length; frame rate *                  * Output         : None * Return         : None *******************************************************************************/ void send_1M_pattern(const unsigned long data[][10], int pattern_no, int frame_rate) {   int i=0;   int j=0;   uint32_t temp_data;   for (i=0;i   {     noInterrupts();     for (j=0;j<10;j++)     {       temp_data=pgm_read_dword_near(&data;[i][j]);       send_strip(temp_data);     }     interrupts();     delay(frame_rate);   } } /******************************************************************************* * Function Name  : send_strip * Description    : Transmit 24 pulse to LED strip *                  * Input          : 24-bit data for the strip *                  * Output         : None * Return         : None *******************************************************************************/ void send_strip(uint32_t data) {   int i;   unsigned long j=0x800000;     for (i=0;i<24;i++)   {     if (data & j)     {       DATA_1;       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");          __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       /*----------------------------*/       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");        __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");        __asm__("nop\n\t");        __asm__("nop\n\t");        /*----------------------------*/            DATA_0;     }     else     {       DATA_1;       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");          DATA_0; /*----------------------------*/             __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");      /*----------------------------*/             }     j>>=1;   }   } /******************************************************************************* * Function Name  : reset_strip * Description    : Send reset pulse to reset all color of the strip *                  * Input          : None *                  * Output         : None * Return         : None *******************************************************************************/ void reset_strip() {   DATA_0;   delayMicroseconds(20); }

Question by ray33_ 


The animatronic project Is finished

Here my instructableMy Animatronic Mod ProjectIn 2003 I made a casemod MONSTERMOD ( picture 1), Just a creature sculpture tearing out of a PC case.And It Didnt Move . So , I want the next MONSTERMOD to MOVE.Maybe to tell me that I have email.... Picture people's PCs having Heads .There favorite movie star or rock star maybe a animal. Maybe like Hal from 2001Space Odyssey .But, My animatronic Mod Has no A.I. But maybe one day. Im programmingthe 16 servo movements into the PC and press the play to play the movements a lipsync routine.Well, For Over 2 years now I have been working My Animatronic Mod.My Animatronic Mod is a floating creature head over a desktop case.( picture 2 IMG_1383.jpg)It controlled my a 2 Mini SSC II (http://www.seetron.com) this allow the computer to control 16 RC servos.16 RC servos = 16 Movements .I made the teeth out of dental acrylic, The samething denture are made of.Teeth and fangs are made 1st in tooth color dental acrylic and shaped.Then are placed in dental wax .,the mold is a silicone putty is place on the teeth allow to setup overnight.To demold the wax is melted away with boiling water leaving the teeth in the silicone putty sockets.This is called the lost wax process.( picture 3,4,)After I made the eyes out of dental acrylic ,Which is a molded ping pong ball is 40 mm .In half 20 mm sandwhich in between the 2 halves is a metal small metal ball 10mm give me a ball joint and socket.The iris is a painted metal washer. The veins are silk yarn And is cover with clear dental acrylic .The white of the eyes was changed to black color ,To give more of a alien look. ( picture 6,7)I molding the finished eyes alginate and casting them in ultracal 30, ( picture 8) Ultracal 30 is the hardest plaster made.And place them in the sculpture.This will be for Proper registration for the eyes in the skull.( picture 9 )I had to sculpt face in Roma Plastilina Clay ( picture 10)and mold it in silicone( picture 11a,11b, 11 ) This molding process called a matrix mold . A layer of water clay cover theentire clay sculpture and Ultracal 30 is place on top of the water clay .After setup ,Its demolded and water clay removed .This water clay has made a space for the silicone.Matrix molda thin layer of water clay is place ( picture 12 ) and made the core A .This gave me the thickest for the skin .Molded core A in silicone and a thin layer of water clay is place in this mold also this made core B.And this gave the thickest of the Skull. Now I have 2 molds.( picture 13,14 )Mold 1 is the Skin moldMold 2 is the skull moldI casted foam rubber in mold 1 ( picture 15,)http://www.monstermakers.com/foam.htmlTo make the foam rubber skin337 gms. base67 grams foaming agent33 grams curing agent15 flow enhancer24 grams gelling agent4 grams ammoniaThe room temp73 degrees 40%Using a Sunbeam MixMaster Mixer1. Speed #1 - 1 minute (to blend all components)2. Speed #10 - 3 minutes : blend all3. Speed #3 - 4 minutes : refine4. Speed #1 - 30 seconds :refine5. Speed #1 - 30 seconds : ADD GELLING AGENT ( picture 16 )6. Speed #1 - 30 seconds : Backturn the bowlFoam rubber can be tricky.Mold 1 was place in a Hot box oven for 11 hours at 125 degrees .= A very soft and flexable skin ( picture 15,16 )Hot box oven 3'x 3'x 3 " plywood box with foil insulation with a single burner. This must be watched.( picture 17,18,19)I casted urethane Plastic from smoothon.com in mold 2.This gave me the Skull,The skull was trimed and dental acrylic teeth and eyes were place inside the skull .The mechanics were place using R/C servos.The skin was painted with PAX ( is a flexible paint). The skin was glue on rubber cement to the skull .And the hair was glued rubber cement also and placed.Hair is from National Fiber Technology ,Hair 1 was Blended Black and Brown modacrylic with White and Brown Mohair and Natural Goat hair.And hair 2 Black with gray texturized modacrylic with Yak and Horse hair.The PCMy motherboard (MSI KT6) and AMD 2500xp video card (MSI 6600)The case is LIAN LI PC-V800B .To make the lip sync move ,I used VSA , Visual Show Automation , http://www.brookshiresoftware.comThis aloud me to make a lip sync animation routine. Synchronize with graphical audio MP3 file.Not only that My Animatronic Mod looks Wicked ,It Talks Back.(Picture 1st floor) ( Picture 2nd floor)I designed the animatronic so I could repair it if needed, And the support pipe is like a swing arm so I can work on the PC too. By removing the back of the skull. Inside there are 2 floors the bottom floor has 6 servos :1 Head Up + Down2 Eyes Up + Down and left + right2 Eyelids1 Jaw2nd floor 7 servos3 right,left and center Brows1 Nose3 upper lip wireAnd also 2 servos are in the Jaw for lower lip wireand 1 left + right servo gimbal= 16 servosWhen uncovered ,Here is 32 feet of servo cable.(picture32 feet )The only thing connecting to the PC and the Animatronic is a modular cable (Lookslike a phone cable). Which is plug into a modular adapter that plug into the PC's serial port . The end of the modular cable plug in Mini SSCII Serial Servo Controller.you would be surprise how many people are into making monsters. Ive beenmaking monsters , masks and makeup fx for 30 years now.I put my 2 hobbies that Ienjoy together.Computers and making monsters.Im a dental lab tech. for 20 years now .I make dentures for a living.Thank You so muchGary WillettTo see Video Demos http://www.youtube.com/willettfxhttp://www.servocity.com..................For Servoshttp://www.nftech.com/ ...................For Hairhttp://www.smooth-on.com/ ............ Silicone,Urethane PlasticbooksTechniques of Three-Dimensional Makeup by Lee Baygan Special Make-Up Effects (Paperback)by Vincent Kehoe Men, Makeup & Monsters: Hollywood's Masters of Illusion and FX (Paperback)by Anthony TimponeStop-Motion Puppet Sculpting: A Manual of Foam Injection, Build-Up and Finishing Techniques (Paperback)by Tom Brierton Stop-Motion Armature Machining: A Construction Manual (Paperback)by Tom Brierton MagazineCinefex

Topic by willettfx   |  last reply


RadioShack Tri Color LED strip light show help?

I'm having partial success creating a synchronized light show by calling some colors and adding delays. My main problem is creating specific colors or even displaying one color on the entire strip. Sorry that I put the whole code on here! I just got really stuck. Thank you in advance!! here's the default code for the strip for arduino: #include // ******** DEBUG ==== should auto config to adapt different mother board ********* //#define DATA_1 (PORTF |=  0X01)    // DATA 1    // for ATMEGA //#define DATA_0 (PORTF &=  0XFE)    // DATA 0    // for ATMEGA //#define STRIP_PINOUT DDRF=0xFF  // for ATMEGA #define DATA_1 (PORTC |=  0X01)    // DATA 1    // for UNO #define DATA_0 (PORTC &=  0XFE)    // DATA 0    // for UNO #define STRIP_PINOUT (DDRC=0xFF)    // for UNO PROGMEM const unsigned long pattern_test_red[10][10]={   {0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000}, }; PROGMEM const unsigned long pattern_test_blue[10][10]={   {0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00}, }; PROGMEM const unsigned long pattern_test_green[10][10]={   {0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff}, }; PROGMEM const unsigned long pattern_test_white[10][10]={   {0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff}, }; PROGMEM const unsigned long pattern_test_comet1[][10]={   {0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff}, }; PROGMEM const unsigned long pattern_test_comet2[][10]={   {0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff},   {0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff}, }; PROGMEM const unsigned long pattern_test_comet3[][10]={   {0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff},   {0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x444444},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0xffffff,0x444444,0x111111},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0xffffff,0x444444,0x111111,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0xffffff,0x444444,0x111111,0x000000,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0xffffff,0x444444,0x111111,0x000000,0x000000},   {0x000000,0x000000,0x000000,0xffffff,0x444444,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0xffffff,0x444444,0x111111,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0xffffff,0x444444,0x111111,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0xffffff,0x444444,0x111111,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff}, }; PROGMEM const unsigned long pattern_test_rainbow[10][10]={   {0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000},   {0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000},   {0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000},   {0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff},   {0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff},   {0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff},   {0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00},   {0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00},   {0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00},   {0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000}, }; // *********************************************************************************************************** // * // *                            Power Up Init. // * // * // *********************************************************************************************************** void setup() {                 STRIP_PINOUT;        // set output pin - DEBUG: should auto detect which mother board for use   reset_strip();   //noInterrupts(); } // *********************************************************************************************************** // * // *                            Main Loop // * // * // *********************************************************************************************************** void loop() {   send_1M_pattern(pattern_test_red, 10, 500);   delay(500);   send_1M_pattern(pattern_test_blue, 10, 500);   delay(500);   send_1M_pattern(pattern_test_green, 10, 500);   delay(500);   send_1M_pattern(pattern_test_white, 10, 500);   delay(500);   send_1M_pattern(pattern_test_comet1, 10, 70);   delay(500);   send_1M_pattern(pattern_test_comet2, 10, 70);   delay(500);   send_1M_pattern(pattern_test_comet3, 10, 70);   delay(500);   while (1)   {     send_1M_pattern(pattern_test_rainbow, 10, 70);   }   /* frame++;     if(frame<=10) LEDSTRIP_PATTERN_0();     if(10     if(20     if(frame>30) frame=1;    */   //delay(1); } /******************************************************************************* * Function Name  : send_1M_pattern * Description    : Transmit pattern to whole 1 meter strip *                 * Input          : pointer to ROM pattern; pattern length; frame rate *                 * Output         : None * Return         : None *******************************************************************************/ void send_1M_pattern(const unsigned long data[][10], int pattern_no, int frame_rate) {   int i=0;   int j=0;   uint32_t temp_data;   for (i=0;i   {     noInterrupts();     for (j=0;j<10;j++)     {       temp_data=pgm_read_dword_near(&data;[i][j]);       send_strip(temp_data);     }     interrupts();     delay(frame_rate);   } } /******************************************************************************* * Function Name  : send_strip * Description    : Transmit 24 pulse to LED strip *                 * Input          : 24-bit data for the strip *                 * Output         : None * Return         : None *******************************************************************************/ void send_strip(uint32_t data) {   int i;   unsigned long j=0x800000;   for (i=0;i<24;i++)   {     if (data & j)     {       DATA_1;       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");         __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");      /*----------------------------*/       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       /*----------------------------*/           DATA_0;     }     else     {       DATA_1;       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");         DATA_0; /*----------------------------*/            __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");     /*----------------------------*/            }     j>>=1;   } } /******************************************************************************* * Function Name  : reset_strip * Description    : Send reset pulse to reset all color of the strip *                 * Input          : None *                 * Output         : None * Return         : None *******************************************************************************/ void reset_strip() {   DATA_0;   delayMicroseconds(20); } //***********AND HERE"S MY MODIFIED LIGHT SHOW CODE:*********** #include // ******** DEBUG ==== should auto config to adapt different mother board ********* //#define DATA_1 (PORTF |=  0X01)    // DATA 1    // for ATMEGA //#define DATA_0 (PORTF &=  0XFE)    // DATA 0    // for ATMEGA //#define STRIP_PINOUT DDRF=0xFF  // for ATMEGA #define DATA_1 (PORTC |=  0X01)    // DATA 1    // for UNO #define DATA_0 (PORTC &=  0XFE)    // DATA 0    // for UNO #define STRIP_PINOUT (DDRC=0xFF)    // for UNO PROGMEM const unsigned long pattern_test_red[10][10]={   {0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xff0000}, }; PROGMEM const unsigned long pattern_test_blue[10][10]={   {0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x00ff00}, }; PROGMEM const unsigned long pattern_test_green[10][10]={   {0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x0000ff}, }; PROGMEM const unsigned long pattern_test_white[10][10]={   {0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff}, }; PROGMEM const unsigned long pattern_test_comet1[][10]={   {0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff}, }; PROGMEM const unsigned long pattern_test_comet2[][10]={   {0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff},   {0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000},   {0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0x111111,0x444444,0xffffff}, }; PROGMEM const unsigned long pattern_test_comet3[][10]={   {0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff},   {0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0xffffff,0x444444},   {0x111111,0x444444,0xffffff,0x000000,0x000000,0x000000,0x000000,0xffffff,0x444444,0x111111},   {0x000000,0x111111,0x444444,0xffffff,0x000000,0x000000,0xffffff,0x444444,0x111111,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0xffffff,0x444444,0x111111,0x000000,0x000000},   {0x000000,0x000000,0x111111,0x444444,0xffffff,0xffffff,0x444444,0x111111,0x000000,0x000000},   {0x000000,0x000000,0x000000,0xffffff,0x444444,0x444444,0xffffff,0x000000,0x000000,0x000000},   {0x000000,0x000000,0xffffff,0x444444,0x111111,0x111111,0x444444,0xffffff,0x000000,0x000000},   {0x000000,0xffffff,0x444444,0x111111,0x000000,0x000000,0x111111,0x444444,0xffffff,0x000000},   {0xffffff,0x444444,0x111111,0x000000,0x000000,0x000000,0x000000,0x111111,0x444444,0xffffff}, }; PROGMEM const unsigned long pattern_test_rainbow[10][10]={   {0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000},   {0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000},   {0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000},   {0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff},   {0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff},   {0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00,0x0000ff},   {0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00,0x00ff00},   {0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00,0xffff00},   {0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000,0xff7f00},   {0xff7f00,0xffff00,0x00ff00,0x0000ff,0x6f00ff,0x8f00ff,0x000000,0x000000,0x000000,0xff0000}, }; // *********************************************************************************************************** // * // *                            Power Up Init. // * // * // *********************************************************************************************************** void setup() {                 STRIP_PINOUT;        // set output pin - DEBUG: should auto detect which mother board for use   reset_strip();   //noInterrupts(); } // *********************************************************************************************************** // * // *                            Main Loop // * // * // *********************************************************************************************************** void loop() {   send_1M_pattern(pattern_test_white, 0, 0);   delay(36000);   send_1M_pattern(pattern_test_white, 500,0);   delay(5000);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);    send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);    send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);     send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 10, 70);   delay(10);   send_1M_pattern(pattern_test_white, 500, 0);   delay(4000);      while (1)   {     send_1M_pattern(pattern_test_rainbow, 10, 70);   }   /* frame++;     if(frame<=10) LEDSTRIP_PATTERN_0();     if(10     if(20     if(frame>30) frame=1;    */   //delay(1); } /******************************************************************************* * Function Name  : send_1M_pattern * Description    : Transmit pattern to whole 1 meter strip *                 * Input          : pointer to ROM pattern; pattern length; frame rate *                 * Output         : None * Return         : None *******************************************************************************/ void send_1M_pattern(const unsigned long data[][10], int pattern_no, int frame_rate) {   int i=0;   int j=0;   uint32_t temp_data;   for (i=0;i   {     noInterrupts();     for (j=0;j<10;j++)     {       temp_data=pgm_read_dword_near(&data;[i][j]);       send_strip(temp_data);     }     interrupts();     delay(frame_rate);   } } /******************************************************************************* * Function Name  : send_strip * Description    : Transmit 24 pulse to LED strip *                 * Input          : 24-bit data for the strip *                 * Output         : None * Return         : None *******************************************************************************/ void send_strip(uint32_t data) {   int i;   unsigned long j=0x800000;   for (i=0;i<24;i++)   {     if (data & j)     {       DATA_1;       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");         __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");      /*----------------------------*/       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       /*----------------------------*/           DATA_0;     }     else     {       DATA_1;       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");         DATA_0; /*----------------------------*/            __asm__("nop\n\t");       __asm__("nop\n\t");       __asm__("nop\n\t");     /*----------------------------*/            }     j>>=1;   } } /******************************************************************************* * Function Name  : reset_strip * Description    : Send reset pulse to reset all color of the strip *                 * Input          : None *                 * Output         : None * Return         : None *******************************************************************************/ void reset_strip() {   DATA_0;   delayMicroseconds(20); }

Topic by ray33_   |  last reply