Go Down

Topic: Arduino and CD4511 (Read 4890 times) previous topic - next topic



I'm new to Arduino... and I need some help. I'm sorry if someone else posted this question already but... here it goes:
I am trying to use two CD4510 IC's which in turn drive two 7 segment digits.
The problem I have: how do I set a counter which counts from 1 to 99 and transform that in binary and then output to pins 2-9.

I think it would be easy to use Arrays but I have no idea how to output an array of values...
I thot about doing something like:
and then output something like:

Therefore I'm stuck. Any help will be appreciated.

Thank you,


Nov 29, 2010, 07:23 pm Last Edit: Nov 29, 2010, 07:27 pm by Grumpy_Mike Reason: 1
I am trying to use two CD4510 IC's which in turn drive two 7 segment digits.

That is an up / down counter, it is not a chip that you can use for your project. What wiring had you thought of using?

Yes driving 7 segment displays is possible look at the schematic, the words are in German but the schematic is in electronics:-

I think it would be easy to use Arrays

Yes it would.




Nov 29, 2010, 08:13 pm Last Edit: Nov 29, 2010, 08:17 pm by Sajuuk Reason: 1
Ups... my first post and a wrong one... :-[ I am using a CD4511... sorry.. I was loking at a 4510/4511 schematic I had around...

I forgot to mention... I already hooked up the two 7 Segment LED display to the IC's and the arduino. If I put a code like:

Code: [Select]
int ledPin2 = 2;
int ledPin3 = 3;
int ledPin4 = 4;
int ledPin5 = 5;
int ledPin6 = 6;
int ledPin7 = 7;
int ledPin8 = 8;
int ledPin9 = 9;
void setup()
pinMode(ledPin2, OUTPUT);      
pinMode(ledPin3, OUTPUT);      
pinMode(ledPin4, OUTPUT);    
pinMode(ledPin5, OUTPUT);    
pinMode(ledPin6, OUTPUT);      
pinMode(ledPin7, OUTPUT);    
pinMode(ledPin8, OUTPUT);    
pinMode(ledPin9, OUTPUT);  

void loop()
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin7, LOW);
digitalWrite(ledPin8, HIGH);
digitalWrite(ledPin9, HIGH);


I can output the desired value... but it's static. What I am trying to do is make some binary counter.
I have 2 CD4511's and two 7segment digits... therefore the 8 pins...

As for the purpose of this... i want to make temp measurements and display them. Since I have no LCD at disposal I figured I could use the 7 segment display I already had. But using 14 pins instead of 8 ... made me think I could use the 4511(got it right now :D ) to reduce the number of pins necessary.



Thank you Grumpy_Mike for the links. I will try to make sense of them :)



You need to say how it is wired up then we can post code to help you drive it.


I'm sorry about my absence.

I connected the two 4511's to pins 2 to 9. And each of the 4511's have a 7 segment display connected, thus I have a 2 digit number available. As a simple, static value, i managed to make this work. But I would like to change the value as the program runs, e.g.: i measure a temp or a voltage on pin A0 and then output to the display.



You can use the SHIFTOUT coding to get a binary out of numbers.

I use it from Adruino to a cd4511 to a cd4049 to a seven segment LED.

Go Up