Hi
I have 3 common anode 7 segment leds (FJS50101BH) and using ULN2003 to drive them with Arduino. I want to make Up counter with a sensor connected to A0 pin
I'll attach my schematic diagram and the code I found it here actually.
I have problem simulating the circuit all 7 segments are flickering quickly, Will they be like that when I start wiring the circuit in real?
I have 5V supply connected to Arduino, and the common of the 7 segments are connected directly to the Arduino digital pins and 220 ohm resistors connected between ULN2003 outputs and the 7 segment pins.
Here's the code:
#define aPin 3 //
#define bPin 5 //
#define cPin 6 //
#define dPin 9 //
#define ePin 10 //
#define fPin 11 //
#define gPin 12 //
#define c1Pin 2 // Common pin for digit 1
#define c2Pin 4 // Common pin for digit 2
#define c3Pin 7 // Common pin for digit 3
#define bt_up A0
#define bt_reset A1
long Counter=0;
int flag1=0, flag2=0, timer=0;
int Common = 1; //<Common=1; for Common anode> <Common=0; for Common cathode>
int On, Off, Off_C;
int DTime = 4; // Display timer
void setup(){ // put your setup code here, to run once
pinMode(bt_up, INPUT_PULLUP);
pinMode(bt_reset, INPUT_PULLUP);
pinMode(aPin, OUTPUT);
pinMode(bPin, OUTPUT);
pinMode(cPin, OUTPUT);
pinMode(dPin, OUTPUT);
pinMode(ePin, OUTPUT);
pinMode(fPin, OUTPUT);
pinMode(gPin, OUTPUT);
pinMode(c1Pin, OUTPUT);
pinMode(c2Pin, OUTPUT);
pinMode(c3Pin, OUTPUT);
if(Common==1){On=0, Off=1, Off_C=0;} //for Common anode
else{On=1, Off=0, Off_C=1;} //for Common cathode
}
void loop(){
if(digitalRead (bt_up) == 0){
if(flag1==0){ flag1=1;
Counter = Counter+1;
if(Counter>999){Counter=0;}
}
}else{flag1=0;}
if(digitalRead (bt_reset) == 0){
Counter=0;
}
showNumber(Counter%10);
digitalWrite(c1Pin, Common);
delay(DTime);
digitalWrite(c1Pin, Off_C);
showNumber((Counter/10)%10);
digitalWrite(c2Pin, Common);
delay(DTime);
digitalWrite(c2Pin, Off_C);
showNumber((Counter/100)%10);
digitalWrite(c3Pin, Common);
delay(DTime);
digitalWrite(c3Pin, Off_C);
}
void showNumber(int x){
switch(x){
case 1: one(); break;
case 2: two(); break;
case 3: three(); break;
case 4: four(); break;
case 5: five(); break;
case 6: six(); break;
case 7: seven(); break;
case 8: eight(); break;
case 9: nine(); break;
default: zero(); break;
}
}
void one(){
digitalWrite( aPin, On); //
digitalWrite( bPin, Off); //
digitalWrite( cPin, Off); //
digitalWrite( dPin, On); //
digitalWrite( ePin, On); //
digitalWrite( fPin, On);
digitalWrite( gPin, On);
}
void two(){
digitalWrite( aPin, Off); //
digitalWrite( bPin, Off); //
digitalWrite( cPin, On); //
digitalWrite( dPin, Off); //
digitalWrite( ePin, Off); //
digitalWrite( fPin, On);
digitalWrite( gPin, Off);
}
void three(){
digitalWrite( aPin, Off); //
digitalWrite( bPin, Off); //
digitalWrite( cPin, Off); //
digitalWrite( dPin, Off); //
digitalWrite( ePin, On); //
digitalWrite( fPin, On);
digitalWrite( gPin, Off);
}
void four(){
digitalWrite( aPin, On); //
digitalWrite( bPin, Off); //
digitalWrite( cPin, Off); //
digitalWrite( dPin, On); //
digitalWrite( ePin, On); //
digitalWrite( fPin, Off);
digitalWrite( gPin, Off);
}
void five(){
digitalWrite( aPin, Off); //
digitalWrite( bPin, On); //
digitalWrite( cPin, Off); //
digitalWrite( dPin, Off); //
digitalWrite( ePin, On); //
digitalWrite( fPin, Off);
digitalWrite( gPin, Off);
}
void six(){
digitalWrite( aPin, Off); //
digitalWrite( bPin, On); //
digitalWrite( cPin, Off); //
digitalWrite( dPin, Off); //
digitalWrite( ePin, Off); //
digitalWrite( fPin, Off);
digitalWrite( gPin, Off);
}
void seven(){
digitalWrite( aPin, Off); //
digitalWrite( bPin, Off); //
digitalWrite( cPin, Off); //
digitalWrite( dPin, On); //
digitalWrite( ePin, On); //
digitalWrite( fPin, On);
digitalWrite( gPin, On);
}
void eight(){
digitalWrite( aPin, Off); //
digitalWrite( bPin, Off); //
digitalWrite( cPin, Off); //
digitalWrite( dPin, Off); //
digitalWrite( ePin, Off); //
digitalWrite( fPin, Off);
digitalWrite( gPin, Off);
}
void nine(){
digitalWrite( aPin, Off); //
digitalWrite( bPin, Off); //
digitalWrite( cPin, Off); //
digitalWrite( dPin, Off); //
digitalWrite( ePin, On); //
digitalWrite( fPin, Off);
digitalWrite( gPin, Off);
}
void zero(){
digitalWrite( aPin, Off); //
digitalWrite( bPin, Off); //
digitalWrite( cPin, Off); //
digitalWrite( dPin, Off); //
digitalWrite( ePin, Off); //
digitalWrite( fPin, Off);
digitalWrite( gPin, On);