<span id="line-1"><span class="c1">//RoboCircuits</span>
</span><span id="line-2"><span class="c1">//Youtbe www.youtube.com/robocircuits</span>
</span><span id="line-3"><span class="c1">//Website http://robocircuits.com</span>
</span><span id="line-4"><span class="c1">//Please Subscribe us and share this tutorial</span>
</span><span id="line-5">
</span><span id="line-6">
</span><span id="line-7"><span class="n">byte</span> <span class="n">H</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="line-8"><span class="n">B00000000</span><span class="p">,</span>
</span><span id="line-9"><span class="n">B10001001</span><span class="p">,</span>
</span><span id="line-10"><span class="n">B10001001</span><span class="p">,</span>
</span><span id="line-11"><span class="n">B11111001</span><span class="p">,</span>
</span><span id="line-12"><span class="n">B10001001</span><span class="p">,</span>
</span><span id="line-13"><span class="n">B10001001</span><span class="p">,</span>
</span><span id="line-14"><span class="n">B00000000</span><span class="p">,</span>
</span><span id="line-15"><span class="n">B00000000</span><span class="p">};</span>
</span><span id="line-16">
</span><span id="line-17"><span class="n">byte</span> <span class="n">R</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="line-18"><span class="n">B11111100</span><span class="p">,</span>
</span><span id="line-19"><span class="n">B10000010</span><span class="p">,</span>
</span><span id="line-20"><span class="n">B10000001</span><span class="p">,</span>
</span><span id="line-21"><span class="n">B10000010</span><span class="p">,</span>
</span><span id="line-22"><span class="n">B11111100</span><span class="p">,</span>
</span><span id="line-23"><span class="n">B10010000</span><span class="p">,</span>
</span><span id="line-24"><span class="n">B10001000</span><span class="p">,</span>
</span><span id="line-25"><span class="n">B10000010</span><span class="p">};</span>
</span><span id="line-26">
</span><span id="line-27"><span class="n">byte</span> <span class="n">S</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="line-28"><span class="n">B01111111</span><span class="p">,</span>
</span><span id="line-29"><span class="n">B10000000</span><span class="p">,</span>
</span><span id="line-30"><span class="n">B10000000</span><span class="p">,</span>
</span><span id="line-31"><span class="n">B10000000</span><span class="p">,</span>
</span><span id="line-32"><span class="n">B00000000</span><span class="p">,</span>
</span><span id="line-33"><span class="n">B10000000</span><span class="p">,</span>
</span><span id="line-34"><span class="n">B10000000</span><span class="p">,</span>
</span><span id="line-35"><span class="n">B01111111</span><span class="p">};</span>
</span><span id="line-36">
</span><span id="line-37"><span class="n">byte</span> <span class="n">R</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="line-38"><span class="n">B11111100</span><span class="p">,</span>
</span><span id="line-39"><span class="n">B10000010</span><span class="p">,</span>
</span><span id="line-40"><span class="n">B10000001</span><span class="p">,</span>
</span><span id="line-41"><span class="n">B10000010</span><span class="p">,</span>
</span><span id="line-42"><span class="n">B11111100</span><span class="p">,</span>
</span><span id="line-43"><span class="n">B10000100</span><span class="p">,</span>
</span><span id="line-44"><span class="n">B10000010</span><span class="p">,</span>
</span><span id="line-45"><span class="n">B10000001</span><span class="p">};</span>
</span><span id="line-46">
</span><span id="line-47"><span class="n">byte</span> <span class="n">C</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="line-48"><span class="n">B00111111</span><span class="p">,</span>
</span><span id="line-49"><span class="n">B01000000</span><span class="p">,</span>
</span><span id="line-50"><span class="n">B10000000</span><span class="p">,</span>
</span><span id="line-51"><span class="n">B10000000</span><span class="p">,</span>
</span><span id="line-52"><span class="n">B10000000</span><span class="p">,</span>
</span><span id="line-53"><span class="n">B10000000</span><span class="p">,</span>
</span><span id="line-54"><span class="n">B01000000</span><span class="p">,</span>
</span><span id="line-55"><span class="n">B00111111</span><span class="p">};</span>
</span><span id="line-56">
</span><span id="line-57"><span class="n">byte</span> <span class="n">random1</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="line-58"><span class="n">B01010101</span><span class="p">,</span>
</span><span id="line-59"><span class="n">B10101010</span><span class="p">,</span>
</span><span id="line-60"><span class="n">B01010101</span><span class="p">,</span>
</span><span id="line-61"><span class="n">B10101010</span><span class="p">,</span>
</span><span id="line-62"><span class="n">B01010101</span><span class="p">,</span>
</span><span id="line-63"><span class="n">B10101010</span><span class="p">,</span>
</span><span id="line-64"><span class="n">B01010101</span><span class="p">,</span>
</span><span id="line-65"><span class="n">B10101010</span><span class="p">};</span>
</span><span id="line-66">
</span><span id="line-67"><span class="n">byte</span> <span class="n">random2</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="line-68"><span class="n">B10101010</span><span class="p">,</span>
</span><span id="line-69"><span class="n">B01010101</span><span class="p">,</span>
</span><span id="line-70"><span class="n">B10101010</span><span class="p">,</span>
</span><span id="line-71"><span class="n">B01010101</span><span class="p">,</span>
</span><span id="line-72"><span class="n">B10101010</span><span class="p">,</span>
</span><span id="line-73"><span class="n">B01010101</span><span class="p">,</span>
</span><span id="line-74"><span class="n">B10101010</span><span class="p">,</span>
</span><span id="line-75"><span class="n">B01010101</span><span class="p">};</span>
</span><span id="line-76">
</span><span id="line-77">
</span><span id="line-78"><span class="k">const</span> <span class="kt">int</span> <span class="n">columnPins</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">11</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">5</span><span class="p">};</span>
</span><span id="line-79"><span class="k">const</span> <span class="kt">int</span> <span class="n">rowPins</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">13</span><span class="p">,</span> <span class="mi">14</span><span class="p">,</span> <span class="mi">15</span><span class="p">};</span>
</span><span id="line-80"><span class="kt">void</span> <span class="nf">setup</span><span class="p">()</span> <span class="p">{</span>
</span><span id="line-81"><span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">8</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
</span><span id="line-82"><span class="p">{</span>
</span><span id="line-83"><span class="n">pinMode</span><span class="p">(</span><span class="n">rowPins</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">OUTPUT</span><span class="p">);</span> <span class="c1">// make all the LED pins outputs</span>
</span><span id="line-84"><span class="n">pinMode</span><span class="p">(</span><span class="n">columnPins</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">OUTPUT</span><span class="p">);</span>
</span><span id="line-85"><span class="n">digitalWrite</span><span class="p">(</span><span class="n">columnPins</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">HIGH</span><span class="p">);</span> <span class="c1">// disconnect column pins from Ground</span>
</span><span id="line-86"><span class="p">}</span>
</span><span id="line-87"><span class="p">}</span>
</span><span id="line-88">
</span><span id="line-89"><span class="kt">void</span> <span class="nf">loop</span><span class="p">()</span>
</span><span id="line-90"><span class="p">{</span>
</span><span id="line-91"><span class="kt">int</span> <span class="n">Delay</span> <span class="o">=</span> <span class="mi">800</span> <span class="p">;</span>
</span><span id="line-92">
</span><span id="line-93"><span class="n">randomeffect</span><span class="p">();</span>
</span><span id="line-94"><span class="n">show</span><span class="p">(</span><span class="n">H</span><span class="p">,</span> <span class="mi">1000</span><span class="p">);</span>
</span><span id="line-95">
</span><span id="line-96"><span class="n">randomeffect</span><span class="p">();</span>
</span><span id="line-97"><span class="n">show</span><span class="p">(</span><span class="n">R</span><span class="p">,</span> <span class="mi">1000</span><span class="p">);</span>
</span><span id="line-98">
</span><span id="line-99"><span class="n">randomeffect</span><span class="p">();</span>
</span><span id="line-100"><span class="n">show</span><span class="p">(</span><span class="n">C</span><span class="p">,</span> <span class="mi">1000</span><span class="p">);</span>
</span><span id="line-101"><span class="n">randomeffect</span><span class="p">();</span>
</span><span id="line-102"><span class="n">show</span><span class="p">(</span><span class="n">H</span><span class="p">,</span> <span class="mi">1000</span><span class="p">);</span>
</span><span id="line-103">
</span><span id="line-104"><span class="n">randomeffect</span><span class="p">();</span>
</span><span id="line-105"><span class="n">show</span><span class="p">(</span><span class="n">R</span><span class="p">,</span> <span class="mi">1000</span><span class="p">);</span>
</span><span id="line-106">
</span><span id="line-107"><span class="n">randomeffect</span><span class="p">();</span>
</span><span id="line-108"><span class="n">show</span><span class="p">(</span><span class="n">C</span><span class="p">,</span> <span class="mi">1000</span><span class="p">);</span>
</span><span id="line-109"><span class="n">randomeffect</span><span class="p">();</span>
</span><span id="line-110"><span class="n">show</span><span class="p">(</span><span class="n">H</span><span class="p">,</span> <span class="mi">1000</span><span class="p">);</span>
</span><span id="line-111">
</span><span id="line-112"><span class="n">randomeffect</span><span class="p">();</span>
</span><span id="line-113"><span class="n">show</span><span class="p">(</span><span class="n">R</span><span class="p">,</span> <span class="mi">1000</span><span class="p">);</span>
</span><span id="line-114">
</span><span id="line-115"><span class="n">randomeffect</span><span class="p">();</span>
</span><span id="line-116"><span class="n">show</span><span class="p">(</span><span class="n">C</span><span class="p">,</span> <span class="mi">1000</span><span class="p">);</span>
</span><span id="line-117">
</span><span id="line-118"><span class="n">delay</span><span class="p">(</span><span class="n">Delay</span><span class="p">);</span>
</span><span id="line-119"><span class="p">}</span>
</span><span id="line-120">
</span><span id="line-121">
</span><span id="line-122"><span class="kt">void</span> <span class="nf">randomeffect</span><span class="p">()</span>
</span><span id="line-123"><span class="p">{</span>
</span><span id="line-124"> <span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="n">a</span><span class="o"><</span><span class="mi">2</span><span class="p">;</span><span class="n">a</span><span class="o">++</span><span class="p">)</span>
</span><span id="line-125"><span class="p">{</span>
</span><span id="line-126"><span class="n">show</span><span class="p">(</span><span class="n">random1</span><span class="p">,</span><span class="mi">30</span><span class="p">);</span>
</span><span id="line-127"><span class="n">delay</span><span class="p">(</span><span class="mi">40</span><span class="p">);</span>
</span><span id="line-128"><span class="n">show</span><span class="p">(</span><span class="n">random2</span><span class="p">,</span><span class="mi">30</span><span class="p">);</span>
</span><span id="line-129"><span class="n">delay</span><span class="p">(</span><span class="mi">40</span><span class="p">);</span>
</span><span id="line-130"><span class="p">}</span>
</span><span id="line-131"><span class="p">}</span>
</span><span id="line-132">
</span><span id="line-133">
</span><span id="line-134">
</span><span id="line-135"><span class="kt">void</span> <span class="nf">show</span><span class="p">(</span> <span class="n">byte</span> <span class="o">*</span> <span class="n">image</span><span class="p">,</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="n">duration</span><span class="p">)</span>
</span><span id="line-136"><span class="p">{</span>
</span><span id="line-137"><span class="kt">unsigned</span> <span class="kt">long</span> <span class="n">start</span> <span class="o">=</span> <span class="n">millis</span><span class="p">();</span>
</span><span id="line-138"><span class="k">while</span> <span class="p">(</span><span class="n">start</span> <span class="o">+</span> <span class="n">duration</span> <span class="o">></span> <span class="n">millis</span><span class="p">())</span>
</span><span id="line-139"><span class="p">{</span>
</span><span id="line-140"><span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">row</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">row</span> <span class="o"><</span> <span class="mi">8</span><span class="p">;</span> <span class="n">row</span><span class="o">++</span><span class="p">)</span>
</span><span id="line-141"><span class="p">{</span>
</span><span id="line-142"><span class="n">digitalWrite</span><span class="p">(</span><span class="n">rowPins</span><span class="p">[</span><span class="n">row</span><span class="p">],</span> <span class="n">HIGH</span><span class="p">);</span> <span class="c1">// connect row to +5 volts</span>
</span><span id="line-143"><span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">column</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">column</span> <span class="o"><</span> <span class="mi">8</span><span class="p">;</span> <span class="n">column</span><span class="o">++</span><span class="p">)</span>
</span><span id="line-144"><span class="p">{</span>
</span><span id="line-145"><span class="n">boolean</span> <span class="n">pixel</span> <span class="o">=</span> <span class="n">bitRead</span><span class="p">(</span><span class="n">image</span><span class="p">[</span><span class="n">row</span><span class="p">],</span><span class="n">column</span><span class="p">);</span>
</span><span id="line-146"><span class="k">if</span><span class="p">(</span><span class="n">pixel</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span>
</span><span id="line-147"><span class="p">{</span>
</span><span id="line-148"><span class="n">digitalWrite</span><span class="p">(</span><span class="n">columnPins</span><span class="p">[</span><span class="n">column</span><span class="p">],</span> <span class="n">LOW</span><span class="p">);</span> <span class="c1">// connect column to Gnd</span>
</span><span id="line-149"><span class="p">}</span>
</span><span id="line-150"><span class="n">delayMicroseconds</span><span class="p">(</span><span class="mi">300</span><span class="p">);</span> <span class="c1">// a small delay for each LED</span>
</span><span id="line-151"><span class="n">digitalWrite</span><span class="p">(</span><span class="n">columnPins</span><span class="p">[</span><span class="n">column</span><span class="p">],</span> <span class="n">HIGH</span><span class="p">);</span> <span class="c1">// disconnect column from Gnd</span>
</span><span id="line-152"><span class="p">}</span>
</span><span id="line-153"><span class="n">digitalWrite</span><span class="p">(</span><span class="n">rowPins</span><span class="p">[</span><span class="n">row</span><span class="p">],</span> <span class="n">LOW</span><span class="p">);</span> <span class="c1">// disconnect LEDs</span>
</span><span id="line-154"><span class="p">}</span>
</span><span id="line-155"><span class="p">}</span>
</span><span id="line-156"><span class="p">}</span>
</span>