This shows you the differences between two versions of the page.
|
digispark:tutorials:digiled [2014/12/28 21:38] kermed [Assembly:] |
digispark:tutorials:digiled [2016/06/09 12:03] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ======DigiLED Shield Kit Tutorial====== | ||
| - | |||
| - | =====Product Description:===== | ||
| - | [[https://s3.amazonaws.com/digispark/images/m/digiled1.jpg|{{https://s3.amazonaws.com/digispark/images/t/digiled1.jpg}}]][[https://s3.amazonaws.com/digispark/images/m/digiled5.jpg|{{https://s3.amazonaws.com/digispark/images/t/digiled5.jpg}}]] | ||
| - | |||
| - | |||
| - | This is an unassembled kit and requires basic soldering. This is designed for use with the Digispark development board, which is not included. | ||
| - | |||
| - | |||
| - | =====Parts:===== | ||
| - | |||
| - | ^ Part ^ Quantity ^Identification^ | ||
| - | | DigiLED Shield PCB|1| | | ||
| - | | 0.1uf Capacitor|1| | | ||
| - | | WS2812B type through hole LED|1|| | ||
| - | | 1x40 pin male 0.1" pitch header| 9 pins worth| | | ||
| - | |||
| - | **Resistor Values:** For more information on how to identify the value of the resistors, we recommend these sites: | ||
| - | A nice simple resistor calculator: http://www.ealnet.com/m-eal/resistor/resistor.htm | ||
| - | A comprehensive article on identification: http://www.diyaudioandvideo.com/Electronics/Color/ | ||
| - | |||
| - | **Soldering:** If you are new to soldering we recommend the following tutorials: | ||
| - | Soldering Basics (http://www.sparkfun.com/tutorials/106) and Soldering Crash Course from the folks at Sparkfun (http://www.sparkfun.com/tutorials/354). | ||
| - | How to solder from the Curious Inventor: http://store.curiousinventor.com/guides/How_to_Solder | ||
| - | |||
| - | Adafruit has this excellent guide that starts with the tools needed and then shows detailed pictures, including some of the common problems that beginners experience (http://learn.adafruit.com/adafruit-guide-excellent-soldering) | ||
| - | |||
| - | **We assume for these assembly instructions that you know the basics of thru-hole soldering. If you don't check out the links above, these boards are very easy to solder - we promise!** | ||
| - | |||
| - | |||
| - | =====Assembly:===== | ||
| - | |||
| - | |||
| - | Empty kit bag (or if using a raw PCB, aquire parts) and verify contents. | ||
| - | |||
| - | [[https://s3.amazonaws.com/digispark/images/m/digiled1.jpg|{{https://s3.amazonaws.com/digispark/images/t/digiled1.jpg}}]] | ||
| - | |||
| - | |||
| - | When inserting the LED into the board ensure the two longer leads of the LED goes through the holes marked data out and ground (see photo) - this ensures you have the LED oriented properly. Solder the LED leads and clip off the excess. | ||
| - | |||
| - | [[https://s3.amazonaws.com/digispark/images/m/digiled2.jpg|{{https://s3.amazonaws.com/digispark/images/t/digiled2.jpg}}]] | ||
| - | |||
| - | [[https://s3.amazonaws.com/digispark/images/m/digiled3.jpg|{{https://s3.amazonaws.com/digispark/images/t/digiled3.jpg}}]] | ||
| - | |||
| - | Insert the capacitor on the top of the board (as shown), solder leads on bottom. Orientation of the capacitor does not matter. | ||
| - | |||
| - | [[https://s3.amazonaws.com/digispark/images/m/digiled4.jpg|{{https://s3.amazonaws.com/digispark/images/t/digiled4.jpg}}]] | ||
| - | |||
| - | Cut a length of male headers 6 pins long and one 3 pins long. Insert into corresponding positions (on the bottom of the board) and solder each pin. | ||
| - | |||
| - | **Tip:** Inseting the headers into a breadboard and then placing the board on top can make this process easier. | ||
| - | |||
| - | **Note:** If you are using stackable headers, use them here instead of the standard male headers. | ||
| - | |||
| - | |||
| - | When inserting the LED into the board ensure the two longer leads of the LED goes through the holes marked data out and ground (see photo) - this ensures you have the LED oriented properly. Solder the LED leads and clip off the excess. | ||
| - | |||
| - | [[https://s3.amazonaws.com/digispark/images/m/digiled5.jpg|{{https://s3.amazonaws.com/digispark/images/t/digiled5.jpg}}]] | ||
| - | |||
| - | Your DigiLED shield is complete! | ||
| - | |||
| - | **Note:** On the back of the shield there is a solder patch to activate pin 5 instead of pin 1 as the digital input. If you are not using the DigiLED as a shield onto the DigiSpark Pro and planning on running it at a distance, you only need to connect the specified digital pin (Pin 1) and bottom 3 pins (5V, GND, VIN). You do not need to connect all 6 pins on the right-hand side of the shield. | ||
| - | |||
| - | =====Chaining:===== | ||
| - | |||
| - | When chaining multiple DigiLED's together, you only need to connect 3 points as a daisy chain using VCC, DO>DI and GND. For example, LED #1 would need the top 3 pins VCC, DO (out) and GND to connect to DigiLED #2's VCC, DI (in) and GND near the bottom of the board. If you added LED #3 you would need to connect DigiLED #2's top three pins to the lower-mid pins on DigiLED #3 and so-on and so forth. After DigiLED 1, the side pins and 5V, GND, VIN should not be connected. | ||
| - | |||
| - | =====Programming:===== | ||
| - | |||
| - | **Note:** The programming sections assumes you've installed the Arduino IDE and the Digispark Add-ons | ||
| - | |||
| - | Download and install the NeoPixel library: https://github.com/adafruit/Adafruit_NeoPixel | ||
| - | |||
| - | Set the Pin to 1, Number of LEDs to 1 (unless you have chained more on), and format to NEO_RGB + NEO_KHZ800 | ||
| - | |||
| - | If you have a single DigiLED, the following code sample will make it continuously cycle through white, cyan, violet, yellow, red, green and blue. | ||
| - | |||
| - | <code arduino> | ||
| - | // Based on NeoPixel Ring simple sketch (c) 2013 Shae Erisson | ||
| - | // released under the GPLv3 license | ||
| - | #include <Adafruit_NeoPixel.h> | ||
| - | |||
| - | // Which pin on the Digispark is connected to the DigiLED? | ||
| - | #define PIN 1 | ||
| - | |||
| - | // How many DigiLEDs are attached to the Digispark? | ||
| - | #define NUMPIXELS 1 | ||
| - | |||
| - | // When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals. | ||
| - | // For the WS2812B type through hole LED used by the DigiLED, NEO_RGB + NEO_KHZ800 is the correct data format | ||
| - | Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); | ||
| - | |||
| - | int delayval = 500; // delay for half a second | ||
| - | |||
| - | void setup() | ||
| - | { | ||
| - | pixels.begin(); // This initializes the NeoPixel library. | ||
| - | pixels.show(); // Initialize all pixels to 'off' | ||
| - | } | ||
| - | |||
| - | void loop() | ||
| - | { | ||
| - | // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 | ||
| - | // in Red,Green,Blue order | ||
| - | |||
| - | pixels.setPixelColor(0, pixels.Color(255, 255, 255)); //white | ||
| - | pixels.show(); // This sends the updated pixel color to the hardware. | ||
| - | delay(delayval); // Delay for a period of time (in milliseconds). | ||
| - | |||
| - | pixels.setPixelColor(0, pixels.Color(0, 255, 255)); //cyan | ||
| - | pixels.show(); | ||
| - | delay(delayval); | ||
| - | |||
| - | pixels.setPixelColor(0, pixels.Color(255, 0, 255)); //violet | ||
| - | pixels.show(); | ||
| - | delay(delayval); | ||
| - | |||
| - | pixels.setPixelColor(0, pixels.Color(255, 255, 0)); //yellow | ||
| - | pixels.show(); | ||
| - | delay(delayval); | ||
| - | |||
| - | pixels.setPixelColor(0, pixels.Color(255, 0, 0)); //red | ||
| - | pixels.show(); | ||
| - | delay(delayval); | ||
| - | |||
| - | pixels.setPixelColor(0, pixels.Color(0, 255, 0)); //green | ||
| - | pixels.show(); | ||
| - | delay(delayval); | ||
| - | |||
| - | pixels.setPixelColor(0, pixels.Color(0, 0, 255)); //blue | ||
| - | pixels.show(); | ||
| - | delay(delayval); | ||
| - | } | ||
| - | </code> | ||
| - | |||
| - | If you have more than one DigiLED daisy-chained, the following code will make all the DigiLEDs light up green. You need to change the NUMPIXELS variable to the number of DigiLEDs you have chained together. | ||
| - | |||
| - | <code arduino> | ||
| - | // Based on NeoPixel Ring simple sketch (c) 2013 Shae Erisson | ||
| - | // released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library | ||
| - | #include <Adafruit_NeoPixel.h> | ||
| - | |||
| - | // Which pin on the Arduino is connected to the NeoPixels? | ||
| - | #define PIN 1 | ||
| - | |||
| - | // How many NeoPixels are attached to the Arduino? | ||
| - | #define NUMPIXELS 1 | ||
| - | |||
| - | // When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals. | ||
| - | // Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest | ||
| - | // example for more information on possible values. | ||
| - | Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); | ||
| - | |||
| - | int delayval = 500; // delay for half a second | ||
| - | |||
| - | void setup() { | ||
| - | pixels.begin(); // This initializes the NeoPixel library. | ||
| - | } | ||
| - | |||
| - | void loop() { | ||
| - | // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one. | ||
| - | for(int i=0;i<NUMPIXELS;i++){ | ||
| - | // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 | ||
| - | pixels.setPixelColor(i, pixels.Color(0,150,0)); // Moderately bright green color. | ||
| - | pixels.show(); // This sends the updated pixel color to the hardware. | ||
| - | delay(delayval); // Delay for a period of time (in milliseconds). | ||
| - | } | ||
| - | } | ||
| - | </code> | ||