So I've been working on a little project to make my segment display start at a certain number and then increment or decrement with a simple button press.
I am somewhat new to code so if the answer is obvious, please forgive me, but after some frustrating days on google trying to figure out what I did wrong, I don't know why my code doesn't work.
(the code is not done yet, i still have to write the code to show the rest of the numbers to 99, if there is a simpler way to do this please tell me)
/*Life counter using dual 14 segment display.
pins alligned from left to right, bottom then top
using pins 1-13. Switch is using pin 2 to decrement, 8 to increment.
default starting number is 25.*/
// Common Anode digit 1 left pin 4
// Common Anode digit 2 left pin 6
// Common Anode digit 1 right pin 10
// Common Anode digit 2 left pin 13
// D E ca3 F G ca4
// | | | | | | -> pins and segments they control
// ----G---- ----G----
// | \ E / | | \ E / |
// F| D\|/D |F F| D\|/D |F
// |-A- -A-| |-A- -A-|
// C| B/E\B |C C| B/E\B |C
// | / | \ | | / | \ |
// ----G----dp1 ----G----dp2
// | | | | | | | -> pins and segments they control
// A B C ^ dp1 ^ dp2
// (ca1) (ca2)
int led1Pin = 1;
//int led2Pin = 2; removed for room for switch inputs
int led3Pin = 3;
int ca1Pin = 4;
int led5Pin = 5;
int ca2Pin = 6;
//int led7Pin = 7; removed for room for switch inputs
int led9Pin = 9;
int ca3Pin = 10;
int led11Pin = 11;
int led12Pin = 12;
int ca4Pin = 13;
int debuggled7Pin = 7;
int minusswitchPin = 2;
int minusState = 0;
int plusswitchPin = 8;
int plusState = 0;
int lifetotal = 3;
void setup() {
pinMode(led1Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
pinMode(ca1Pin, OUTPUT);
pinMode(led5Pin, OUTPUT);
pinMode(ca2Pin, OUTPUT);
pinMode(led9Pin, OUTPUT);
pinMode(ca3Pin, OUTPUT);
pinMode(led11Pin, OUTPUT);
pinMode(led12Pin, OUTPUT);
pinMode(ca4Pin, OUTPUT);
pinMode(minusswitchPin, INPUT);
pinMode(plusswitchPin, INPUT);
pinMode(debuggled7Pin, OUTPUT);
}
void changeLifetotal(){
//incrimenting switch
plusState = digitalRead(plusswitchPin);
if (plusState == HIGH){
digitalWrite(debuggled7Pin, HIGH);
lifetotal = lifetotal + 1;
}
else{
digitalWrite(debuggled7Pin, LOW);
lifetotal = lifetotal;
}
//decrimenting switch
minusState = digitalRead(minusswitchPin);
if(minusState == HIGH){
digitalWrite(debuggled7Pin, HIGH);
lifetotal = lifetotal - 1;
}
else{
digitalWrite(debuggled7Pin, LOW);
lifetotal == lifetotal;
}
}
void loop() {
//in case of numbers < 0 or > 100
if(lifetotal > 99){
lifetotal = 0;
}
if(lifetotal < 0){
lifetotal = 99;
}
//lifetotals displayed
while(lifetotal == 0){
digitalWrite(ca1Pin, HIGH);//function for 0
digitalWrite(ca3Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led11Pin, HIGH);
digitalWrite(led12Pin, HIGH);
}
while(lifetotal == 1){//function for 1
digitalWrite(ca1Pin, HIGH);
digitalWrite(ca2Pin, HIGH);
digitalWrite(ca3Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led11Pin, HIGH);
}
while(lifetotal == 2){//function for 2
digitalWrite(ca1Pin, HIGH);
digitalWrite(ca2Pin, HIGH);
digitalWrite(ca3Pin, HIGH);
digitalWrite(led1Pin, HIGH);
digitalWrite(led11Pin, HIGH);
digitalWrite(led12Pin, HIGH);
delay(1);
digitalWrite(ca2Pin, LOW);
digitalWrite(ca1Pin, HIGH);
digitalWrite(ca3Pin, HIGH);
digitalWrite(ca4Pin, HIGH);
digitalWrite(led11Pin, LOW);
digitalWrite(led3Pin, HIGH);
delay(1);
digitalWrite(led3Pin, LOW);
digitalWrite(ca4Pin, LOW);
}
while(lifetotal == 3){//function for 3
digitalWrite(ca1Pin, HIGH);
digitalWrite(ca3Pin, HIGH);
digitalWrite(ca4Pin, HIGH);
digitalWrite(led1Pin, HIGH);
digitalWrite(led12Pin, HIGH);
delay(1);
digitalWrite(ca4Pin, LOW);
digitalWrite(ca2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led11Pin, HIGH);
delay(1);
digitalWrite(ca2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led11Pin, LOW);
}
while(lifetotal == 4){//function for 4
digitalWrite(ca1Pin, HIGH);
digitalWrite(ca3Pin, HIGH);
digitalWrite(ca4Pin, HIGH);
digitalWrite(led1Pin, HIGH);
digitalWrite(led11Pin, HIGH);
delay(1);
digitalWrite(ca4Pin, LOW);
digitalWrite(ca2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
delay(1);
digitalWrite(ca2Pin, LOW);
digitalWrite(led3Pin, LOW);
}
while(lifetotal == 5){//function for 5
digitalWrite(ca1Pin, HIGH);
digitalWrite(ca3Pin, HIGH);
digitalWrite(ca4Pin, HIGH);
digitalWrite(led1Pin, HIGH);
digitalWrite(led11Pin, HIGH);
digitalWrite(led12Pin, HIGH);
delay(1);
digitalWrite(ca4Pin, LOW);
digitalWrite(ca2Pin, HIGH);
digitalWrite(led11Pin, LOW);
digitalWrite(led3Pin, HIGH);
delay(1);
digitalWrite(ca2Pin, LOW);
digitalWrite(led3Pin, LOW);
}
}