<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.11.81 (http://www.squarespace.com/) on Thu, 16 Feb 2012 01:00:18 GMT--><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><title>Misc Stuff</title><subtitle>Misc Stuff</subtitle><id>http://www.fischco.org/misc-stuff/</id><link rel="alternate" type="application/xhtml+xml" href="http://www.fischco.org/misc-stuff/"/><link rel="self" type="application/atom+xml" href="http://www.fischco.org/misc-stuff/atom.xml"/><updated>2010-01-01T00:38:06Z</updated><generator uri="http://www.squarespace.com/" version="Squarespace Site Server v5.11.81 (http://www.squarespace.com/)">Squarespace</generator><entry><title>Twinkling Stars Code</title><category term="Arduino"/><category term="C"/><category term="Code"/><id>http://www.fischco.org/misc-stuff/2009/12/31/twinkling-stars-code.html</id><link rel="alternate" type="text/html" href="http://www.fischco.org/misc-stuff/2009/12/31/twinkling-stars-code.html"/><author><name>Mark Fischer</name></author><published>2010-01-01T00:37:28Z</published><updated>2010-01-01T00:37:28Z</updated><content type="html" xml:lang="en-US"><![CDATA[<pre style="background-color: #fff; padding: 1em;"><code>
<span style="color: #555;">/*
&nbsp;*&nbsp;Twinkling&nbsp;LEDs
&nbsp;*
&nbsp;*&nbsp;Using&nbsp;PWM&nbsp;from&nbsp;TLC5940,&nbsp;twinkle&nbsp;a&nbsp;number&nbsp;of&nbsp;LEDs&nbsp;to&nbsp;immitate&nbsp;a&nbsp;star&nbsp;field
&nbsp;*
&nbsp;*&nbsp;Mark&nbsp;Fischer
&nbsp;*&nbsp;estranged&nbsp;[at]&nbsp;mac&nbsp;[dot]&nbsp;com
&nbsp;*&nbsp;http://www.fischco.org


&nbsp;&nbsp;&nbsp;&nbsp;Basic&nbsp;Pin&nbsp;setup:
&nbsp;&nbsp;&nbsp;&nbsp;------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;---u----
&nbsp;&nbsp;&nbsp;&nbsp;ARDUINO&nbsp;&nbsp;&nbsp;13|-&gt;&nbsp;SCLK&nbsp;(pin&nbsp;25)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OUT1&nbsp;|1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;28|&nbsp;OUT&nbsp;channel&nbsp;0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;12|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OUT2&nbsp;|2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;27|-&gt;&nbsp;GND&nbsp;(VPRG)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11|-&gt;&nbsp;SIN&nbsp;(pin&nbsp;26)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OUT3&nbsp;|3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;26|-&gt;&nbsp;SIN&nbsp;(pin&nbsp;11)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10|-&gt;&nbsp;BLANK&nbsp;(pin&nbsp;23)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OUT4&nbsp;|4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25|-&gt;&nbsp;SCLK&nbsp;(pin&nbsp;13)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9|-&gt;&nbsp;XLAT&nbsp;(pin&nbsp;24)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;|5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;24|-&gt;&nbsp;XLAT&nbsp;(pin&nbsp;9)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;|6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;23|-&gt;&nbsp;BLANK&nbsp;(pin&nbsp;10)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;|7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;22|-&gt;&nbsp;GND
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;|8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;21|-&gt;&nbsp;VCC&nbsp;(+5V)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;|9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20|-&gt;&nbsp;2K&nbsp;Resistor&nbsp;-&gt;&nbsp;GND
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;|10&nbsp;&nbsp;&nbsp;&nbsp;19|-&gt;&nbsp;+5V&nbsp;(DCPRG)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3|-&gt;&nbsp;GSCLK&nbsp;(pin&nbsp;18)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;|11&nbsp;&nbsp;&nbsp;&nbsp;18|-&gt;&nbsp;GSCLK&nbsp;(pin&nbsp;3)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;|12&nbsp;&nbsp;&nbsp;&nbsp;17|-&gt;&nbsp;SOUT
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;|13&nbsp;&nbsp;&nbsp;&nbsp;16|-&gt;&nbsp;XERR
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OUT14|14&nbsp;&nbsp;&nbsp;&nbsp;15|&nbsp;OUT&nbsp;channel&nbsp;15
&nbsp;&nbsp;&nbsp;&nbsp;------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--------

&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;Put&nbsp;the&nbsp;longer&nbsp;leg&nbsp;(anode)&nbsp;of&nbsp;the&nbsp;LEDs&nbsp;in&nbsp;the&nbsp;+5V&nbsp;and&nbsp;the&nbsp;shorter&nbsp;leg
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cathode)&nbsp;in&nbsp;OUT(0-15).
&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;+5V&nbsp;from&nbsp;Arduino&nbsp;-&gt;&nbsp;TLC&nbsp;pin&nbsp;21&nbsp;and&nbsp;19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(VCC&nbsp;and&nbsp;DCPRG)
&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;GND&nbsp;from&nbsp;Arduino&nbsp;-&gt;&nbsp;TLC&nbsp;pin&nbsp;22&nbsp;and&nbsp;27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(GND&nbsp;and&nbsp;VPRG)
&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;digital&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;TLC&nbsp;pin&nbsp;18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(GSCLK)
&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;digital&nbsp;9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;TLC&nbsp;pin&nbsp;24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(XLAT)
&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;digital&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;TLC&nbsp;pin&nbsp;23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(BLANK)
&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;digital&nbsp;11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;TLC&nbsp;pin&nbsp;26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(SIN)
&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;digital&nbsp;13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;TLC&nbsp;pin&nbsp;25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(SCLK)
&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;The&nbsp;2K&nbsp;resistor&nbsp;between&nbsp;TLC&nbsp;pin&nbsp;20&nbsp;and&nbsp;GND&nbsp;will&nbsp;let&nbsp;~20mA&nbsp;through&nbsp;each
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED.&nbsp;&nbsp;To&nbsp;be&nbsp;precise,&nbsp;it's&nbsp;I&nbsp;=&nbsp;39.06&nbsp;/&nbsp;R&nbsp;(in&nbsp;ohms).&nbsp;&nbsp;This&nbsp;doesn't&nbsp;depend
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;the&nbsp;LED&nbsp;driving&nbsp;voltage.
&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;(Optional):&nbsp;put&nbsp;a&nbsp;pull-up&nbsp;resistor&nbsp;(~10k)&nbsp;between&nbsp;+5V&nbsp;and&nbsp;BLANK&nbsp;so&nbsp;that
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;the&nbsp;LEDs&nbsp;will&nbsp;turn&nbsp;off&nbsp;when&nbsp;the&nbsp;Arduino&nbsp;is&nbsp;reset.

&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;you&nbsp;are&nbsp;daisy-chaining&nbsp;more&nbsp;than&nbsp;one&nbsp;TLC,&nbsp;connect&nbsp;the&nbsp;SOUT&nbsp;of&nbsp;the&nbsp;first
&nbsp;&nbsp;&nbsp;&nbsp;TLC&nbsp;to&nbsp;the&nbsp;SIN&nbsp;of&nbsp;the&nbsp;next.&nbsp;&nbsp;All&nbsp;the&nbsp;other&nbsp;pins&nbsp;should&nbsp;just&nbsp;be&nbsp;connected
&nbsp;&nbsp;&nbsp;&nbsp;together:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BLANK&nbsp;on&nbsp;Arduino&nbsp;-&gt;&nbsp;BLANK&nbsp;of&nbsp;TLC1&nbsp;-&gt;&nbsp;BLANK&nbsp;of&nbsp;TLC2&nbsp;-&gt;&nbsp;...
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XLAT&nbsp;on&nbsp;Arduino&nbsp;&nbsp;-&gt;&nbsp;XLAT&nbsp;of&nbsp;TLC1&nbsp;&nbsp;-&gt;&nbsp;XLAT&nbsp;of&nbsp;TLC2&nbsp;&nbsp;-&gt;&nbsp;...
&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;one&nbsp;exception&nbsp;is&nbsp;that&nbsp;each&nbsp;TLC&nbsp;needs&nbsp;it's&nbsp;own&nbsp;resistor&nbsp;between&nbsp;pin&nbsp;20
&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;GND.

&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;library&nbsp;uses&nbsp;the&nbsp;PWM&nbsp;output&nbsp;ability&nbsp;of&nbsp;digital&nbsp;pins&nbsp;3,&nbsp;9,&nbsp;10,&nbsp;and&nbsp;11.
&nbsp;&nbsp;&nbsp;&nbsp;Do&nbsp;not&nbsp;use&nbsp;analogWrite(...)&nbsp;on&nbsp;these&nbsp;pins.

&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;sketch&nbsp;does&nbsp;the&nbsp;Knight&nbsp;Rider&nbsp;strobe&nbsp;across&nbsp;a&nbsp;line&nbsp;of&nbsp;LEDs.

&nbsp;&nbsp;&nbsp;&nbsp;Alex&nbsp;Leone&nbsp;&lt;acleone&nbsp;~AT~&nbsp;gmail.com&gt;,&nbsp;2009-02-03

&nbsp;*/</span><span style="color: #000;">

</span><span style="color: #555;">/**
&nbsp;*&nbsp;Uses&nbsp;the&nbsp;wonderful&nbsp;TLC5940&nbsp;library&nbsp;by&nbsp;acleone
&nbsp;*&nbsp;http://www.arduino.cc/playground/Learning/TLC5940
&nbsp;*&nbsp;http://code.google.com/p/tlc5940arduino/
&nbsp;*/</span><span style="color: #000;">
</span><span style="color: rgb(0%, 0%, 80%);">#include</span><span style="color: #000;">&nbsp;"Tlc5940.h"
</span><span style="color: #000;">
</span><span style="color: #555;">/**
&nbsp;*&nbsp;Use&nbsp;timed&nbsp;actions
&nbsp;*&nbsp;@url&nbsp;http://www.arduino.cc/playground/Code/TimedAction
&nbsp;*/</span><span style="color: #000;">
</span><span style="color: rgb(0%, 0%, 80%);">#include</span><span style="color: #000;">&nbsp;&lt;TimedAction.h&gt;
</span><span style="color: #000;">
</span><span style="color: rgb(0%, 0%, 80%);">#define</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">UP</span><span style="color: #000;">&nbsp;</span><span style="color: #369;">1</span><span style="color: #000;">
</span><span style="color: rgb(0%, 0%, 80%);">#define</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">DOWN</span><span style="color: #000;">&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">

</span><span style="color: #555;">/**
&nbsp;*&nbsp;How&nbsp;many&nbsp;LEDs&nbsp;are&nbsp;hooked&nbsp;up.&nbsp;
&nbsp;*&nbsp;If&nbsp;chaining&nbsp;multiple&nbsp;TLC5940&nbsp;chips&nbsp;together,&nbsp;
&nbsp;*&nbsp;this&nbsp;should&nbsp;be&nbsp;a&nbsp;multiple&nbsp;of&nbsp;16
&nbsp;*/</span><span style="color: #000;">
</span><span style="color: rgb(0%, 0%, 80%);">#define</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">NUM_LEDS</span><span style="color: #000;">&nbsp;</span><span style="color: #369;">32</span><span style="color: #000;">

</span><span style="color: #555;">/**
&nbsp;*&nbsp;How&nbsp;long&nbsp;to&nbsp;wait&nbsp;before&nbsp;picking&nbsp;a&nbsp;new&nbsp;LED&nbsp;to&nbsp;twinkle.
&nbsp;*&nbsp;Smaller&nbsp;values&nbsp;result&nbsp;in&nbsp;more&nbsp;LEDs&nbsp;being&nbsp;lit&nbsp;at&nbsp;once.
&nbsp;*/</span><span style="color: #000;">
</span><span style="color: rgb(0%, 0%, 80%);">#define</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">TWINKLE_SPACING</span><span style="color: #000;">&nbsp;</span><span style="color: #369;">20</span><span style="color: #000;">

</span><span style="color: #555;">/**
&nbsp;*&nbsp;The&nbsp;maximum&nbsp;brightness&nbsp;allowed.
&nbsp;*/</span><span style="color: #000;">
</span><span style="color: rgb(0%, 0%, 80%);">#define</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">MAX_BRIGHTNESS</span><span style="color: #000;">&nbsp;</span><span style="color: #369;">512</span><span style="color: #000;">

</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">led_brightness</span><span style="color: #000;">[</span><span style="color: #000;">NUM_LEDS</span><span style="color: #000;">];
</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">led_direction</span><span style="color: #000;">[</span><span style="color: #000;">NUM_LEDS</span><span style="color: #000;">];
</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">led_speed</span><span style="color: #000;">[</span><span style="color: #000;">NUM_LEDS</span><span style="color: #000;">];
</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">twinkle_spacing</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">TWINKLE_SPACING</span><span style="color: #000;">;
</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">min_speed</span><span style="color: #000;">;
</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">max_speed</span><span style="color: #000;">;

</span><span style="color: #00c;">const</span><span style="color: #000;">&nbsp;</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">BLINK_MODE_TWINKLE</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #369;">1</span><span style="color: #000;">;
</span><span style="color: #00c;">const</span><span style="color: #000;">&nbsp;</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">BLINK_MODE_ALL_ON</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #369;">2</span><span style="color: #000;">;
</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">blink_mode</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">BLINK_MODE_ALL_ON</span><span style="color: #000;">;

&nbsp;</span><span style="color: #555;">/**
&nbsp;&nbsp;*&nbsp;Setup&nbsp;our&nbsp;timed&nbsp;action&nbsp;for&nbsp;changing&nbsp;modes
&nbsp;&nbsp;*/</span><span style="color: #000;">
&nbsp;&nbsp;</span><span style="color: #000;">TimedAction</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">delay_twinkle</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">TimedAction</span><span style="color: #000;">(</span><span style="color: #000;">NO_PREDELAY</span><span style="color: #000;">,</span><span style="color: #369;">5000</span><span style="color: #000;">,</span><span style="color: #000;">twinkle_start</span><span style="color: #000;">);

</span><span style="color: #00c;">void</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">setup</span><span style="color: #000;">()
{
&nbsp;</span><span style="color: #555;">/**
&nbsp;&nbsp;*&nbsp;Pick&nbsp;a&nbsp;minimum&nbsp;and&nbsp;maximum&nbsp;speed.&nbsp;&nbsp;Scale&nbsp;with&nbsp;the&nbsp;max&nbsp;brightness.
&nbsp;&nbsp;*&nbsp;We&nbsp;can't&nbsp;let&nbsp;the&nbsp;speeds&nbsp;be&nbsp;zero,&nbsp;so&nbsp;set&nbsp;some&nbsp;lower&nbsp;limits.
&nbsp;&nbsp;*/</span><span style="color: #000;">
&nbsp;</span><span style="color: #000;">min_speed</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">MAX_BRIGHTNESS</span><span style="color: #000;">&nbsp;/&nbsp;</span><span style="color: #369;">500</span><span style="color: #000;">;
&nbsp;</span><span style="color: #000;">max_speed</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">MAX_BRIGHTNESS</span><span style="color: #000;">&nbsp;/&nbsp;</span><span style="color: #369;">50</span><span style="color: #000;">;
&nbsp;</span><span style="color: #00c;">if</span><span style="color: #000;">&nbsp;(</span><span style="color: #000;">min_speed</span><span style="color: #000;">&nbsp;&lt;&nbsp;</span><span style="color: #369;">1</span><span style="color: #000;">)&nbsp;{
&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">min_speed</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #369;">1</span><span style="color: #000;">;
&nbsp;}
&nbsp;</span><span style="color: #00c;">if</span><span style="color: #000;">&nbsp;(</span><span style="color: #000;">max_speed</span><span style="color: #000;">&nbsp;&lt;&nbsp;</span><span style="color: #369;">3</span><span style="color: #000;">)&nbsp;{
&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">max_speed</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #369;">3</span><span style="color: #000;">;
&nbsp;}

&nbsp;</span><span style="color: #555;">/**
&nbsp;&nbsp;*&nbsp;Initialize&nbsp;the&nbsp;brightness,&nbsp;direction,&nbsp;and&nbsp;speed&nbsp;arrays
&nbsp;&nbsp;*/</span><span style="color: #000;">
&nbsp;</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">i</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">;
&nbsp;</span><span style="color: #00c;">for</span><span style="color: #000;">&nbsp;(</span><span style="color: #000;">i</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">&nbsp;;&nbsp;</span><span style="color: #000;">i</span><span style="color: #000;">&nbsp;&lt;&nbsp;</span><span style="color: #369;">3</span><span style="color: #000;">&nbsp;;&nbsp;</span><span style="color: #000;">i</span><span style="color: #000;">++)&nbsp;{
&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">led_brightness</span><span style="color: #000;">[</span><span style="color: #000;">i</span><span style="color: #000;">]&nbsp;=&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">;
&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">led_direction</span><span style="color: #000;">[</span><span style="color: #000;">i</span><span style="color: #000;">]&nbsp;=&nbsp;</span><span style="color: #000;">DOWN</span><span style="color: #000;">;
&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">led_speed</span><span style="color: #000;">[</span><span style="color: #000;">i</span><span style="color: #000;">]&nbsp;=&nbsp;</span><span style="color: #000;">min_speed</span><span style="color: #000;">;
&nbsp;}
&nbsp;
&nbsp;</span><span style="color: #555;">/**
&nbsp;&nbsp;*&nbsp;Initialize&nbsp;the&nbsp;TLC&nbsp;library
&nbsp;&nbsp;*/</span><span style="color: #000;">
&nbsp;</span><span style="color: #000;">Tlc</span><span style="color: #000;">.</span><span style="color: #000;">init</span><span style="color: #000;">();
&nbsp;
&nbsp;</span><span style="color: #555;">/**
&nbsp;&nbsp;*&nbsp;Seed&nbsp;the&nbsp;random&nbsp;number&nbsp;generator
&nbsp;&nbsp;*/</span><span style="color: #000;">
&nbsp;</span><span style="color: #000;">randomSeed</span><span style="color: #000;">(</span><span style="color: #000;">analogRead</span><span style="color: #000;">(</span><span style="color: #369;">0</span><span style="color: #000;">));

}

</span><span style="color: #00c;">void</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">loop</span><span style="color: #000;">()
{
&nbsp;&nbsp;</span><span style="color: #00c;">switch</span><span style="color: #000;">(</span><span style="color: #000;">blink_mode</span><span style="color: #000;">)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #00c;">case</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">BLINK_MODE_TWINKLE</span><span style="color: #000;">:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #555;">//&nbsp;pick&nbsp;a&nbsp;new&nbsp;LED&nbsp;every&nbsp;so&nbsp;often
</span><span style="color: #000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #00c;">if</span><span style="color: #000;">&nbsp;(</span><span style="color: #000;">twinkle_spacing</span><span style="color: #000;">&nbsp;==&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">random_led</span><span style="color: #000;">();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">twinkle_spacing</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">TWINKLE_SPACING</span><span style="color: #000;">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #00c;">else</span><span style="color: #000;">&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">twinkle_spacing</span><span style="color: #000;">--;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">twinkle</span><span style="color: #000;">();

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #555;">//&nbsp;wait&nbsp;a&nbsp;bit&nbsp;between&nbsp;each&nbsp;twinkle&nbsp;cycle.&nbsp;&nbsp;
</span><span style="color: #000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #555;">//&nbsp;Increase&nbsp;this&nbsp;to&nbsp;stretch&nbsp;out&nbsp;things&nbsp;if&nbsp;everything&nbsp;twinkles&nbsp;too&nbsp;fast.
</span><span style="color: #000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">delay</span><span style="color: #000;">(</span><span style="color: #369;">20</span><span style="color: #000;">);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #00c;">break</span><span style="color: #000;">;
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #00c;">case</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">BLINK_MODE_ALL_ON</span><span style="color: #000;">:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #555;">//&nbsp;check&nbsp;to&nbsp;see&nbsp;if&nbsp;we&nbsp;should&nbsp;switch&nbsp;to&nbsp;twinkle&nbsp;mode
</span><span style="color: #000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">delay_twinkle</span><span style="color: #000;">.</span><span style="color: #000;">check</span><span style="color: #000;">();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">all_on</span><span style="color: #000;">();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">delay</span><span style="color: #000;">(</span><span style="color: #369;">20</span><span style="color: #000;">);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #00c;">break</span><span style="color: #000;">;&nbsp;
&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;
}

</span><span style="color: #555;">/**
&nbsp;*&nbsp;For&nbsp;each&nbsp;of&nbsp;our&nbsp;LEDs,&nbsp;we&nbsp;update&nbsp;their&nbsp;brightness
&nbsp;*/</span><span style="color: #000;">
</span><span style="color: #00c;">void</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">twinkle</span><span style="color: #000;">()&nbsp;{
&nbsp;&nbsp;</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">brightness</span><span style="color: #000;">;
&nbsp;&nbsp;</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">dir</span><span style="color: #000;">;
&nbsp;&nbsp;</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">rate</span><span style="color: #000;">;
&nbsp;&nbsp;
&nbsp;&nbsp;</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">i</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">;
&nbsp;&nbsp;</span><span style="color: #00c;">for</span><span style="color: #000;">&nbsp;(</span><span style="color: #000;">i</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">&nbsp;;&nbsp;</span><span style="color: #000;">i</span><span style="color: #000;">&nbsp;&lt;&nbsp;</span><span style="color: #000;">NUM_LEDS</span><span style="color: #000;">&nbsp;;&nbsp;</span><span style="color: #000;">i</span><span style="color: #000;">++)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">brightness</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">led_brightness</span><span style="color: #000;">[</span><span style="color: #000;">i</span><span style="color: #000;">];
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">dir</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">led_direction</span><span style="color: #000;">[</span><span style="color: #000;">i</span><span style="color: #000;">];
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">rate</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">led_speed</span><span style="color: #000;">[</span><span style="color: #000;">i</span><span style="color: #000;">];
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">Tlc</span><span style="color: #000;">.</span><span style="color: #000;">set</span><span style="color: #000;">(</span><span style="color: #000;">i</span><span style="color: #000;">,&nbsp;</span><span style="color: #000;">brightness</span><span style="color: #000;">);
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #555;">/**
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Pick&nbsp;new&nbsp;values&nbsp;for&nbsp;the&nbsp;next&nbsp;twinkle&nbsp;cycle.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span style="color: #000;">
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #00c;">if</span><span style="color: #000;">&nbsp;(</span><span style="color: #000;">dir</span><span style="color: #000;">&nbsp;==&nbsp;</span><span style="color: #000;">DOWN</span><span style="color: #000;">)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">brightness</span><span style="color: #000;">&nbsp;-=&nbsp;</span><span style="color: #000;">rate</span><span style="color: #000;">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #00c;">if</span><span style="color: #000;">&nbsp;(</span><span style="color: #000;">brightness</span><span style="color: #000;">&nbsp;&lt;=&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">brightness</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #00c;">if</span><span style="color: #000;">&nbsp;(</span><span style="color: #000;">dir</span><span style="color: #000;">&nbsp;==&nbsp;</span><span style="color: #000;">UP</span><span style="color: #000;">)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">brightness</span><span style="color: #000;">&nbsp;+=&nbsp;</span><span style="color: #000;">rate</span><span style="color: #000;">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #00c;">if</span><span style="color: #000;">&nbsp;(</span><span style="color: #000;">brightness</span><span style="color: #000;">&nbsp;&gt;=&nbsp;</span><span style="color: #000;">MAX_BRIGHTNESS</span><span style="color: #000;">)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">dir</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">DOWN</span><span style="color: #000;">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">brightness</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">MAX_BRIGHTNESS</span><span style="color: #000;">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #555;">/**
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Update&nbsp;the&nbsp;LED&nbsp;arrays&nbsp;with&nbsp;the&nbsp;new&nbsp;values&nbsp;for&nbsp;next&nbsp;twinkle&nbsp;cycle.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span style="color: #000;">&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">led_brightness</span><span style="color: #000;">[</span><span style="color: #000;">i</span><span style="color: #000;">]&nbsp;=&nbsp;</span><span style="color: #000;">brightness</span><span style="color: #000;">;
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">led_direction</span><span style="color: #000;">[</span><span style="color: #000;">i</span><span style="color: #000;">]&nbsp;=&nbsp;</span><span style="color: #000;">dir</span><span style="color: #000;">;
&nbsp;&nbsp;}
&nbsp;&nbsp;
&nbsp;&nbsp;</span><span style="color: #000;">Tlc</span><span style="color: #000;">.</span><span style="color: #000;">update</span><span style="color: #000;">();

}

</span><span style="color: #555;">/**
&nbsp;*&nbsp;Pick&nbsp;a&nbsp;new&nbsp;LED&nbsp;that&nbsp;isn't&nbsp;already&nbsp;twinkling,&nbsp;and&nbsp;give&nbsp;it&nbsp;a&nbsp;
&nbsp;*&nbsp;random&nbsp;speed&nbsp;to&nbsp;twinkle&nbsp;at.&nbsp;&nbsp;It&nbsp;will&nbsp;be&nbsp;updated&nbsp;next&nbsp;twinkle()&nbsp;call.
&nbsp;*/</span><span style="color: #000;">
</span><span style="color: #00c;">void</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">random_led</span><span style="color: #000;">()&nbsp;{
&nbsp;&nbsp;</span><span style="color: #555;">//&nbsp;pick&nbsp;a&nbsp;random&nbsp;LED
</span><span style="color: #000;">&nbsp;&nbsp;</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">led</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">random</span><span style="color: #000;">(</span><span style="color: #000;">NUM_LEDS</span><span style="color: #000;">);
&nbsp;&nbsp;
&nbsp;&nbsp;</span><span style="color: #555;">//&nbsp;if&nbsp;that&nbsp;one&nbsp;isn't&nbsp;twinkling&nbsp;already,&nbsp;go!
</span><span style="color: #000;">&nbsp;&nbsp;</span><span style="color: #00c;">if</span><span style="color: #000;">&nbsp;(</span><span style="color: #000;">led_direction</span><span style="color: #000;">[</span><span style="color: #000;">led</span><span style="color: #000;">]&nbsp;==&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">&nbsp;&amp;&amp;&nbsp;</span><span style="color: #000;">led_brightness</span><span style="color: #000;">[</span><span style="color: #000;">led</span><span style="color: #000;">]&nbsp;==&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">led_direction</span><span style="color: #000;">[</span><span style="color: #000;">led</span><span style="color: #000;">]&nbsp;=&nbsp;</span><span style="color: #000;">UP</span><span style="color: #000;">;
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">led_speed</span><span style="color: #000;">[</span><span style="color: #000;">led</span><span style="color: #000;">]&nbsp;=&nbsp;</span><span style="color: #000;">random</span><span style="color: #000;">(</span><span style="color: #000;">min_speed</span><span style="color: #000;">,&nbsp;</span><span style="color: #000;">max_speed</span><span style="color: #000;">);
&nbsp;&nbsp;}
}

