/*
so far, no need for any code
*/
# define CLK 2
# define DAT 3
void sendBargraphOLD(uint8_t value) {
value &= 0x0f;
for (uint8_t bit = 0; bit < 4; bit++) {
digitalWrite(DAT, value & 0x01);
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
value >>= 1;
}
}
void sendBargraph(uint8_t value) {
value &= 0x0f;
// Five-zero preamble
for (uint8_t bit = 0; bit < 5; bit++) {
digitalWrite(DAT, LOW);
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
}
// Start bit
digitalWrite(DAT, HIGH);
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
// Four data bits, LSB first
for (uint8_t bit = 0; bit < 4; bit++) {
digitalWrite(DAT, value & 0x01);
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
value >>= 1;
}
}
void setup() {
pinMode(CLK, OUTPUT);
pinMode(DAT, OUTPUT);
}
int value;
void loop() {
sendBargraph(value);
value++; if (value > 7) value = 0;
delay(20);
}
A/B.....~E/D
>>>
>>>
AUTO?
B/D
A/~E
A/~E
A/~E
/ENB
DIR