{"id":1753,"date":"2018-11-18T09:55:15","date_gmt":"2018-11-18T17:55:15","guid":{"rendered":"http:\/\/www.donluc.com\/?p=1753"},"modified":"2018-11-18T09:55:15","modified_gmt":"2018-11-18T17:55:15","slug":"project-7-rgb-lcd-shield-mcp4131-mk10","status":"publish","type":"post","link":"https:\/\/www.donluc.com\/?p=1753","title":{"rendered":"Project #7: RGB LCD Shield \u2013 MCP4131 \u2013 Mk10"},"content":{"rendered":"<p><strong>Microchip Technology Inc &#8211; MCP4131<\/strong><\/p>\n<div style=\"width: 720px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-1753-1\" width=\"720\" height=\"406\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/dl1811mk01.mp4?_=1\" \/><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/dl1811mk01.mp4\">https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/dl1811mk01.mp4<\/a><\/video><\/div>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03a.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03a.png\" alt=\"\" width=\"720\" height=\"714\" class=\"alignnone size-full wp-image-1755\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03a.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03a-150x150.png 150w, https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03a-300x298.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03b.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03b.png\" alt=\"\" width=\"720\" height=\"714\" class=\"alignnone size-full wp-image-1756\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03b.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03b-150x150.png 150w, https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03b-300x298.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03c.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03c.png\" alt=\"\" width=\"720\" height=\"540\" class=\"alignnone size-full wp-image-1757\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03c.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03c-300x225.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03d.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03d.png\" alt=\"\" width=\"720\" height=\"540\" class=\"alignnone size-full wp-image-1758\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03d.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2018\/11\/DonLuc1808Mk03d-300x225.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p><strong>Features:<\/strong><\/p>\n<p>-7-bit: 128 Resistors with 129 Taps to VSS and VDD<br \/>\n-SPI compatible interface<br \/>\n-Automatic Recall of Potentiometer Wiper Settings Resistance Values: 5k Ohm, 10k Ohm, 50k Ohm, 100k Ohm<br \/>\n-Absolute (Rheostat): <100 ppm (typ.)\n-Ratiometric (Potentiometer): <10 ppm (typ.)\n\n<strong>Device Overview &#8211; Summary<\/strong><\/p>\n<p>The MCP41\/423X devices are volatile, 7-bit (129 wiper steps) digital potentiometers with an SPI compatible interface. The MCP41\/42XX family is available with end-to-end resistor values of 5K Ohm, 10K Ohm, 50k Ohm and 100K Ohm. These devices offer a variety of configurations simplifying design while minimizing cost, package size and pin count.<\/p>\n<p><strong>Additional Features<\/strong><\/p>\n<p>-7-bit: 128 Resistors with 129 Taps to VSS and VDD<br \/>\n-SPI compatible interface<br \/>\n-Automatic Recall of Potentiometer Wiper Settings Resistance Values: 5k Ohm, 10k Ohm, 50k Ohm, 100k Ohm<br \/>\n-Low Tempco: Absolute (Rheostat): <100 ppm (typ.) \n-Ratiometric (Potentiometer): <10 ppm (typ.)  \n-Low Wiper Resistance: 100 Ohm (typ.) \n-Low-Power Operation: 1\u00b5A Max Static Current \n-Wide Operating Voltage: 1.8V to 5.5V\n-Extended Temperature Range: -40\u00b0C to +125\u00b0C \n\n<strong>MCP4131 &#8211; Digital Potentiometer &#8211; 10K<\/strong><\/p>\n<p>Potentiometers are incredibly useful, whether you\u2019re controlling the volume on your stereo or the &#8216;mood lighting&#8217; in your room. The problem with traditional potentiometers is the fact that your microcontroller doesn\u2019t have an easy way to interface with them. Digital potentiometers solve that problem by allowing you to control a voltage splitter with digital signals.<\/p>\n<p>Wire it up just like a potentiometer and use serial signals to &#8216;turn the knob&#8217;. Another handy feature of digital potentiometers is that because they aren\u2019t controlled mechanically, they don\u2019t have a pre-determined sweep profile. In other words, depending on the way you write your code the potentiometer can &#8216;sweep&#8217; in a linear fashion, a logarithmic fashion, or according to any other profile you like. Digital potentiometers can also be used in conjunction with rotary encoders to consolidate large banks of potentiometers into one &#8216;smart&#8217; rotary control.<\/p>\n<p><strong>Digital Potentiometer MCP41131 and Arduino<\/strong><\/p>\n<p>We know the analog potentiometer, is a three-terminal resistor with a sliding contact that forms an adjustable voltage divider. Potentiometers many application such like:<\/p>\n<p>1- Volume controls on audio equipment<br \/>\n2- Control the amplifier gain and offset<br \/>\n3- Transducer displacement transducers<\/p>\n<p>Many other application, but did you want to control the resistance value by Arduino instead of using analog one. Analog potentiometers have some problem with Arduino doesn&#8217;t have an easy way to interface with them. The digital potentiometer, give you an ability to adjust the resistance, allowing you to control a voltage splitter with digital signals. This IC using SPI Protocol to communicate with Arduino.<\/p>\n<p><strong>DonLuc1808Mk03<\/strong><\/p>\n<p>1 x RGB LCD Shield 16&#215;2 Character Display<br \/>\n1 x Arduino UNO &#8211; R3<br \/>\n1 x ProtoScrewShield<br \/>\n1 x MCP4131<br \/>\n1 x LED Green<br \/>\n1 x 270 Ohm Resistance<br \/>\n1 x NeoPixel Stick &#8211; 8 x 5050 RGB LED<br \/>\n1 x 100K Potentiometer<br \/>\n1 x Black Knob<br \/>\n7 x Jumper Wires 3&#8243; M\/M<br \/>\n12 x Jumper Wires 6&#8243; M\/M<br \/>\n1 x Full-Size Breadboard<br \/>\n1 x USB Cable A to B<\/p>\n<p><strong>Arduino UNO<\/strong><\/p>\n<p>MC1 &#8211; Digital 13<br \/>\nMC2 &#8211; Digital 11<br \/>\nMC3 &#8211; Digital 10<br \/>\nLR1 &#8211; Digital 3<br \/>\nPOT &#8211; Analog 1<br \/>\nGND &#8211; GND<br \/>\nVIN &#8211; +5V<\/p>\n<p><strong>DonLuc1808Mk03p.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"default\" data-enlighter-title=\"DonLuc1808Mk03p.ino\">\r\n\/\/ ***** Don Luc Electronics *****\r\n\/\/ Software Version Information\r\n\/\/ Project #7: RGB LCD Shield \u2013 MCP4131 \u2013 Mk10\r\n\/\/ 8-03\r\n\/\/ DonLuc1808Mk03p 8-03\r\n\/\/ RGB LCD Shield\r\n\/\/ MCP4131\r\n\r\n\/\/ Include Library Code\r\n#include &lt;Adafruit_MCP23017.h&gt;\r\n#include &lt;Adafruit_RGBLCDShield.h&gt;\r\n#include &lt;Adafruit_NeoPixel.h&gt;\r\n#include &lt;SPI.h&gt;\r\n\r\n\/\/ RGB LCD Shield\r\nAdafruit_RGBLCDShield RGBLCDShield = Adafruit_RGBLCDShield();\r\n#define GREEN 0x2\r\n\r\n\/\/ NeoPixels\r\n#define PIN 3                             \/\/ On digital pin 3\r\n#define NUMPIXELS 8                       \/\/ NeoPixels NUMPIXELS = 8\r\nAdafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);\r\nint red = 0;                              \/\/ Red\r\nint green = 0;                            \/\/ Green\r\nint blue = 0;                             \/\/ Blue\r\nint iNeo = 0;                             \/\/ Neopix\r\nconst int iBriPin = A1;                   \/\/ Panel Mount 1K potentiometer Brightneed\r\nint iBri = 0;                             \/\/ Neopix Brightness\r\nint iBriMin = 1023;                       \/\/ Brightneed minimum sensor value\r\nint iBriMax = 0;                          \/\/ Brightneed maximun sensor value\r\nint z = 0;                                \/\/ Value\r\n\r\n\/\/ MCP4131\r\nint pinCS = 10;                           \/\/ MCP4131\r\nbyte address = 0x00;                      \/\/ Address\r\nint i = 0;                                \/\/ Value\r\n\r\nvoid loop() \r\n{\r\n\r\n  \/\/ MCP4131\r\n  isMCP4131();\r\n\r\n  delay(1000);\r\n  \r\n  \/\/ Clear\r\n  RGBLCDShield.clear();\r\n  \r\n}\r\n<\/pre>\n<p><strong>getMCP4131.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"default\" data-enlighter-title=\"getMCP4131.ino\">\r\n\/\/ MCP4131\r\nvoid isMCP4131()\r\n{\r\n\r\n  \/\/ NeoPixels\r\n  isNUMPIXELSoff();                             \/\/ isNUMPIXELSoff\r\n  \r\n  \/\/ Display\r\n  \/\/ Set the cursor to column 0, line 0  \r\n  RGBLCDShield.setCursor(0,0);\r\n  RGBLCDShield.print(&quot;MCP4131&quot;);                \/\/ MCP4131\r\n\r\n  \/\/ MCP4131\r\n  \/\/ Move the potentiometer in one direction\r\n  for ( i = 0; i &lt;= 128; i++) \r\n  {\r\n\r\n    isNUMPIXELSoff();                           \/\/ isNUMPIXELSoff\r\n    \r\n    MCP4131PotWrite(i);\r\n\r\n    isNUMPIXELS();                              \/\/ isNUMPIXELS\r\n        \r\n    delay(100);\r\n    \r\n    \/\/ Set the cursor to column 0, line 1\r\n    RGBLCDShield.setCursor(0, 1); \r\n    RGBLCDShield.print(&quot;Level = &quot;);             \/\/ MCP4131\r\n    RGBLCDShield.print(i);                      \/\/ MCP4131 \r\n\r\n  }\r\n  \r\n  delay(2000);  \/\/ wait a couple seconds\r\n  \r\n  \/\/ Now mover potentiometer in other directions  \r\n  for ( i = 128; i &gt;= 0; i--) \r\n  {\r\n\r\n    isNUMPIXELSoff();                            \/\/ isNUMPIXELSoff\r\n    \r\n    MCP4131PotWrite(i);\r\n\r\n    isNUMPIXELS();                               \/\/ isNUMPIXELS\r\n        \r\n    delay(100);\r\n    \r\n    RGBLCDShield.setCursor(0, 1);\r\n    RGBLCDShield.print(&quot;                &quot;);\r\n    RGBLCDShield.setCursor(0, 1); \r\n    RGBLCDShield.print(&quot;Level =  &quot;);             \/\/ MCP4131    \r\n    RGBLCDShield.print(i);                       \/\/ MCP4131 \r\n\r\n  }\r\n  \r\n  delay(2000);\r\n\r\n}\r\n\/\/ MCP4131PotWrite\r\nint MCP4131PotWrite(int value)\r\n{\r\n  \r\n  digitalWrite(pinCS, LOW);                      \/\/ pinCS Off\r\n  SPI.transfer(address);                         \/\/ SPI Address\r\n  SPI.transfer(value);                           \/\/ SPI Value\r\n  digitalWrite(pinCS, HIGH);                     \/\/ pinCS On\r\n  \r\n}\r\n<\/pre>\n<p><strong>neopix.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"default\" data-enlighter-title=\"neopix.ino\">\r\n\/\/ NeoPixels\r\nvoid neopix() \r\n{ \r\n    \r\n    \/\/ Brightness\r\n    iBri = analogRead(iBriPin);\r\n\r\n    \/\/ iBri apply the calibration to the sensor reading\r\n    iBri = map(iBri, iBriMin, iBriMax, 0, 255);\r\n\r\n    \/\/ iBri in case the sensor value is outside the range seen during calibration\r\n    iBri = constrain(iBri, 0, 255);\r\n    \r\n    pixels.setBrightness( iBri );\r\n    \/\/ Pixels.Color takes RGB values, from 0,0,0 up to 255,255,255\r\n    pixels.setPixelColor( iNeo, pixels.Color(red,green,blue) ); \r\n    \/\/ This sends the updated pixel color to the hardware\r\n    pixels.show(); \r\n    \/\/ Delay for a period of time (in milliseconds)\r\n    delay(50);     \r\n  \r\n}\r\n\/\/ isNUMPIXELS\r\nvoid isNUMPIXELS()\r\n{\r\n\r\n  \/\/ Neopix Value\r\n  z = ( i \/ 16 );                             \/\/ Value\r\n  \r\n  \/\/ Neopix Value\r\n  switch ( z ) {  \r\n    case 0:\r\n      \/\/ NeoPixels\r\n      \/\/ Green\r\n      for(int y=0; y&lt;=0; y++)\r\n      { \r\n         red = 0;                             \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      break;  \r\n    case 1:\r\n      \/\/ Green\r\n      \/\/ NeoPixels\r\n      for(int y=0; y&lt;=1; y++){ \r\n         red = 0;                             \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      break;\r\n    case 2:\r\n      \/\/ NeoPixels\r\n      \/\/ Green\r\n      for(int y=0; y&lt;=2; y++){ \r\n         red = 0;                             \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      break;\r\n    case 3:\r\n      \/\/ NeoPixels\r\n      \/\/ Green\r\n      for(int y=0; y&lt;=2; y++){ \r\n         red = 0;                             \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      \/\/ Yellow\r\n      for(int y=3; y&lt;=3; y++){ \r\n         red = 255;                           \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      break;\r\n    case 4:\r\n      \/\/ NeoPixels\r\n      \/\/ Green\r\n      for(int y=0; y&lt;=2; y++){ \r\n         red = 0;                             \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      \/\/ Yellow\r\n      for(int y=3; y&lt;=4; y++){ \r\n         red = 255;                           \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      break;\r\n    case 5:\r\n      \/\/ NeoPixels\r\n      \/\/ Green\r\n      for(int y=0; y&lt;=2; y++){ \r\n         red = 0;                             \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      \/\/ Yellow\r\n      for(int y=3; y&lt;=5; y++){ \r\n         red = 255;                           \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      break;\r\n    case 6:\r\n      \/\/ NeoPixels\r\n      \/\/ Green\r\n      for(int y=0; y&lt;=2; y++){ \r\n         red = 0;                             \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      \/\/ Yellow\r\n      for(int y=3; y&lt;=5; y++){ \r\n         red = 255;                           \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      \/\/ Red\r\n      for(int y=6; y&lt;=6; y++){ \r\n         red = 255;                           \/\/ Red\r\n         green = 0;                           \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }      \r\n      break;\r\n    case 7:\r\n      \/\/ NeoPixels\r\n      \/\/ Green\r\n      for(int y=0; y&lt;=2; y++){ \r\n         red = 0;                             \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      \/\/ Yellow\r\n      for(int y=3; y&lt;=5; y++){ \r\n         red = 255;                           \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      \/\/ Red\r\n      for(int y=6; y&lt;=7; y++){ \r\n         red = 255;                           \/\/ Red\r\n         green = 0;                           \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }      \r\n      break;\r\n    case 8:\r\n      \/\/ NeoPixels\r\n      \/\/ Green\r\n      for(int y=0; y&lt;=2; y++){ \r\n         red = 0;                             \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      \/\/ Yellow\r\n      for(int y=3; y&lt;=5; y++){ \r\n         red = 255;                           \/\/ Red\r\n         green = 255;                         \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }\r\n      \/\/ Red\r\n      for(int y=6; y&lt;=7; y++){ \r\n         red = 255;                           \/\/ Red\r\n         green = 0;                           \/\/ Green\r\n         blue = 0;                            \/\/ Blue\r\n         iNeo = y;                            \/\/ Neopix      \r\n         neopix(); \r\n      }      \r\n      break; \r\n  }\r\n      \r\n}\r\n\/\/ isNUMPIXELSoff\r\nvoid isNUMPIXELSoff()\r\n{\r\n\r\n   \/\/ Black\r\n   \/\/ NeoPixels\r\n   for(int y=0; y &lt; NUMPIXELS; y++)\r\n   { \r\n      red = 0;                                 \/\/ Red\r\n      green = 0;                               \/\/ Green\r\n      blue = 0;                                \/\/ Blue\r\n      iNeo = y;                                \/\/ Neopix  \r\n      neopix();    \r\n   }\r\n   \r\n}\r\n<\/pre>\n<p><strong>setup.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"default\" data-enlighter-title=\"setup.ino\">\r\n\/\/ Setup\r\nvoid setup() \r\n{\r\n\r\n  \/\/ set up the LCD&#039;s number of columns and rows: \r\n  RGBLCDShield.begin(16, 2);\r\n  RGBLCDShield.setBacklight(GREEN);\r\n  \r\n  \/\/ Display\r\n  \/\/ Set the cursor to column 0, line 0  \r\n  RGBLCDShield.setCursor(0,0);  \r\n  RGBLCDShield.print(&quot;Don Luc&quot;);           \/\/ Don luc\r\n  \/\/ Set the cursor to column 0, line 1\r\n  RGBLCDShield.setCursor(0, 1);\r\n  RGBLCDShield.print(&quot;MCP4131&quot;);           \/\/ MCP4131\r\n  delay(5000);\r\n\r\n  \/\/ Clear\r\n  RGBLCDShield.clear();\r\n\r\n  \/\/ NeoPixels\r\n  pixels.begin();                          \/\/ This initializes the NeoPixel library\r\n  \/\/ NeoPixels\r\n  isNUMPIXELSoff();                        \/\/ isNUMPIXELSoff\r\n  \r\n  \/\/ MCP4131\r\n  pinMode(pinCS, OUTPUT);                  \/\/ MCP4131 OUTPUT\r\n  \r\n  SPI.begin();                             \/\/ SPI\r\n    \r\n}\r\n<\/pre>\n<p><strong>Don Luc<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microchip Technology Inc &#8211; MCP4131 Features: -7-bit: 128 Resistors with 129 Taps to VSS and VDD -SPI compatible interface -Automatic Recall of Potentiometer Wiper Settings Resistance Values: 5k Ohm, 10k Ohm, 50k Ohm, 100k Ohm -Absolute (Rheostat):<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71,47,50,38,59,5,58,10,43],"tags":[],"class_list":["post-1753","post","type-post","status-publish","format-standard","hentry","category-rgb-lcd-shield","category-adafruit","category-arduino","category-digitalelectronics","category-fritzing","category-microcontrollers","category-arduino-programming","category-projects","category-sparkfun"],"_links":{"self":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/1753","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1753"}],"version-history":[{"count":2,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/1753\/revisions"}],"predecessor-version":[{"id":4516,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/1753\/revisions\/4516"}],"wp:attachment":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1753"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1753"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}