Skip to content

Instantly share code, notes, and snippets.

@handeyeco
Created April 8, 2020 00:14
Show Gist options
  • Save handeyeco/c045c31cbf19f122ef719051d2700f49 to your computer and use it in GitHub Desktop.
Save handeyeco/c045c31cbf19f122ef719051d2700f49 to your computer and use it in GitHub Desktop.
int digit1 = 2;
int digit2 = 3;
int digit3 = 4;
int digit4 = 5;
// Serial
int clock = 10;
int latch = 11;
int data = 12;
// Delay time
int dTime = 5;
void setup() {
pinMode(latch, OUTPUT);
pinMode(clock, OUTPUT);
pinMode(data, OUTPUT);
pinMode(digit1, OUTPUT);
pinMode(digit2, OUTPUT);
pinMode(digit3, OUTPUT);
pinMode(digit4, OUTPUT);
}
void pickDigit(int digit) {
digitalWrite(digit1, LOW);
digitalWrite(digit2, LOW);
digitalWrite(digit3, LOW);
digitalWrite(digit4, LOW);
switch(digit) {
case 1: digitalWrite(digit1, HIGH); break;
case 2: digitalWrite(digit2, HIGH); break;
case 3: digitalWrite(digit3, HIGH); break;
case 4: digitalWrite(digit4, HIGH); break;
}
}
void display(int num)
{
// Draw shape
digitalWrite(latch, HIGH);
shiftOut(data, clock, MSBFIRST, num);
digitalWrite(latch, LOW);
// Clear segments
digitalWrite(latch, HIGH);
shiftOut(data, clock, MSBFIRST, 0);
digitalWrite(latch, LOW);
}
void loop() {
pickDigit(1);
display(B00111111);
delay(dTime);
pickDigit(2);
display(B10000000);
delay(dTime);
pickDigit(3);
display(B00000000);
delay(dTime);
pickDigit(4);
display(B01011100);
delay(dTime);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment