#include "Ticker.h"
#include <CD74HC4067.h>
#define E 21
#define S0 18
#define S1 19
#define S2 22
#define S3 23
#define COM 27
uint16_t wLedVal = 0x0000;
Ticker ticker_changeLed;
// const uint8_t controlPins[] = { S0, S1, S2, S3 };
CD74HC4067 my_mux(S0, S1, S2, S3);
// void changeLed(void) {
// if (wLedVal == 0xFFFF) {
// wLedVal = 0x0000;
// } else {
// wLedVal = 0xFFFF;
// }
// }
// float readMux(uint8_t channel)
// {
// digitalWrite(E, HIGH); // Disable chip before changing channel.
// delay(1);
// for(int8_t i = 3; i >= 0; i--)
// {
// int8_t b = (channel >> i) & 1;
// digitalWrite(controlPins[i], b);
// // Serial.print(b);
// }
// digitalWrite(E, LOW); // Enable chip after changing channel.
// delay(1);
// // Serial.print(": ");
// return analogRead(COM);
// }
// void setChannel(uint8_t channel)
// {
// digitalWrite(E, HIGH); // Disable chip before changing channel.
// delay(1);
// for(int8_t i = 3; i >= 0; i--)
// {
// int8_t b = (channel >> i) & 1;
// digitalWrite(controlPins[i], b);
// // Serial.print(b);
// }
// digitalWrite(E, LOW); // Enable chip after changing channel.
// delay(1);
// }
// void showLed(void)
// {
// for (uint8_t i = 0; i<16; i++) {
// digitalWrite(COM, (wLedVal >> i) & 1);
// setChannel(i);
// }
// }
void setup()
{
Serial.begin(115200);
Serial.println("Booting...");
// pinMode(S0, OUTPUT);
// pinMode(S1, OUTPUT);
// pinMode(S2, OUTPUT);
// pinMode(S3, OUTPUT);
pinMode(COM, OUTPUT);
// ticker_changeLed.attach(1, &changeLed);
}
void loop()
{
digitalWrite(COM, HIGH);
for (int i = 0; i < 16; i++) {
my_mux.channel(i);
delay(1000);
}
digitalWrite(COM, LOW);
for (int i = 0; i < 16; i++) {
my_mux.channel(i);
delay(1000);
}
// showLed();
// pixels.clear();
// for(uint8_t i = 0; i < 16; i++)
// {
// writeMux(i, true);
// // float f = readMux(i);
// // pixels.setPixelColor(i, pixels.Color(0, f / 4095.0 * 255.0, 0));
// Serial.print("Channel ");
// Serial.println(i);
// // Serial.print(" = ");
// // Serial.println(f);
// delay(1000);
// }
// for(uint8_t i = 0; i < 16; i++)
// {
// writeMux(i, false);
// // float f = readMux(i);
// // pixels.setPixelColor(i, pixels.Color(0, f / 4095.0 * 255.0, 0));
// Serial.print("Channel ");
// Serial.println(i);
// // Serial.print(" = ");
// // Serial.println(f);
// delay(1000);
// }
// pixels.show();
}