{"id":7155,"date":"2013-05-01T10:31:37","date_gmt":"2013-05-01T14:31:37","guid":{"rendered":"http:\/\/embedded-lab.com\/blog\/?p=7155"},"modified":"2014-01-31T12:30:36","modified_gmt":"2014-01-31T17:30:36","slug":"netduino-day-7-pulse-width-modulation-and-color-formation-using-rgb-led","status":"publish","type":"post","link":"https:\/\/embedded-lab.com\/blog\/netduino-day-7-pulse-width-modulation-and-color-formation-using-rgb-led\/","title":{"rendered":"Netduino Day 7 &#8211; RGB LED color formation using Pulse Width Modulation"},"content":{"rendered":"<p>Pulse Width Modulation (PWM) is a digital method of delivering a varying amount of power to a load, and hence can be used to control the brightness of an LED or speed of a DC motor. Controlling the power, we will make this tutorial colorful using a Red Green Blue (RGB) LED. Each segment (lead) of an RGB-LED will get a PWM signal via <em>RgbLed<\/em> class allowing us to illuminate the RGB-LED with any color defined by RGB. This class can also generate random colors. Using the RgbLed class, some standard colors can also be sent to a RGB-LED.<\/p>\n<div id=\"attachment_7162\" style=\"width: 569px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/?attachment_id=7162\" rel=\"attachment wp-att-7162\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7162\" class=\"size-full wp-image-7162\" title=\"RGB-LED illuminating a purple color\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2013\/02\/RGB_Purplejpg.jpg\" alt=\"\" width=\"559\" height=\"370\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2013\/02\/RGB_Purplejpg.jpg 559w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2013\/02\/RGB_Purplejpg-550x364.jpg 550w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><\/a><p id=\"caption-attachment-7162\" class=\"wp-caption-text\">RGB-LED illuminating a purple color<\/p><\/div>\n<p><!--more--><\/p>\n<h2>Circuit Setup and Theory<\/h2>\n<p>To understand PWM, let&#8217;s understand the terms that make a modulated pulse width signals. The very important one is Duty Cycle. In lay man terms this duty cycle is a value in percent of ON status compared to OFF status. From the figure below we can see the formula to calculate the duty cycle.<\/p>\n<div id=\"attachment_7167\" style=\"width: 264px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/?attachment_id=7167\" rel=\"attachment wp-att-7167\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7167\" class=\"size-full wp-image-7167\" title=\"DutyCycle_WaveForms\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2013\/02\/DutyCycle_WaveForms.png\" alt=\"\" width=\"254\" height=\"248\" \/><\/a><p id=\"caption-attachment-7167\" class=\"wp-caption-text\">PWM wave and its terminology<\/p><\/div>\n<p>Now, let&#8217;s co-relate the above to our project. Let&#8217;s say we like to produce a &#8220;grey&#8221; color. We know the RGB value for grey is 128, 128, and 128. This means, if we mix 50% of red (50% of 256 is 128), 50% of green and 50% of blue, we will get a grey color. The value of 50% came from 128\/256*100 %. With respect to above figure, if T<sub>on<\/sub> = 50% for Red leg, T<sub>on<\/sub> = 50% of Green leg and T<sub>on<\/sub> = 50% of Blue leg of a RGB LED then we will have a gray color out from a RGB-LED. The calculated value is nothing but the duty cycle of a PWM. In the RgbLed class, we basically adjust the duty cycle to illuminate the RGB-LED with a desired color.<\/p>\n<p>Here is a <a href=\"http:\/\/embedded-lab.com\/blog\/?attachment_id=7168\" rel=\"attachment wp-att-7168\"><span style=\"text-decoration: underline;\"><strong>DutyCycle<\/strong><\/span><\/a> Excel spreadsheet to understand it little further and it also somewhat followed in the RgbLed class.<\/p>\n<p><iframe loading=\"lazy\" src=\"http:\/\/www.youtube.com\/embed\/fdTWjPU1D94\" frameborder=\"0\" width=\"580\" height=\"436\"><\/iframe><\/p>\n<p>The connections are not that difficult. Netduino digital pins, 5, 6, 9 and 10 can be configured as PWM pins, out of which we will configure 5, 6 and 9. The outputs of these pins are fed to the base of a NPN transistor. When the pulse is high, the transistor goes into saturation mode and allows the flow from collector to the emitter where our RGB LED is connected. Since the RGB-LED used in this tutorial is common anode, the anode lead is connected to +5v. The circuit diagram below illustrates the connection.<\/p>\n<div id=\"attachment_7458\" style=\"width: 559px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2013\/03\/NetduinoDay6Circuit.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7458\" class=\"size-full wp-image-7458\" title=\"NetduinoDay6Circuit\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2013\/03\/NetduinoDay6Circuit.png\" alt=\"\" width=\"549\" height=\"418\" \/><\/a><p id=\"caption-attachment-7458\" class=\"wp-caption-text\">Circuit diagram: Connecting RGB-LED with Netduino<\/p><\/div>\n<p>Picture below shows the circuit setup on a breadboard and its connections to the Netduino.<\/p>\n<div id=\"attachment_7169\" style=\"width: 560px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/?attachment_id=7169\" rel=\"attachment wp-att-7169\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7169\" class=\"size-full wp-image-7169\" title=\"PWM_RGBLED_ConnectionWithNetduino\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2013\/02\/PWM_RGBLED_ConnectionWithNetduino.png\" alt=\"\" width=\"550\" height=\"421\" \/><\/a><p id=\"caption-attachment-7169\" class=\"wp-caption-text\">Connection with Netduino<\/p><\/div>\n<p>&#8230;and here is actual connection. For the aesthetics of the circuit connection, wires are rearranged.<\/p>\n<div id=\"attachment_7171\" style=\"width: 560px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/?attachment_id=7171\" rel=\"attachment wp-att-7171\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7171\" class=\"size-full wp-image-7171\" title=\"RGB_OFF\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2013\/02\/RGB_OFF.jpg\" alt=\"\" width=\"550\" height=\"413\" \/><\/a><p id=\"caption-attachment-7171\" class=\"wp-caption-text\">Breadboard wiring: Connecting RGB-LED with Netduino<\/p><\/div>\n<h2>C# .NET Program<\/h2>\n<p>Using the RgbLed class is really simple so let&#8217;s skip it for now and focus into the class itself. The constructor of the class takes four arguments, pin number for red, green and blue, the last argument is optional for <em>commonAnode<\/em> which is true by default. Based on the circuit diagram it&#8217;s not too important whether we set this value to true or false. In this constructor method <em>new<\/em> instances of <em>PWM<\/em> class are crated then a <em>ColorTable<\/em> <em>Hashtable<\/em> is populated with standard color.<\/p>\n\n<div class=\"wp_syntax\"><table><tr><td class=\"code\"><pre class=\"csharp\" style=\"font-family:monospace;\"><span style=\"color: #0600FF; font-weight: bold;\">public<\/span> RgbLed<span style=\"color: #008000;\">&#40;<\/span>Cpu<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Pin<\/span> redPwmPin, Cpu<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Pin<\/span> greenPwmPin, Cpu<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Pin<\/span> bluePwmPin, <span style=\"color: #6666cc; font-weight: bold;\">bool<\/span> commonAnode <span style=\"color: #008000;\">=<\/span> <span style=\"color: #0600FF; font-weight: bold;\">true<\/span><span style=\"color: #008000;\">&#41;<\/span>\n<span style=\"color: #008000;\">&#123;<\/span>\n\tRedLED <span style=\"color: #008000;\">=<\/span> <span style=\"color: #008000;\">new<\/span> PWM<span style=\"color: #008000;\">&#40;<\/span>redPwmPin<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n\tGreenLED <span style=\"color: #008000;\">=<\/span> <span style=\"color: #008000;\">new<\/span> PWM<span style=\"color: #008000;\">&#40;<\/span>greenPwmPin<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n\tBlueLED <span style=\"color: #008000;\">=<\/span> <span style=\"color: #008000;\">new<\/span> PWM<span style=\"color: #008000;\">&#40;<\/span>bluePwmPin<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n\tLEDs <span style=\"color: #008000;\">=<\/span> <span style=\"color: #008000;\">new<\/span> PWM<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> RedLED, GreenLED, BlueLED <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">;<\/span>\n&nbsp;\n\tCommonAnode <span style=\"color: #008000;\">=<\/span> commonAnode<span style=\"color: #008000;\">;<\/span>\n\tColorTable <span style=\"color: #008000;\">=<\/span> <span style=\"color: #008000;\">new<\/span> Hashtable<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">0<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t\t<span style=\"color: #008080; font-style: italic;\">\/\/ Off (~~ Black color)<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">1<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">100<\/span>, <span style=\"color: #FF0000;\">100<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span> \t<span style=\"color: #008080; font-style: italic;\">\/\/ Aqua<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">2<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">100<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t<span style=\"color: #008080; font-style: italic;\">\/\/ Blue<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">3<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">100<\/span>, <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">100<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t<span style=\"color: #008080; font-style: italic;\">\/\/ Fuchsia<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">4<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">50<\/span>, <span style=\"color: #FF0000;\">50<\/span>, <span style=\"color: #FF0000;\">50<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t<span style=\"color: #008080; font-style: italic;\">\/\/ Gray<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">5<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">50<\/span>, <span style=\"color: #FF0000;\">0<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t\t<span style=\"color: #008080; font-style: italic;\">\/\/ Green<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">6<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">100<\/span>, <span style=\"color: #FF0000;\">0<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t<span style=\"color: #008080; font-style: italic;\">\/\/ Lime<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">7<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">50<\/span>, <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">0<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t\t<span style=\"color: #008080; font-style: italic;\">\/\/ Maroon<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">8<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">50<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t\t<span style=\"color: #008080; font-style: italic;\">\/\/ Navy<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">9<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">50<\/span>, <span style=\"color: #FF0000;\">50<\/span>, <span style=\"color: #FF0000;\">0<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t<span style=\"color: #008080; font-style: italic;\">\/\/ Olive<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">10<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">50<\/span>, <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">50<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t<span style=\"color: #008080; font-style: italic;\">\/\/ Purple<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">11<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">100<\/span>, <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">0<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t<span style=\"color: #008080; font-style: italic;\">\/\/ Red<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">12<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">75<\/span>, <span style=\"color: #FF0000;\">75<\/span>, <span style=\"color: #FF0000;\">75<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t<span style=\"color: #008080; font-style: italic;\">\/\/ Silver<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">13<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">0<\/span>, <span style=\"color: #FF0000;\">50<\/span>, <span style=\"color: #FF0000;\">50<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t<span style=\"color: #008080; font-style: italic;\">\/\/ Teal<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">14<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">100<\/span>, <span style=\"color: #FF0000;\">100<\/span>, <span style=\"color: #FF0000;\">100<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span><span style=\"color: #008080; font-style: italic;\">\/\/ Whilte<\/span>\n\tColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0600FF; font-weight: bold;\">Add<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">15<\/span>, <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #FF0000;\">100<\/span>, <span style=\"color: #FF0000;\">100<\/span>, <span style=\"color: #FF0000;\">0<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\t<span style=\"color: #008080; font-style: italic;\">\/\/ Yellow<\/span>\n<span style=\"color: #008000;\">&#125;<\/span><\/pre><\/td><\/tr><\/table><\/div>\n\n<p>There are three public methods available for setting a color, the <em>TurnIT<\/em>, <em>Write<\/em> and <em>RandomColor<\/em> methods. To have standard color, call TurnIt method and pass the standard color from <em>Color Enum<\/em>. The <em>Write<\/em> method takes three byte arguments for red, green and blue color. Finally, RandomColor will calculate random number for the red, green and blue color value.<\/p>\n\n<div class=\"wp_syntax\"><table><tr><td class=\"code\"><pre class=\"csharp\" style=\"font-family:monospace;\"><span style=\"color: #0600FF; font-weight: bold;\">public<\/span> <span style=\"color: #6666cc; font-weight: bold;\">void<\/span> TurnIt<span style=\"color: #008000;\">&#40;<\/span>Color color<span style=\"color: #008000;\">&#41;<\/span>\n<span style=\"color: #008000;\">&#123;<\/span>\n\t<span style=\"color: #0600FF; font-weight: bold;\">if<\/span> <span style=\"color: #008000;\">&#40;<\/span>ColorTable<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Contains<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">int<\/span><span style=\"color: #008000;\">&#41;<\/span>color<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">&#41;<\/span>\n\t<span style=\"color: #008000;\">&#123;<\/span>\n\t\tcolorArray <span style=\"color: #008000;\">=<\/span> <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span><span style=\"color: #008000;\">&#41;<\/span>ColorTable<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">int<\/span><span style=\"color: #008000;\">&#41;<\/span>color<span style=\"color: #008000;\">&#93;<\/span><span style=\"color: #008000;\">;<\/span>\n\t\tSetColor<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n\t<span style=\"color: #008000;\">&#125;<\/span>\n\t<span style=\"color: #0600FF; font-weight: bold;\">else<\/span>\n\t\t<span style=\"color: #0600FF; font-weight: bold;\">throw<\/span> <span style=\"color: #008000;\">new<\/span> Exception<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #666666;\">&quot;Color not found&quot;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n<span style=\"color: #008000;\">&#125;<\/span>\n<span style=\"color: #0600FF; font-weight: bold;\">public<\/span> <span style=\"color: #6666cc; font-weight: bold;\">void<\/span> Write<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span> red, <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span> green, <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span> blue<span style=\"color: #008000;\">&#41;<\/span>\n<span style=\"color: #008000;\">&#123;<\/span>\n\tcolorArray <span style=\"color: #008000;\">=<\/span> <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">&#40;<\/span>red <span style=\"color: #008000;\">*<\/span> <span style=\"color: #FF0000;\">100<\/span> <span style=\"color: #008000;\">\/<\/span> <span style=\"color: #FF0000;\">255<\/span><span style=\"color: #008000;\">&#41;<\/span>, <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">&#40;<\/span>green <span style=\"color: #008000;\">*<\/span> <span style=\"color: #FF0000;\">100<\/span> <span style=\"color: #008000;\">\/<\/span> <span style=\"color: #FF0000;\">255<\/span><span style=\"color: #008000;\">&#41;<\/span>, <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">&#40;<\/span>blue <span style=\"color: #008000;\">*<\/span> <span style=\"color: #FF0000;\">100<\/span> <span style=\"color: #008000;\">\/<\/span> <span style=\"color: #FF0000;\">255<\/span><span style=\"color: #008000;\">&#41;<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">;<\/span>\n\tSetColor<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n<span style=\"color: #008000;\">&#125;<\/span>\n<span style=\"color: #0600FF; font-weight: bold;\">public<\/span> <span style=\"color: #6666cc; font-weight: bold;\">void<\/span> RandomColor<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#41;<\/span>\n<span style=\"color: #008000;\">&#123;<\/span>\n\tRandom random <span style=\"color: #008000;\">=<\/span> <span style=\"color: #008000;\">new<\/span> Random<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n\tcolorArray <span style=\"color: #008000;\">=<\/span> <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#41;<\/span>random<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Next<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">100<\/span><span style=\"color: #008000;\">&#41;<\/span>, <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#41;<\/span>random<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Next<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">100<\/span><span style=\"color: #008000;\">&#41;<\/span>, <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#41;<\/span>random<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Next<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">100<\/span><span style=\"color: #008000;\">&#41;<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">;<\/span>\n\tSetColor<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n<span style=\"color: #008000;\">&#125;<\/span>\n<span style=\"color: #0600FF; font-weight: bold;\">public<\/span> <span style=\"color: #0600FF; font-weight: bold;\">override<\/span> <span style=\"color: #6666cc; font-weight: bold;\">string<\/span> ToString<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#41;<\/span>\n<span style=\"color: #008000;\">&#123;<\/span>\n\tcolorString <span style=\"color: #008000;\">=<\/span> <span style=\"color: #6666cc; font-weight: bold;\">string<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Concat<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #666666;\">&quot;RGB(&quot;<\/span>, colorArray<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #FF0000;\">0<\/span><span style=\"color: #008000;\">&#93;<\/span>, <span style=\"color: #666666;\">&quot;, &quot;<\/span>, colorArray<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #FF0000;\">1<\/span><span style=\"color: #008000;\">&#93;<\/span>, <span style=\"color: #666666;\">&quot;, &quot;<\/span>, colorArray<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #FF0000;\">2<\/span><span style=\"color: #008000;\">&#93;<\/span>, <span style=\"color: #666666;\">&quot;)&quot;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n\t<span style=\"color: #0600FF; font-weight: bold;\">return<\/span> colorString<span style=\"color: #008000;\">;<\/span>\n<span style=\"color: #008000;\">&#125;<\/span><\/pre><\/td><\/tr><\/table><\/div>\n\n<p>All the public methods internally call the <em>SetColor<\/em> private method which basically changes the duty cycle of the PWM instances for each read, green and blue pins.<\/p>\n\n<div class=\"wp_syntax\"><table><tr><td class=\"code\"><pre class=\"csharp\" style=\"font-family:monospace;\"><span style=\"color: #0600FF; font-weight: bold;\">private<\/span> <span style=\"color: #6666cc; font-weight: bold;\">void<\/span> SetColor<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#41;<\/span>\n<span style=\"color: #008000;\">&#123;<\/span>\n\t<span style=\"color: #0600FF; font-weight: bold;\">if<\/span> <span style=\"color: #008000;\">&#40;<\/span>CommonAnode<span style=\"color: #008000;\">&#41;<\/span> colorArray <span style=\"color: #008000;\">=<\/span> AdjustPolarityValue<span style=\"color: #008000;\">&#40;<\/span>colorArray<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n\tLEDs<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #FF0000;\">0<\/span><span style=\"color: #008000;\">&#93;<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">SetDutyCycle<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">uint<\/span><span style=\"color: #008000;\">&#41;<\/span>colorArray<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #FF0000;\">0<\/span><span style=\"color: #008000;\">&#93;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span> <span style=\"color: #008080; font-style: italic;\">\/\/ Red<\/span>\n\tLEDs<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #FF0000;\">1<\/span><span style=\"color: #008000;\">&#93;<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">SetDutyCycle<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">uint<\/span><span style=\"color: #008000;\">&#41;<\/span>colorArray<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #FF0000;\">1<\/span><span style=\"color: #008000;\">&#93;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span> <span style=\"color: #008080; font-style: italic;\">\/\/ Green<\/span>\n\tLEDs<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #FF0000;\">2<\/span><span style=\"color: #008000;\">&#93;<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">SetDutyCycle<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">uint<\/span><span style=\"color: #008000;\">&#41;<\/span>colorArray<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #FF0000;\">2<\/span><span style=\"color: #008000;\">&#93;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span> <span style=\"color: #008080; font-style: italic;\">\/\/ Blue<\/span>\n<span style=\"color: #008000;\">&#125;<\/span>\n<span style=\"color: #0600FF; font-weight: bold;\">private<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> AdjustPolarityValue<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> colorArray<span style=\"color: #008000;\">&#41;<\/span>\n<span style=\"color: #008000;\">&#123;<\/span>\n\t<span style=\"color: #0600FF; font-weight: bold;\">return<\/span> <span style=\"color: #008000;\">new<\/span> <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #008000;\">&#93;<\/span> <span style=\"color: #008000;\">&#123;<\/span> <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">100<\/span> <span style=\"color: #008000;\">-<\/span> colorArray<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #FF0000;\">0<\/span><span style=\"color: #008000;\">&#93;<\/span><span style=\"color: #008000;\">&#41;<\/span>, <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">100<\/span> <span style=\"color: #008000;\">-<\/span> colorArray<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #FF0000;\">1<\/span><span style=\"color: #008000;\">&#93;<\/span><span style=\"color: #008000;\">&#41;<\/span>, <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">100<\/span> <span style=\"color: #008000;\">-<\/span> colorArray<span style=\"color: #008000;\">&#91;<\/span><span style=\"color: #FF0000;\">2<\/span><span style=\"color: #008000;\">&#93;<\/span><span style=\"color: #008000;\">&#41;<\/span> <span style=\"color: #008000;\">&#125;<\/span><span style=\"color: #008000;\">;<\/span>\n<span style=\"color: #008000;\">&#125;<\/span><\/pre><\/td><\/tr><\/table><\/div>\n\n<p>Here&#8217;s the <em>RgbLed Class<\/em> diagram:<\/p>\n<div id=\"attachment_7172\" style=\"width: 394px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/?attachment_id=7172\" rel=\"attachment wp-att-7172\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7172\" class=\"size-full wp-image-7172\" title=\"RgbLed_Class_Daigram\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2013\/02\/RgbLed_Class_Daigram.png\" alt=\"\" width=\"384\" height=\"433\" \/><\/a><p id=\"caption-attachment-7172\" class=\"wp-caption-text\">RgbLed Class Diagram<\/p><\/div>\n<h2>Output<\/h2>\n<p>To demonstrate the usage of each three public methods, there are three parts in the video. First it shows the standard color then it shows spectrum of colors by looping through different color loops and finally some random color.<\/p>\n<p>&#8230; to show some standard colors<\/p>\n\n<div class=\"wp_syntax\"><table><tr><td class=\"code\"><pre class=\"csharp\" style=\"font-family:monospace;\">RgbLed led <span style=\"color: #008000;\">=<\/span> <span style=\"color: #008000;\">new<\/span> RgbLed<span style=\"color: #008000;\">&#40;<\/span>Pins<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">GPIO_PIN_D9<\/span>, Pins<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">GPIO_PIN_D6<\/span>, Pins<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">GPIO_PIN_D5<\/span>, <span style=\"color: #0600FF; font-weight: bold;\">false<\/span>   <span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n&nbsp;\n<span style=\"color: #008080; font-style: italic;\">\/\/ Display standard colors<\/span>\nled<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">TurnIt<\/span><span style=\"color: #008000;\">&#40;<\/span>RgbLed<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Color<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Red<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\nWaitAndTurnOff<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">500<\/span>, led<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n&nbsp;\nled<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">TurnIt<\/span><span style=\"color: #008000;\">&#40;<\/span>RgbLed<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Color<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Navy<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\nWaitAndTurnOff<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">500<\/span>, led<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n&nbsp;\nled<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">TurnIt<\/span><span style=\"color: #008000;\">&#40;<\/span>RgbLed<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Color<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Purple<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\nWaitAndTurnOff<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">500<\/span>, led<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n&nbsp;\nled<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">TurnIt<\/span><span style=\"color: #008000;\">&#40;<\/span>RgbLed<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Color<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Green<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\nWaitAndTurnOff<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">500<\/span>, led<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n&nbsp;\nled<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">TurnIt<\/span><span style=\"color: #008000;\">&#40;<\/span>RgbLed<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Color<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Maroon<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\nWaitAndTurnOff<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">500<\/span>, led<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n&nbsp;\nled<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">TurnIt<\/span><span style=\"color: #008000;\">&#40;<\/span>RgbLed<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Color<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Blue<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\nWaitAndTurnOff<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">500<\/span>, led<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n&nbsp;\nled<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">TurnIt<\/span><span style=\"color: #008000;\">&#40;<\/span>RgbLed<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Color<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Fuchsia<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\nWaitAndTurnOff<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">500<\/span>, led<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n&nbsp;\nled<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">TurnIt<\/span><span style=\"color: #008000;\">&#40;<\/span>RgbLed<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Color<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Teal<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\nWaitAndTurnOff<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">500<\/span>, led<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n&nbsp;\nled<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">TurnIt<\/span><span style=\"color: #008000;\">&#40;<\/span>RgbLed<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Color<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Yellow<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\nWaitAndTurnOff<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">500<\/span>, led<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span><\/pre><\/td><\/tr><\/table><\/div>\n\n<p>&#8230; to show different colors<\/p>\n\n<div class=\"wp_syntax\"><table><tr><td class=\"code\"><pre class=\"csharp\" style=\"font-family:monospace;\"><span style=\"color: #0600FF; font-weight: bold;\">for<\/span> <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">int<\/span> red <span style=\"color: #008000;\">=<\/span> <span style=\"color: #FF0000;\">0<\/span><span style=\"color: #008000;\">;<\/span> red <span style=\"color: #008000;\">&lt;<\/span> <span style=\"color: #FF0000;\">255<\/span><span style=\"color: #008000;\">;<\/span> red <span style=\"color: #008000;\">+=<\/span> <span style=\"color: #FF0000;\">50<\/span><span style=\"color: #008000;\">&#41;<\/span>\n<span style=\"color: #008000;\">&#123;<\/span>\n    <span style=\"color: #0600FF; font-weight: bold;\">for<\/span> <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">int<\/span> green <span style=\"color: #008000;\">=<\/span> <span style=\"color: #FF0000;\">0<\/span><span style=\"color: #008000;\">;<\/span> green <span style=\"color: #008000;\">&lt;<\/span> <span style=\"color: #FF0000;\">255<\/span><span style=\"color: #008000;\">;<\/span> green <span style=\"color: #008000;\">+=<\/span> <span style=\"color: #FF0000;\">50<\/span><span style=\"color: #008000;\">&#41;<\/span>\n    <span style=\"color: #008000;\">&#123;<\/span>\n        <span style=\"color: #0600FF; font-weight: bold;\">for<\/span> <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">int<\/span> blue <span style=\"color: #008000;\">=<\/span> <span style=\"color: #FF0000;\">0<\/span><span style=\"color: #008000;\">;<\/span> blue <span style=\"color: #008000;\">&lt;<\/span> <span style=\"color: #FF0000;\">255<\/span><span style=\"color: #008000;\">;<\/span> blue <span style=\"color: #008000;\">+=<\/span> <span style=\"color: #FF0000;\">50<\/span><span style=\"color: #008000;\">&#41;<\/span>\n        <span style=\"color: #008000;\">&#123;<\/span>\n            led<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Write<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#41;<\/span>red, <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#41;<\/span>green, <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">byte<\/span><span style=\"color: #008000;\">&#41;<\/span>blue<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n            Debug<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Print<\/span><span style=\"color: #008000;\">&#40;<\/span>led<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">ToString<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n&nbsp;\n            WaitAndTurnOff<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">100<\/span>, led<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n        <span style=\"color: #008000;\">&#125;<\/span>\n    <span style=\"color: #008000;\">&#125;<\/span>\n<span style=\"color: #008000;\">&#125;<\/span><\/pre><\/td><\/tr><\/table><\/div>\n\n<p>&#8230; and for generating random colors (looping 20 times),<\/p>\n\n<div class=\"wp_syntax\"><table><tr><td class=\"code\"><pre class=\"csharp\" style=\"font-family:monospace;\"><span style=\"color: #0600FF; font-weight: bold;\">for<\/span> <span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">int<\/span> i <span style=\"color: #008000;\">=<\/span> <span style=\"color: #FF0000;\">0<\/span><span style=\"color: #008000;\">;<\/span> i <span style=\"color: #008000;\">&lt;<\/span> <span style=\"color: #FF0000;\">20<\/span><span style=\"color: #008000;\">;<\/span> i<span style=\"color: #008000;\">++<\/span><span style=\"color: #008000;\">&#41;<\/span>\n<span style=\"color: #008000;\">&#123;<\/span>\n    led<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">RandomColor<\/span><span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n    WaitAndTurnOff<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #FF0000;\">500<\/span>, led<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n<span style=\"color: #008000;\">&#125;<\/span>\n<span style=\"color: #0600FF; font-weight: bold;\">private<\/span> <span style=\"color: #0600FF; font-weight: bold;\">static<\/span> <span style=\"color: #6666cc; font-weight: bold;\">void<\/span> WaitAndTurnOff<span style=\"color: #008000;\">&#40;<\/span><span style=\"color: #6666cc; font-weight: bold;\">int<\/span> time, RgbLed led, <span style=\"color: #6666cc; font-weight: bold;\">byte<\/span> longerOn <span style=\"color: #008000;\">=<\/span> <span style=\"color: #FF0000;\">2<\/span><span style=\"color: #008000;\">&#41;<\/span>\n<span style=\"color: #008000;\">&#123;<\/span>\n    Thread<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Sleep<\/span><span style=\"color: #008000;\">&#40;<\/span>time <span style=\"color: #008000;\">*<\/span> longerOn<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n    led<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">TurnIt<\/span><span style=\"color: #008000;\">&#40;<\/span>RgbLed<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Color<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Off<\/span><span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n    Thread<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000FF;\">Sleep<\/span><span style=\"color: #008000;\">&#40;<\/span>time<span style=\"color: #008000;\">&#41;<\/span><span style=\"color: #008000;\">;<\/span>\n<span style=\"color: #008000;\">&#125;<\/span><\/pre><\/td><\/tr><\/table><\/div>\n\n<p>Here&#8217;s a quick output video of the above code.<br \/>\n<iframe loading=\"lazy\" src=\"http:\/\/www.youtube.com\/embed\/jPDl1pN8Xis\" frameborder=\"0\" width=\"580\" height=\"436\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pulse Width Modulation (PWM) is a digital method of delivering a varying amount of power to a load, and hence can be used to control the brightness of an LED or speed of a DC motor. Controlling the power, we will make this tutorial colorful using a Red Green Blue (RGB) LED. Each segment (lead) of an RGB-LED will get a PWM signal via RgbLed class allowing us to illuminate the RGB-LED with any color defined by RGB. This class can also generate random colors. Using the RgbLed class, some standard colors can also be sent to a RGB-LED.<\/p>\n","protected":false},"author":4,"featured_media":7158,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,495],"tags":[542,543,1316,154,153,546,545,544,547],"class_list":["post-7155","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-embedded-lessons","category-netduino","tag-day-7","tag-day-7-tutorial","tag-netduino","tag-pulse-width-modulation","tag-pwm","tag-random-color","tag-rgb-led","tag-rgbled","tag-standard-color"],"_links":{"self":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/7155","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/comments?post=7155"}],"version-history":[{"count":44,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/7155\/revisions"}],"predecessor-version":[{"id":8247,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/7155\/revisions\/8247"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media\/7158"}],"wp:attachment":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media?parent=7155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/categories?post=7155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/tags?post=7155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}