Code:
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
#include <Bounce.h>
//MUX
int signalPin = A2;
int s0 = 1;
int s1 = 2;
int s2 = 3;
int s3 = 4;
float vals[16] = {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
int muxChannel[16][4]={
{0,0,0,0},
{0,0,0,1},
{0,0,1,0},
{0,0,1,1},
{0,1,0,0},
{0,1,0,1},
{0,1,1,0},
{0,1,1,1},
{1,0,0,0},
{1,0,0,1},
{1,0,1,0},
{1,0,1,1},
{1,1,0,0},
{1,1,0,1},
{1,1,1,0},
{1,1,1,1}
};
void setup() {
//MUX
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(signalPin, INPUT);
pinMode(otherSig, INPUT);
digitalWrite(s0, LOW);
digitalWrite(s1, LOW);
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
}
void loop() {
for (int i=0; i<16; i++) {
digitalWrite(s0,muxChannel[i][0]);
digitalWrite(s1,muxChannel[i][1]);
digitalWrite(s2,muxChannel[i][2]);
digitalWrite(s3,muxChannel[i][3]);
delayMicroseconds(5000);
int readVal = analogRead(signalPin);
if (readVal > vals[i] + 150 || readVal < vals[i] - 150) {
Serial.print("Channel ");
Serial.print(i);
Serial.print(": ");
Serial.println(readVal);
Serial.print("Old val: ");
Serial.println(vals[i]);
vals[i]=readVal;
}
}