How to connect an arduino with a CD4050BE to run 12v

Hi!

I am trying to use an arduino and a CD4050BE to run a 12v device.

My problem is I can not find any instruction on how to make the connections between the two.
I do find images and tutorials for 5v and 3.3v, but nothing for higher voltages...

As I understand it, the CD4050BE is supposed to be connected to 12V on VDD and ground on VSS, and the Arduino from some digital pins to each input of the CD4050BE, so in turn it could output the 12v for each output pins. Both of them joined by ground.
EX: Arduino pin 10, connected to CD4050 pin INPUT-A;
when Arduino pin 10 is set to HIGH, then CD4050 outputs 12v on OUTPUT-A.

I have tried it without the arduino, only 2 power sources and used wires to simulate the HIGH signal, and it does not work... what am I missing?

a 12v device

Namely?

what am I missing?

Level translation. Sometimes it is built in to an IC, that is why I question your choice of part. Certainly you can design a 5V-12V level translator but it might not be your best option. For that, you should provide a much higher level detailed explanation of your application.

I will be running a 7 segment LED display, with a CD4511BE.
I have this part running nicely, now I need the Arduino for the brain part.

You have it backwards - the 4050 can only translate from high voltage inputs to low voltage outputs. You want the reverse - translate from the low voltage (5V) Arduino outputs to the high voltage (12V) inputs of the CD4511BE. Why is it running on 12V? Do you have multiple LEDs in series?

The two chips you mention with your part numbers are both very old CMOS chips. How does the 12 volts figure into this? Both chips being CMOS will run just fine on 5 volts. Have you read the data sheets? The CD4050be is a non-inverting hex buffer. What exactly are you wanting to do with it? The CD4511be is just a common BCD to 7 segment (common cathode) decoder/driver. Either chip will run just fine on a VCC of 5 volts. So how does this 12 volts figure in?

There are newer chips which do the same. You can likely find TTL equivalent chips designed for 5 volt use and may afford increased current but for CMOS the 4050 is a decent chip.

EX: Arduino pin 10, connected to CD4050 pin INPUT-A;
when Arduino pin 10 is set to HIGH, then CD4050 outputs 12v on OUTPUT-A.

Just as a side note on the 4050 all unused inputs need to go somewhere such as Ground or VCC so if you are experimenting using just one of six hex buffers the remaining five inputs need to go somewhere.

Yes, as mentioned a popular chip to get from CMOS to TTL but no going back the other way. :slight_smile:

Ron

The 7 segment display runs on 12v.

Aparently I got the CD4050BE usage backwards.

Any advice on what chip/module I should use for this purpose?

thanks

"https://www.ti.com/lit/ds/symlink/cd4050b.pdf?ts=1608313372406&ref_url=https%3A%2F%2Fwww.ti.com%2Fstore%2Fti%2Fen%2Fp%2Fproduct%2F%3Fp%3DCD4050BE%26utm_source%3Dgoogle%26utm_medium%3Dcpc%26utm_campaign%3Dasc-null-null-OPN_EN-cpc-store-google-wwe%26utm_content%3DDevice%26ds_k%3DCD4050BE%26DCM%3Dyes%26gclsrc%3Daw.ds%26%26gclid%3DEAIaIQobChMItpGnlIrY7QIVOPLjBx19Bw7VEAAYASAAEgLzb_D_BwE"

Clearly says High to Low level.
VDD=5V
Input =12V

See this
"https://www.madtism.com/index.php?main_page=product_info&products_id=592"

Yes, CMOS to TTL or High to Low.

  1. Description The CD4049UB and CD4050B devices are inverting and noninverting hex buffers, and feature logic-level conversion using only one supply voltage (VCC). The input-signal high level (VIH) can exceed the VCC supply voltage when these devices are used for logiclevel conversions. These devices are intended for use as CMOS to DTL or TTL converters and can drive directly two DTL or TTL loads. (VCC = 5 V, VOL ≤ 0.4 V, and IOL ≥ 3.3 mA.)

Now again one more time can you provide exactly what you are trying to do? This would go much better if people here knew your goal and also the parts (linked) like the 7-segment display part number? The only 12 VDC 7-segment displays I have seen used built in current limiting resistors. Next is the display common anode or common cathode?

Ron

OK, so what I want to achieve is a 60 minutes counter (60min to 0min), second by second.
A total of 8 numbers, in two groups of 4 digits, basically to build 2 timers presenting the same time.

