Created
September 29, 2017 17:55
-
-
Save radutzan/2d956e2f10192c8126fc42d7c5160abc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
int switchPin = 13; | |
int oldState = 0; | |
int count = 0; | |
// See the video here for pin reference: | |
// https://create.arduino.cc/projecthub/SAnwandter1/programming-4-digit-7-segment-led-display-2d33f8 | |
// The video has pins A-G in 2-8 and D pins in 9-12. | |
// I moved pins A-G to 6-12 and connected D pins to 2-5. | |
int pinA = 6; | |
int pinB = 7; | |
int pinC = 8; | |
int pinD = 9; | |
int pinE = 10; | |
int pinF = 11; | |
int pinG = 12; | |
int D1 = 2; | |
int D2 = 3; | |
int D3 = 4; | |
int D4 = 5; | |
void setup() { | |
pinMode(pinA, OUTPUT); | |
pinMode(pinB, OUTPUT); | |
pinMode(pinC, OUTPUT); | |
pinMode(pinD, OUTPUT); | |
pinMode(pinE, OUTPUT); | |
pinMode(pinF, OUTPUT); | |
pinMode(pinG, OUTPUT); | |
pinMode(D1, OUTPUT); | |
pinMode(D2, OUTPUT); | |
pinMode(D3, OUTPUT); | |
pinMode(D4, OUTPUT); | |
pinMode(switchPin, INPUT); | |
Serial.begin(9600); | |
} | |
void loop() { | |
int state = digitalRead(switchPin); | |
if (state != oldState && state == 1) { | |
count++; | |
} | |
oldState = state; | |
displayNumber(count); | |
} | |
// Displays any 4-digit number on the LCD display. | |
void displayNumber(int number) { | |
int n = number; | |
int digitPosition = 3; | |
while (n > 0) { | |
int digit = n % 10; | |
displayDigit(digit, digitPosition); | |
digitPosition--; | |
n /= 10; | |
delay(5); | |
} | |
} | |
// This method only supports 4-digit LCDs. | |
// pos is the position of the digit on the LCD. | |
// The leftmost is pos 0, and the rightmost is pos 3. | |
void displayDigit(int digit, int pos) { | |
switch (pos) { | |
case 0: | |
digitalWrite(D1, LOW); | |
digitalWrite(D2, HIGH); | |
digitalWrite(D3, HIGH); | |
digitalWrite(D4, HIGH); | |
break; | |
case 1: | |
digitalWrite(D1, HIGH); | |
digitalWrite(D2, LOW); | |
digitalWrite(D3, HIGH); | |
digitalWrite(D4, HIGH); | |
break; | |
case 2: | |
digitalWrite(D1, HIGH); | |
digitalWrite(D2, HIGH); | |
digitalWrite(D3, LOW); | |
digitalWrite(D4, HIGH); | |
break; | |
case 3: | |
digitalWrite(D1, HIGH); | |
digitalWrite(D2, HIGH); | |
digitalWrite(D3, HIGH); | |
digitalWrite(D4, LOW); | |
break; | |
default: | |
digitalWrite(D1, HIGH); | |
digitalWrite(D2, HIGH); | |
digitalWrite(D3, HIGH); | |
digitalWrite(D4, HIGH); | |
break; | |
} | |
switch (digit) { | |
case 0: | |
digitalWrite(pinA, HIGH); | |
digitalWrite(pinB, HIGH); | |
digitalWrite(pinC, HIGH); | |
digitalWrite(pinD, HIGH); | |
digitalWrite(pinE, HIGH); | |
digitalWrite(pinF, HIGH); | |
digitalWrite(pinG, LOW); | |
break; | |
case 1: | |
digitalWrite(pinA, LOW); | |
digitalWrite(pinB, HIGH); | |
digitalWrite(pinC, HIGH); | |
digitalWrite(pinD, LOW); | |
digitalWrite(pinE, LOW); | |
digitalWrite(pinF, LOW); | |
digitalWrite(pinG, LOW); | |
break; | |
case 2: | |
digitalWrite(pinA, HIGH); | |
digitalWrite(pinB, HIGH); | |
digitalWrite(pinC, LOW); | |
digitalWrite(pinD, HIGH); | |
digitalWrite(pinE, HIGH); | |
digitalWrite(pinF, LOW); | |
digitalWrite(pinG, HIGH); | |
break; | |
case 3: | |
digitalWrite(pinA, HIGH); | |
digitalWrite(pinB, HIGH); | |
digitalWrite(pinC, HIGH); | |
digitalWrite(pinD, HIGH); | |
digitalWrite(pinE, LOW); | |
digitalWrite(pinF, LOW); | |
digitalWrite(pinG, HIGH); | |
break; | |
case 4: | |
digitalWrite(pinA, LOW); | |
digitalWrite(pinB, HIGH); | |
digitalWrite(pinC, HIGH); | |
digitalWrite(pinD, LOW); | |
digitalWrite(pinE, LOW); | |
digitalWrite(pinF, HIGH); | |
digitalWrite(pinG, HIGH); | |
break; | |
case 5: | |
digitalWrite(pinA, HIGH); | |
digitalWrite(pinB, LOW); | |
digitalWrite(pinC, HIGH); | |
digitalWrite(pinD, HIGH); | |
digitalWrite(pinE, LOW); | |
digitalWrite(pinF, HIGH); | |
digitalWrite(pinG, HIGH); | |
break; | |
case 6: | |
digitalWrite(pinA, HIGH); | |
digitalWrite(pinB, LOW); | |
digitalWrite(pinC, HIGH); | |
digitalWrite(pinD, HIGH); | |
digitalWrite(pinE, HIGH); | |
digitalWrite(pinF, HIGH); | |
digitalWrite(pinG, HIGH); | |
break; | |
case 7: | |
digitalWrite(pinA, HIGH); | |
digitalWrite(pinB, HIGH); | |
digitalWrite(pinC, HIGH); | |
digitalWrite(pinD, LOW); | |
digitalWrite(pinE, LOW); | |
digitalWrite(pinF, HIGH); | |
digitalWrite(pinG, LOW); | |
break; | |
case 8: | |
digitalWrite(pinA, HIGH); | |
digitalWrite(pinB, HIGH); | |
digitalWrite(pinC, HIGH); | |
digitalWrite(pinD, HIGH); | |
digitalWrite(pinE, HIGH); | |
digitalWrite(pinF, HIGH); | |
digitalWrite(pinG, HIGH); | |
break; | |
case 9: | |
digitalWrite(pinA, HIGH); | |
digitalWrite(pinB, HIGH); | |
digitalWrite(pinC, HIGH); | |
digitalWrite(pinD, HIGH); | |
digitalWrite(pinE, LOW); | |
digitalWrite(pinF, HIGH); | |
digitalWrite(pinG, HIGH); | |
break; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment