#define Q0 2
#define Q1 3
#define Q2 4
#define Q3 5
#define Q4 6
#define Q5 7
#define Q6 8
#define Q7 9
#define CLKCONTROL 10
#define CLK 13
void writeOut(uint8_t data) { // min 0 , MAX 255
// decimal to binary
for(uint8_t i = 0; i <= 7; i++) {
digitalWrite(Q0 + i, data & 1 ); // 01010101 AND 00000001 = 1
data = data >> 1; // 00101010, bit right shift
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
digitalWrite(CLK, LOW);
for(uint8_t pin = Q0; pin <= Q7; pin++) {
pinMode(pin, OUTPUT);
}
pinMode(CLK, OUTPUT);
pinMode(CLKCONTROL, INPUT);
}
uint16_t times = 400;
void loop() {
// put your main code here, to run repeatedly:
for(int i = 0; i <= 255; i++) {
if(digitalRead(CLKCONTROL) == HIGH) {times = map(analogRead(A0), 0, 1024, 10, 500);}
else {times = 400;}
Serial.println(times);
writeOut(i);
digitalWrite(CLK, HIGH);
delay(times); //Duty 0n
digitalWrite(CLK, LOW);
delay(times); //Duty off
}
}