//YouTube | Tech at Home
#include "SevSeg.h"
SevSeg S;
byte CommonPins[] = {}; // common pin numbers for multi-digit display
byte SegPins[] = {2,3,4,5,6,7,8}; // 7-segment display pins in the order,{a,b,c,d,e,f,g,dp}
//butoanele se rotesc in wokwi contact prin apasare (sau tasta) intre 1r si 2r sau 1l si 2l
//1l si 1r dar si 2l si 2r sunt legate, este contact permanent.
int btn1=9; //button for increment
int btn2=10; //button for decrement
int cnt=0;//variabila de numarare
int incPrev, decPrev;//variabile incrementAnterior si decrementAnterior pt starea butonului
void setup()
{
// Syntax
// begin(COMMON_CATHODE, NumberOfDigits, CommonPins[], SevenSegPins[], resistorUsed);
S.begin(COMMON_CATHODE, 1, CommonPins, SegPins, 1);
pinMode(9, INPUT);
pinMode(10, INPUT);
}
void loop()
{
int inc = digitalRead(9);//citim pin 9 starea butonului de increment
int dec = digitalRead(10);//citim pin 10 starea butonului de decrement
//Increment
//buton apasat rezulta inc este HIGH, daca numarul afisat este < 9,
//si daca starea butonului este diferita de starea butonului din incrementAnterior
//numara cat timp este mentinut apasat butonul inc sau dec
if((inc == HIGH) && (cnt < 9))// && (inc != incPrev ))//am inchis parantezele dupa doua conditii
{
delay(100);
cnt++;
}
//Decrement
if((dec == HIGH) && (cnt >0))// && (dec != decPrev))//am inchis parantezele dupa doua conditii
{
delay(100);
cnt--;
}
//Logic to print digit/character on 7 segment display
S.setNumber(cnt);
S.refreshDisplay();
delay(100);
//storing the button states
incPrev = inc;
decPrev = dec;
}