emmanuel63
Well-known member
Hello,
I try to multiplex Touch inputs but I get inconsistent values. I guess touch pins cannot be multiplexed. Did someone have any success multiplexing touch pins ?
Emmanuel
I try to multiplex Touch inputs but I get inconsistent values. I guess touch pins cannot be multiplexed. Did someone have any success multiplexing touch pins ?
Emmanuel
Code:
//Mux control pins
int s0 = 0;
int s1 = 1;
int s2 = 2;
int s3 = 3;
//touch pin values
int touch_value[16] = {0};
//Mux output pin
int touch_pin = 30;
void setup() {
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
digitalWrite(s0, LOW);
digitalWrite(s1, LOW);
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
Serial.begin(9600);
}
void loop() {
updateMux1();
Serial.println(touch_value[0]);
delay(5);
}
void updateMux1 ()
{
for (short i = 0; i < 16; i ++)
{
digitalWrite(s0, HIGH && (i & B00000001));
digitalWrite(s1, HIGH && (i & B00000010));
digitalWrite(s2, HIGH && (i & B00000100));
digitalWrite(s3, HIGH && (i & B00001000));
delayMicroseconds (5);
touch_value[i] = touchRead(touch_pin);
}
}