Does the new arduino (Duemilanove) work the same way as the one right before it in terms of how the "Getting Started Guide" works... i'm asking cause the guide is not updated to the newest board... in fact it still says "we assume you're using an Arduino Diecimila"....
The differences between the two versions of the board are very small, and not in any relation to the usage of the board by software or I/O pin layout or timing.
alright, thats nice to know... one more thing... as i understand, the arduino's use standard 3-wire pwm connections, like the ones found on hobby servos... if i was to connect a brushless motor ESC (electric speed control) to one of the pwm connections, and with the right code - would i be able properly manipulate the ESC through the arduino?
" as i understand, the arduino's use standard 3-wire pwm connections, like the ones found on hobby servos..."
No, the Arduino just groups different I/O and power pins on four different connectors, that have no relationship to R/C servo type 3 pin connectors. To wire to a standard servo you would have to route the 3 servo wires to three different pin connection on the Arduino board.
if i was to connect a brushless motor ESC (electric speed control) to one of the pwm connections, and with the right code - would i be able properly manipulate the ESC through the arduino?
No, you are mixing up PWM control with PPM control used by R/C servos. PWM is different and cannot be used by an R/C type servo. You can however drive a R/C servo (or ESC) with any of the Arduino digital output pins by using the proper library software routine.
thanks guys... seems the board is a bit different that i thought... im in a robotics class right now in high school and the board we use uses PWM connectors to connect both speed controllers and hobby servos... so i though the arduino might have that incommon, thanks for filling me in ;D
The use of the term PWM to refer to the signal used for hobby servos is quite common – unfortunately it is both confusing and wrong. PWM (Pulse Width Modulation) is a method used in the arduino for simulating analog control using analogWrite. The Arduino documentation refers to the 6 PWM pins that the chip supports. But driving a servo with the PWM pins won't work and could damage a servo or ESC because it uses a different and incompatible method to the PPM (Pulse Position Modulation) used in hobby servos.
a google serch for PWM and PPM should provide a more detailed explanation of the differences between the methods if you are interested.
mem, there are quite a few examples on the arduino tutorial pages that go on the basic premise of this sort of circuit:
If the Servo library is not employing PWM, it would probably be best if this were made more clear in the tutorials. The Servo library reference only hints at it: "If only one servo is used, the other pin cannot be used for normal PWM output with analogWrite(). For example, you can't have a servo on pin 9 and PWM output on pin 10." Defaulting to non-PWM pins would probably have been a better choice, to avoid this confusion, but it's well established now.
I'm also wondering if the tutorials should talk more about power issues-- testing a hobby servo alone might work, but I noticed the power LED go dim when a new Futaba hit its limit (apparently the internal pot is just a tiny bit off-calibrated).
Hi Ed, This is a topic that does seem to create a lot of confusion. PWM can be used under tightly controlled conditions to emulate PPM. That's what the Servo library does. But that does not make a servo signal PWM, and trying to use the standard Arduino PWM mode through analogWrite will not work.
Because the servo library interferes with the normal Arduino PWM outputs, you can't use a servo on pin 9 and analogWrite on pin 10.
mem, aha, so it is using the PWM circuitry, just not in the same way plain PWM applications need. So if you analogWrite() to the sister-pin, it would screw up the shared timer, and that's not good for the servo.
so it is using the PWM circuitry, just not in the same way plain PWM applications need. So if you analogWrite() to the sister-pin, it would screw up the shared timer, and that's not good for the servo.
Yes.
Its the terminology that confusing. To move a servo, the width of a pulse needs to be controlled. But pulse width modulation is a specific kind of signal that only in very special cases meets the timing requirements for a hobby servo.
Its easy jump the conclusion that because a timer pwm mode can be configured to control a servo, the servo must be PWM. But it's a little like saying that because analogWrite can alternate current, it can power AC devices. There may be some very special cases where it can provide an alternating current, but its not a good idea to try plugging in household power cords to an arduino pin