Okay thank you very much for all your help guys
I have set it up as you suggest dc42
I have multiplexed the digits and used 7 330ohm resistors and 3 2n3906 pnp transistors as high side switches.
I wasn't entirely sure of the resistor values but what I read on the net suggested that the resistor from the arduino output to the base wasn't critical as long as it makes the voltage to the base lower than the voltage connected to the emitter and I selected 4.7k resistors and I do not need any other resistor do I? I have connected the collector to the anodes and the emitter to the breadboard power supply +v.
EDIT: Sorry, I meant current to the base lower than the current connected to the emitter. Not voltage
Because they are switching common anodes all active outputs should be low.
Does this mean the segment code is reversed as well? or just the anode pins.
If you could have a look at this code please.
its just the setup of the segments I need confirmed and then I need to know how to write the line that will output the result of my calculation to the segments.
int Disp1 = 2; // setting up the pins for the displays
int Disp2 = 3;
int Disp3 = 4;
int segA = 5;
int segB = 6;
int segC = 7;
int segD = 8;
int segE = 9;
int segF = 11;
int segG = 10;
pinMode(Disp1, OUTPUT);
pinMode(Disp2, OUTPUT);
pinMode(Disp3, OUTPUT);
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
digitalWrite(Disp1, LOW);
digitalWrite(Disp2, LOW);
digitalWrite(Disp3, LOW);
}
void number(int var)
{
switch(var)
{
case 0:
digitalWrite(segG, HIGH);
digitalWrite(segA, LOW);
digitalWrite(segB, LOW);
digitalWrite(segC, LOW);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
break;
case 1:
digitalWrite(segA, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
digitalWrite(segB, LOW);
digitalWrite(segC, LOW);
break;
case 2:
digitalWrite(segC, HIGH);
digitalWrite(segF, HIGH);
digitalWrite(segA, LOW);
digitalWrite(segB, LOW);
digitalWrite(segG, LOW);
digitalWrite(segE, LOW);
digitalWrite(segD, LOW);
break;
case 3:
digitalWrite(segF, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segA, LOW);
digitalWrite(segB, LOW);
digitalWrite(segG, LOW);
digitalWrite(segC, LOW);
digitalWrite(segD, LOW);
break;
case 4:
digitalWrite(segA, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segF, LOW);
digitalWrite(segG, LOW);
digitalWrite(segB, LOW);
digitalWrite(segC, LOW);
break;
case 5:
digitalWrite(segB, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segA, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, LOW);
digitalWrite(segC, LOW);
digitalWrite(segD, LOW);
break;
case 6:
digitalWrite(segB, HIGH);
digitalWrite(segA, LOW);
digitalWrite(segF, LOW);
digitalWrite(segE, LOW);
digitalWrite(segD, LOW);
digitalWrite(segC, LOW);
digitalWrite(segG, LOW);
break;
case 7:
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segA, LOW);
digitalWrite(segB, LOW);
digitalWrite(segC, LOW);
break;
case 8:
digitalWrite(segA, LOW);
digitalWrite(segB, LOW);
digitalWrite(segC, LOW);
digitalWrite(segD, LOW);
digitalWrite(segE, LOW);
digitalWrite(segF, LOW);
digitalWrite(segG, LOW);
break;
case 9:
digitalWrite(segE, HIGH);
digitalWrite(segG, LOW);
digitalWrite(segF, LOW);
digitalWrite(segA, LOW);
digitalWrite(segB, LOW);
digitalWrite(segC, LOW);
digitalWrite(segD, LOW);
break;
}
}
Thanks