Funciones listas para usar el adc cd4067. El programa va a reportar uno a uno las 16 entradas analogicas en una escala de 0 a 5 Volts. Las entradas q no se usen deben ir a GND para q no tomen valores aleatorios.
/*
Arduino Pins to CD4067 1, 2, 3, 4
*/
const int DataPinAdc[4] = {4, 5, 6, 7};
const int AnalogPin = 0;
int ReadPin(int Pin) {
for (int Bit = 0; Bit <= 3; Bit++) {
int OutputBit = bitRead(Pin, Bit);
digitalWrite(DataPinAdc[Bit], OutputBit);
}
int Read = analogRead(AnalogPin);
return Read;
}
/* */
float VoltConv(int Read) {
float Readed = float(Read) * 5.00 / 1023.00;
return Readed;
}
void setup() {
for (int Pin = 0; Pin <= 3; Pin++) {
pinMode(DataPinAdc[Pin], OUTPUT);
}
Serial.begin(9600);
}
void loop() {
for (int Pin = 0; Pin <= 15; Pin++) {
Serial.print(Pin);
Serial.print(" ");
Serial.print(VoltConv(ReadPin(Pin)));
Serial.println();
delay(2000);
}
}