Transistors and PWM

Hi. Tearing my hair out over this. I have a pwm-signal on one of the pins. The thing im trying to power needs a higher voltage. So i use a npn transistor connected base - pin via a 10k resistor. Emitter -> gnd + 9v -> load -> collector

Simple right? But the load behaves extremely oddly, this is a raw lc-display and needs ac power to function correctly. If i hook it directly to the correct pin it works but the voltage is too low. If i run with the transistor the LC display behaves as if it recieves a dc voltage..which is not very good for it.

The power consumtion of the display is pretty much nothing so i'm thinking maybe there is a minimum load required?

Extremely common bc547b transistor.


I think your base resistor might be too large, and is not allowing the transistor to fully turn “on”. Have you tried using a smaller resistor?

“needs ac power to function correctly” at what frequency? 60 Hz?
The PWM frequency is on the order of 500 Hz. It is my understanding all you can vary is the pulse width.

60 Hz is fairly slow, you could probably use millis and turn a digital pin on/off every 8mS to get around 60Hz into the transistor base.

Either that maybe you’re not turning the transistor on enough? Try a smaller value resister.

Thanks for the quick reply(ies). I will try using a smaller resistor tomorrow ( later today).

The "AC" power needed is a couple of hundred hz, as i wrote in my first post; the LC works fine connected directly to the pwm-pin but since the voltage is too low it cannot fully polarize and looks "spotchy"..

Methink LC is liquid crystal display, in which case you may have trouble.

  • 9v -> load -> collector

if LCD is the "load" connected between +9v and collector then you have DC, which is unhealthy. Try using another 10k for the "load" and connecting the LCD with a capacitor to collector. Then just ground the common electrode of LCD and you should be able to drive LCD.

This is an inverting voltage translator (+5v to +9v). LCD shouldnt need much current so your collector resistor can probably be 100k or even more. Your base resistor to Arduino is plenty small, the hFE of your BC547B transistor is minimum of 200. My rule of thumb is to saturate 10x, so your base current need only be 10/hFE of your collector current. in your case a base resistor of 10x the ohms of your collector is plenty generous to guarantee saturation. 100k on the base and 10k on the collector is fine. Save a milliamp by going to 1meg on base and 100k on collector if that works.

Am not too sure about the speed of your LCD drive, some TVs use special high speed LCD, most cheap monochrome LCD are not run above a few tens of Hz. I've never delved into this aspect.

Most commercial LCD drivers dont use DC blocking capacitors, but they are careful to phase the segments and commons so that everybody gets exactly 50% at each polarity, net DC is zero, which makes LCD live a long and happy life.

Good luck with your project!

Back again. Tried the suggestions, no luck. Got fed up and replaced the transistors with an opamp acting as a buffer. This works... One thing left. I don't think i am properly discharging the display. After the pwm-output is disabled the display must be discharged. Basically touching the terminals with a finger does the trick. Thinking "the body is just a big resistor" i replicated this by putting a large resistor across output and ground. Obviously the wrong way to do it as it did not work..

So what IS the proper procedure for doing this?


To be more accurate... the body is more like a capacitor... and not as much like a big resistor.