This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
tutorials:products:digitalrgbledstrip:index.html [2011/08/10 21:07] ladyada [Using the LPD8806 based strips] |
tutorials:products:digitalrgbledstrip:index.html [2012/05/13 15:41] adafruit_support [FAQ & Troubleshooting] |
||
---|---|---|---|
Line 172: | Line 172: | ||
You will need a lot of power for these strips so be sure to read the documentation above to specify a proper supply. Don't just connect it to the Arduino +5V pin and cross your fingers, you could damage your power adapter! | You will need a lot of power for these strips so be sure to read the documentation above to specify a proper supply. Don't just connect it to the Arduino +5V pin and cross your fingers, you could damage your power adapter! | ||
+ | |||
+ | <class notewarning> | ||
+ | The digital RGB LED strips must be powered with a 5V DC power supply. Do not use anything higher than 6VDC or you could permanently destroy the entire strip! | ||
+ | </class> | ||
Next you'll need to install the LPD8806 library code. [[https://github.com/adafruit/LPD8806|Download the library from github by clicking the DOWNLOADS button in the top right corner]], rename the uncompressed folder **LPD8806**. Check that the **LPD8806** folder contains **LPD8806.cpp** and **LPD8806.h** | Next you'll need to install the LPD8806 library code. [[https://github.com/adafruit/LPD8806|Download the library from github by clicking the DOWNLOADS button in the top right corner]], rename the uncompressed folder **LPD8806**. Check that the **LPD8806** folder contains **LPD8806.cpp** and **LPD8806.h** | ||
Line 186: | Line 190: | ||
Now upload it to your Arduino, your strip should start to perform a bunch of demonstration tests! | Now upload it to your Arduino, your strip should start to perform a bunch of demonstration tests! | ||
+ | ==== Netduino and the LPD8806 based strips ==== | ||
+ | |||
+ | Driving these strips from Netduino (or other .Net Micro Framwork boards like FEZ Panda) is very convenient and doesn't require a code library if SPI ports are used. The following sample shows driving a 32 pixel light strip connected to SPI1 (SCLK on pin 13 and MOSI on pin 11): | ||
+ | |||
+ | <code> | ||
+ | using Microsoft.SPOT.Hardware; | ||
+ | ... | ||
+ | public static void LightStripSpi() | ||
+ | { | ||
+ | var spi = new SPI(new SPI.Configuration(Cpu.Pin.GPIO_NONE, | ||
+ | false, 0, 0, false, true, 10000, SPI.SPI_module.SPI1)); | ||
+ | var colors = new byte[3 * 32]; | ||
+ | var zeros = new byte[3 * ((32 + 63) / 64)]; | ||
+ | |||
+ | while (true) | ||
+ | { | ||
+ | // all pixels off | ||
+ | for (int i = 0; i < colors.Length; ++i) colors[i] = (byte)(0x80 | 0); | ||
+ | // a progressive yellow/red blend | ||
+ | for (byte i = 0; i < 32; ++i) | ||
+ | { | ||
+ | colors[i * 3 + 1] = 0x80 | 32; | ||
+ | colors[i * 3 + 0] = (byte)(0x80 | (32 - i)); | ||
+ | spi.Write(colors); | ||
+ | spi.Write(zeros); | ||
+ | Thread.Sleep(1000 / 32); // march at 32 pixels per second | ||
+ | } | ||
+ | } | ||
+ | }</code> | ||
+ | | ||
+ | ===== FAQ & Troubleshooting ===== | ||
+ | |||
+ | <class notewarning> | ||
+ | 99% of Digital LED strip problems come down to a few very common problems. BEFORE posting, check all of these multiple times. | ||
+ | </class> | ||
+ | |||
+ | - You are connecting to the INPUT of the strip, not the OUTPUT. This is incredibly common mistake. It wont work unless data is going into the correct end. Check the tutorial to see how to identify the input side. Just because your cut strip has a connector does NOT mean its an input. Check again! | ||
+ | - You must have a common ground between your power supply and the Arduino. If no ground wire connects the strip to the Arduino, it will be flakey and respond strangely, if at all | ||
+ | - If you want to light up a lot of LEDs, you need a fairly beefy 5V supply. Make sure its a regulated supply, and you verify that the output is no higher than 6V DC. A good rule of thumb is a max of 2 Amps per meter, with an average draw of about 0.5 - 1 amp depending on use. | ||
+ | - Check that you did not swap the DATA and CLOCK pins | ||
+ | |||
+ | For long strips, there can be a significant drop in voltage from one end to the other. For strips longer than 1 meter we recommend feeding power to both ends of the strip. For very long strips (5 meters or more) you should plan to feed power to multiple points along the strip. | ||
+ | |||
+ | Mysterious Green Flash- On some strips it has been reported that the first pixel on the strip will flash green whenever commands are sent to this strip (If you are sending commands continuously, it will be green most of the time). We are still trying to understand the cause of this phenomenon. In any case, it does not otherwise affect normal operation of the strip. | ||
+ | |||
+ | |||
+ | ===== How to separate longer strips (Advanced!) ===== | ||
+ | |||
+ | This mini-tutorial is a little on the advanced side, its going to show how to separate the LED strips on the overlapping section ends. All the strips are made of 1/2meter long sections. Between every 2 LEDs you can cut off the flex PCB at the dotted lines. However, every 1/2 meter you cannot just cut the strip but must pull apart the soldered sections. Its not terribly hard but worth documenting! | ||
+ | |||
+ | For this, we use the wide flat tip on our METCAL iron. A wide tip isnt required but it sure is handy! | ||
+ | |||
+ | {{ :tutorials:products:digitalrgbledstrip:widetip_t.jpg? |}} | ||
+ | |||
+ | Using an x-acto knife, cut two slice from the top on either side of the solder connection | ||
+ | |||
+ | {{ :tutorials:products:digitalrgbledstrip:top1_t.jpg? |}} | ||
+ | {{ :tutorials:products:digitalrgbledstrip:top2_t.jpg? |}} | ||
+ | |||
+ | Then slice the rubber coating between the two cuts you made | ||
+ | |||
+ | {{ :tutorials:products:digitalrgbledstrip:edge_t.jpg? |}} | ||
+ | {{ :tutorials:products:digitalrgbledstrip:edges_t.jpg? |}} | ||
+ | |||
+ | Pull off the thin rubber piece between the cuts | ||
+ | |||
+ | {{ :tutorials:products:digitalrgbledstrip:open_t.jpg? |}} | ||
+ | |||
+ | Press the soldering iron against the four joints while pulling the two pieces apart | ||
+ | |||
+ | {{ :tutorials:products:digitalrgbledstrip:press_t.jpg? |}} | ||
+ | {{ :tutorials:products:digitalrgbledstrip:separate_t.jpg? |}} | ||
+ | |||
+ | Cut the remaining rubber underneath with scissors | ||
+ | |||
+ | {{ :tutorials:products:digitalrgbledstrip:rubbercut_t.jpg? |}} | ||
+ | Thats it! | ||
+ | {{ :tutorials:products:digitalrgbledstrip:separated_t.jpg? |}} |