Hi,
I hope this question is not already here, but I've got a questions concerning the Adafruit 16-Channel 12-bit PWM/Servo Driver for the Raspberry Pi: I want to use the Servo Driver with an ESC which requires a signal voltage of at least 4.5V. Since the driver only supplies the 3.5V from RPi I figured out that I need to do something about it. I experimented a little with a transistor but I didn't get it working.
This is the ESC: http://www.lrp.cc/en/products/electroni ... l/details/.
I want to add that I'm not an expert on electronics..
Cheers,
Yannick
Amplify PWM for Adafruit 16-Channel 12-bit PWM/Servo Driver
Moderators: adafruit_support_bill, adafruit
Forum rules
Talk about Adafruit Raspberry Pi® accessories! Please do not ask for Linux support, this is for Adafruit products only! For Raspberry Pi help please visit: http://www.raspberrypi.org/phpBB3/
Talk about Adafruit Raspberry Pi® accessories! Please do not ask for Linux support, this is for Adafruit products only! For Raspberry Pi help please visit: http://www.raspberrypi.org/phpBB3/
-
- Posts: 5
- Joined: Wed Oct 09, 2013 12:10 pm
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: Amplify PWM for Adafruit 16-Channel 12-bit PWM/Servo Dri
You could do it with a small transistor. http://www.adafruit.com/products/756
If you are not comfortable working at that level, we have some logic-level converters on convenient breakout boards:
http://www.adafruit.com/index.php?main_ ... ogic+level
If you are not comfortable working at that level, we have some logic-level converters on convenient breakout boards:
http://www.adafruit.com/index.php?main_ ... ogic+level
-
- Posts: 5
- Joined: Wed Oct 09, 2013 12:10 pm
Re: Amplify PWM for Adafruit 16-Channel 12-bit PWM/Servo Dri
Thanks for the fast answer! I would like to that with the transistor and I experimented a little with that but I could not get it working… Would you mind providing a little schematic?adafruit_support_bill wrote:You could do it with a small transistor. http://www.adafruit.com/products/756
If you are not comfortable working at that level, we have some logic-level converters on convenient breakout boards:
http://www.adafruit.com/index.php?main_ ... ogic+level
Thanks a lot!
Yannick
- adafruit_support_mike
- Posts: 67446
- Joined: Thu Feb 11, 2010 2:51 pm
Re: Amplify PWM for Adafruit 16-Channel 12-bit PWM/Servo Dri
It would look something like this:
You need a resistor between the servo-controller signal and the transistor's input terminal (the 'base') because that's basically a diode. Its voltage never wants to go much higher than 0.6v or 0.7v, and trying to put 3v or 5v across it Would Be Bad.
The 10k resistor connected to the transistor's 'collector' produces the signal. When the servo-driver signal has the logic value 'LOW', its voltage will be close to 0v. When you have 0v between a transistor's base and emitter, we say the transistor is 'off' or 'closed' because almost no current can flow through it (a few nanoamps of leakage current maybe). When the servo-driver's output has the logic value HIGH, its voltage will be close to VCC. That allows enough current to flow through the 10k input resistor to the transistor's base, turning it 'on', or 'opening' it. Then lots of current can flow through the transistor.
From the perspective of the 10k output resistor, almost no current flows through it when the transistor is closed, so the voltage across it will be nearly zero. That puts the signal going to the ESC close to VCC. When the transistor is open, current does flow through the transistor and the output resistor. That puts a large voltage drop across the output resistor, so the signal going to the ESC goes close to GND.
Note that the input and output voltages get reversed: HIGH from the servo-driver produces LOW going to the ESC, and LOW coming form the servo-driver produces HIGH going to the ESC. That's equivalent to the logical operation of inversion, so this circuit is called an 'inverter'.
You need a resistor between the servo-controller signal and the transistor's input terminal (the 'base') because that's basically a diode. Its voltage never wants to go much higher than 0.6v or 0.7v, and trying to put 3v or 5v across it Would Be Bad.
The 10k resistor connected to the transistor's 'collector' produces the signal. When the servo-driver signal has the logic value 'LOW', its voltage will be close to 0v. When you have 0v between a transistor's base and emitter, we say the transistor is 'off' or 'closed' because almost no current can flow through it (a few nanoamps of leakage current maybe). When the servo-driver's output has the logic value HIGH, its voltage will be close to VCC. That allows enough current to flow through the 10k input resistor to the transistor's base, turning it 'on', or 'opening' it. Then lots of current can flow through the transistor.
From the perspective of the 10k output resistor, almost no current flows through it when the transistor is closed, so the voltage across it will be nearly zero. That puts the signal going to the ESC close to VCC. When the transistor is open, current does flow through the transistor and the output resistor. That puts a large voltage drop across the output resistor, so the signal going to the ESC goes close to GND.
Note that the input and output voltages get reversed: HIGH from the servo-driver produces LOW going to the ESC, and LOW coming form the servo-driver produces HIGH going to the ESC. That's equivalent to the logical operation of inversion, so this circuit is called an 'inverter'.
Forum rules
Talk about Adafruit Raspberry Pi® accessories! Please do not ask for Linux support, this is for Adafruit products only! For Raspberry Pi help please visit: http://www.raspberrypi.org/phpBB3/
Talk about Adafruit Raspberry Pi® accessories! Please do not ask for Linux support, this is for Adafruit products only! For Raspberry Pi help please visit: http://www.raspberrypi.org/phpBB3/