74 lines
2.2 KiB
C++
74 lines
2.2 KiB
C++
/*
|
||
|
||
* codeexample for useing a 4051 * analog multiplexer / demultiplexer
|
||
|
||
* by david c. and tomek n.* for k3 / malm<6C> h<>gskola
|
||
|
||
*
|
||
|
||
* edited by Ross R.
|
||
|
||
* edited by Igor de Oliveira Sá.
|
||
*/
|
||
|
||
int r0 = 0; //value of select pin at the 4051 (s0)
|
||
int r1 = 0; //value of select pin at the 4051 (s1)
|
||
int r2 = 0; //value of select pin at the 4051 (s2)
|
||
|
||
int enablepin = 3;
|
||
int in1 = 2;
|
||
|
||
int s0 = 4;
|
||
int s1 = 5;
|
||
int s2 = 6;
|
||
|
||
int s3 = 7;
|
||
int s4 = 8;
|
||
int s5 = 9;
|
||
|
||
int count = 0; //which y pin we are selecting
|
||
int count2 = 0; //which y pin we are selecting
|
||
|
||
void setup(){
|
||
Serial.begin(9600);
|
||
pinMode(s0, OUTPUT);
|
||
pinMode(s1, OUTPUT);
|
||
pinMode(s2, OUTPUT);
|
||
pinMode(s3, OUTPUT);
|
||
pinMode(s4, OUTPUT);
|
||
pinMode(s5, OUTPUT);
|
||
pinMode(enablepin, OUTPUT);
|
||
pinMode(in1, INPUT);
|
||
digitalWrite(enablepin, LOW);
|
||
digitalWrite(s0, LOW);
|
||
digitalWrite(s1, LOW);
|
||
digitalWrite(s2, LOW);
|
||
digitalWrite(s3, LOW);
|
||
digitalWrite(s4, LOW);
|
||
digitalWrite(s5, LOW);
|
||
}
|
||
|
||
void loop () {
|
||
for (count2=0; count2<8; count2++)
|
||
{
|
||
r0 = bitRead(count2,0); // use this with arduino 0013 (and newer versions)
|
||
r1 = bitRead(count2,1); // use this with arduino 0013 (and newer versions)
|
||
r2 = bitRead(count2,2); // use this with arduino 0013 (and newer versions)
|
||
digitalWrite(s3, r0);
|
||
digitalWrite(s4, r1);
|
||
digitalWrite(s5, r2);
|
||
for (count=0; count<8; count++) {
|
||
// select the bit
|
||
r0 = bitRead(count,0); // use this with arduino 0013 (and newer versions)
|
||
r1 = bitRead(count,1); // use this with arduino 0013 (and newer versions)
|
||
r2 = bitRead(count,2); // use this with arduino 0013 (and newer versions)
|
||
digitalWrite(s0, r0);
|
||
digitalWrite(s1, r1);
|
||
digitalWrite(s2, r2);
|
||
Serial.print(digitalRead(in1));
|
||
//Either read or write the multiplexed pin here
|
||
}
|
||
}
|
||
Serial.println();
|
||
}
|