</span><span style="color: #555;">/**
&nbsp;*&nbsp;Turn&nbsp;all&nbsp;the&nbsp;LEDs&nbsp;on&nbsp;at&nbsp;some&nbsp;value
&nbsp;*/</span><span style="color: #000;">
</span><span style="color: #00c;">void</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">all_on</span><span style="color: #000;">()&nbsp;{
&nbsp;&nbsp;</span><span style="color: #00c;">int</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">i</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">;
&nbsp;&nbsp;</span><span style="color: #00c;">for</span><span style="color: #000;">&nbsp;(</span><span style="color: #000;">i</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #369;">0</span><span style="color: #000;">&nbsp;;&nbsp;</span><span style="color: #000;">i</span><span style="color: #000;">&nbsp;&lt;&nbsp;</span><span style="color: #000;">NUM_LEDS</span><span style="color: #000;">&nbsp;;&nbsp;</span><span style="color: #000;">i</span><span style="color: #000;">++)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000;">Tlc</span><span style="color: #000;">.</span><span style="color: #000;">set</span><span style="color: #000;">(</span><span style="color: #000;">i</span><span style="color: #000;">,&nbsp;</span><span style="color: #369;">256</span><span style="color: #000;">);
&nbsp;&nbsp;}
&nbsp;&nbsp;</span><span style="color: #000;">Tlc</span><span style="color: #000;">.</span><span style="color: #000;">update</span><span style="color: #000;">();
&nbsp;&nbsp;
}

</span><span style="color: #555;">/**
&nbsp;*&nbsp;Change&nbsp;the&nbsp;program&nbsp;mode&nbsp;from&nbsp;all&nbsp;on&nbsp;to&nbsp;twinkle
&nbsp;*/</span><span style="color: #000;">
</span><span style="color: #00c;">void</span><span style="color: #000;">&nbsp;</span><span style="color: #000;">twinkle_start</span><span style="color: #000;">()
{
&nbsp;&nbsp;</span><span style="color: #000;">blink_mode</span><span style="color: #000;">&nbsp;=&nbsp;</span><span style="color: #000;">BLINK_MODE_TWINKLE</span><span style="color: #000;">;
&nbsp;&nbsp;</span><span style="color: #555;">//&nbsp;stop&nbsp;the&nbsp;timed&nbsp;action&nbsp;so&nbsp;it&nbsp;doesn't&nbsp;fire&nbsp;again&nbsp;needlessly
</span><span style="color: #000;">&nbsp;&nbsp;</span><span style="color: #000;">delay_twinkle</span><span style="color: #000;">.</span><span style="color: #000;">disable</span><span style="color: #000;">();
}
</span></code></pre>
]]></content></entry></feed>