I want to use an arduino as the brain, and I have a bunch of 30101AS (7 segments displays) with common
Cathode, that run on 12v.

I don't want a commercial product since I need the counter to have special functions that I will program/add later.

OK then I would give this a read:
[7-Segment 4-Digit multiplexing with 4511](http://learning.grobotronics.com/2014/05/7-segment-4-digit-multiplexing-4511/with 4511)
You only need to MUX two displays. As top getting from TTL levels (5 Volts) to 12 Volts you can try a circuit along these lines. Any TTL in from an Arduino to a CMOS level.

I can never get images to work right? Even using the image tags. The above should work in a browser.

Ron

Thanks Ron for you answer.

For some reason I can´t open your first link but by the title I assume it’s a tutorial on how to run 4 digits with four 7-segment displays with a CD4511. I am already doing this with no problem.

Regarding your second link, I checked your schematic and it uses 2 CD4049B, that are the same as my CD4050B (according to the data cheat).
So now I’m confused. If a CD4050B can only do 12v to 5v (and not the oposite) how can that circuit work for me?
The answer can lay in the fact that I suck at reading this schematics, that’s why I always use drawings with what connects to where…

"Regarding your second link, I checked your schematic and it uses 2 CD4049B, that are the same as my CD4050B "
Not true.
The 4049 is in INVERTER

How many individual signals do you need to convert from 5V to 12V? One common way to do this, is with an open collector buffer and pull up resistors to 12V. But which one is best for you depends on the number of signals.

What's the load current required ?

Look into MIC5891, high voltage output shift register, one per digit to drive the anode of the each display.
Use 8 of them, daisychained from Arduino SPI bus, to control what is displayed.
https://www.digikey.com/en/products/detail/microchip-technology/MIC5891YN/771779
Send data to it like you would to a 74HC595

// time for an update?
digitalWrite (ssPin, LOW); // D10 on an Uno
for (x = 0; x <8; x = x+1){
SPI.transfer(digit[x]);
}
digitalWritee (ssPin, HIGH); // outputs update on this rising edge

Can use fontArray() to map bits to segments

SPI.transfer(fontArray[digit[x]]);

with 
byte fontArray[] = {
0b00111111, // 0  bits are DP-g-f-e-d-c-b-a, 1 = segment on
0b00000110, // 1
//etc to 0
};
and segment layout is:
     a
f           b
     g
e          c
     d             DP if used

Or just use 1 to drive common segment anode of all displays, and multiplex with the common cathodes and enjoy the software that goes with doing that.

Actually, ssPin might have to be used differently as the output latch follows the input latch when the ssPin is high.
so:

// time for an update?
digitalWrite (ssPin, LOW); // D10 on an Uno - but should be low all the time for MIC5891
for (x = 0; x <8; x = x+1){
SPI.transfer(digit[x]);
}
digitalWritee (ssPin, HIGH); // outputs update on this low-high-low pulse
digitalWrite (ssPin, LOW); //

To drive a higher voltage one option is to use a logic chip with open-collector (or equivalently open-drain)
outputs.

The 4000 series is pretty obsolete, modern CMOS logic family is the 74HCxx series, which work from
2V to 6V supply voltage. 4000 series have very little current drive, note.

Only a few chips in the range are open-drain, typically simple buffers or inverters.

Another option for level-shifting is the ULN2803 octal low-side darlington driver which
can level shift 8 signals in parallel. These have very good current drive ability but
lose about 1 volt internally.

I have been reading all replies, thanks to you all.

During my search (base on your replies) I have found the CD4504BE, but since so many of you say these are obsolete, I turned my sights to the ULN2803.

Apparently it will works for what I want.
But to make sure I understand properly it's usage:
I supply it with 12V (pin 10), and grounded on pin 9 (joined to GND or the arduino).
Then if I set the inputs pins 1 to 8 HIGH (5v from arduino), the output pins 11 to 18 will be grounded (LOW), or in revers, inputs LOW then outputs will be HIGH.... am I getting this right?

The '2803 does not output a HIGH.
Think of the input state as controlling (opening / closing) a switch that's connected to Ground.

raschemmel:
"Regarding your second link, I checked your schematic and it uses 2 CD4049B, that are the same as my CD4050B "
Not true.
The 4049 is in INVERTER

Thought I pointed that out. Bad on me. Actually use whatever suits your needs be it 4049 or 4050.
Ron