<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Arduino Input multiplexer</title><link>/products/arduino/b/blog/posts/arduino-input-multiplexer</link><description>This is my latest arduino shield that I made to experiment. It is based on the 74ls151 input multiplexer, you can add more to eatch input that you need turning it in to an 8 bit input. Here are some pictured and a basic schematic and code t...</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Arduino Input multiplexer</title><link>https://community.element14.com/products/arduino/b/blog/posts/arduino-input-multiplexer</link><pubDate>Sat, 23 Feb 2013 21:09:54 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:7fe7c75b-6768-4929-9ffe-16293669486f</guid><dc:creator>tabarus12</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Here a corrected version of the multiplexer program.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Ive added a correction to the array and a for routine to pront serial data to port. Enjoy&lt;span&gt;[View:/resized-image/__size/16x16/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-7fe7c75b-6768-4929-9ffe-16293669486f/contentimage_5F00_3.png:16:16]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;#include&amp;lt;Streaming.h&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;int b0 = 8; //Declare bit 0 pin&lt;/p&gt;&lt;p&gt;int b1 = 9; //Declare bit 1 pin&lt;/p&gt;&lt;p&gt;int b2 = 10; //Declare bit 2 pin&lt;/p&gt;&lt;p&gt;int d1 = 11; //Declare data pin 1&lt;/p&gt;&lt;p&gt;int d2 = 12; //Declare data pin 2&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;int data1[9] = {0,0,0,0,0,0,0,0}; //Declare data 1 array&lt;/p&gt;&lt;p&gt;int data2[9] = {0,0,0,0,0,0,0,0}; //Declare data 2 array&lt;/p&gt;&lt;p&gt;int a = 1; //Declare array position variable&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;void setup() {&lt;/p&gt;&lt;p&gt;&amp;nbsp; pinMode(b0,OUTPUT); //Set bit cero pin to output&lt;/p&gt;&lt;p&gt;&amp;nbsp; pinMode(b1,OUTPUT); //Set bit one pin to output&lt;/p&gt;&lt;p&gt;&amp;nbsp; pinMode(b2,OUTPUT); //Set bit two pin to output&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp; pinMode(d1,INPUT); //Set data pin 1 to input&lt;/p&gt;&lt;p&gt;&amp;nbsp; pinMode(d2,INPUT); //Set data pin 2 to input&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp; Serial.begin(9600); //Start serial port transmition&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;void loop() {&lt;/p&gt;&lt;p&gt;&amp;nbsp; a=1; //Set array position to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp; for(a=1; a&amp;lt;=9; a++) { //Encrease aray position&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bin(); //Call for binary print run&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(digitalRead(d1) == HIGH) { //On data pin 1 enable&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data1[a]=1; //Set data array 1 position value to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else { //On data pin 1 disabled&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data1[a]=0; //Set data 1 array 1 position value to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(digitalRead(d2) == HIGH) { //On data pin 2 enable&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data2[a]=1; //Set data array 2 position to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else { //On data 2 pin disable&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data2[a]=0; //Set data aray 2 position to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(50); //Delat for slow IC&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Remove if using fast speed IC&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; a=1;&lt;/p&gt;&lt;p&gt;&amp;nbsp; Serial &amp;lt;&amp;lt; &amp;quot;&amp;nbsp; Mux A&amp;nbsp;&amp;nbsp; MuxB&amp;quot; &amp;lt;&amp;lt; endl;&lt;/p&gt;&lt;p&gt;&amp;nbsp; for(a=1; a&amp;lt;=8; a++){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serial &amp;lt;&amp;lt; data1[a];&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; a=1;&lt;/p&gt;&lt;p&gt;&amp;nbsp; Serial &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;/p&gt;&lt;p&gt;&amp;nbsp; for(a=1; a&amp;lt;=8; a++) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serial &amp;lt;&amp;lt; data2[a];&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; a=1;&lt;/p&gt;&lt;p&gt;&amp;nbsp; Serial &amp;lt;&amp;lt; endl;&lt;/p&gt;&lt;p&gt;&amp;nbsp; //Print data array 1 and 2 value to serial port&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;void Bin() { //Binary print routine&lt;/p&gt;&lt;p&gt;&amp;nbsp; switch (a) { //Select on array position&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 1: //On first case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b0, LOW); //Set bin 0 pin to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b1, LOW); //Set bin 1 pin to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b2, LOW); //Set bin 2 pin to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break; //Break case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 2: //On second case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b0, HIGH); //Set bin 0 pin to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b1, LOW); //Set bin 1 pin to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b2, LOW); //Set bin 2 pin to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break; //Break case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 3: //On third case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b0, LOW); //Set bin 0 pin to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b1, HIGH); //Set bin 1 pin to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b2, LOW); //Set bin 2 pin to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break; //Break case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 4: //On fourth case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b0, HIGH); //Set bin 0 pin to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b1, HIGH); //Set bin 1 pin to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b2, LOW); //Set bin 2 pin to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break; //Break case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 5: //On fifth case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b0, LOW); //Set bin 0 pin to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b1, LOW); //Set bin 1 pin to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b2, HIGH); //Set bin 2 pin to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break; //Break case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 6: //On sixth case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b0, HIGH); //Set bin 0 pin to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b1, LOW); //Set bin 1 pin to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b2, HIGH); //Set bin 2 pin to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break; //Break case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 7: //On seventh case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b0, LOW); //Set bin 0 pin to 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b1, HIGH); //Set bin 1 pin to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b2, HIGH); //Set bin 2 pin to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break; //Break case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 8: //On eight case&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b0, HIGH); //Set bin 0 pin to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b1, HIGH); //Set bin 1 pin to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(b2, HIGH); //Set bin 2 pin to 1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break; //Break case&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=14625&amp;AppID=145&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>