Lab_interaccio/2020/Carola_4051/Carola_4051.ino
Miguel Angel de Heras 451795bb92 Second commit
2025-03-05 15:57:19 +01:00

74 lines
2.2 KiB
C++
Raw Permalink Blame History

/*
* 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();
}