View Single Post
  #5   Spotlight this post!  
Unread 11-06-2010, 01:38
daltore's Avatar
daltore daltore is offline
Electronics/programming/design
AKA: Aaron Osmer
FRC #3529 (ausTIN CANs)
Team Role: Mentor
 
Join Date: Dec 2007
Rookie Year: 2007
Location: San Antonio, TX
Posts: 272
daltore has a spectacular aura aboutdaltore has a spectacular aura aboutdaltore has a spectacular aura about
Send a message via AIM to daltore Send a message via MSN to daltore Send a message via Yahoo to daltore
Re: Jaguar/Victor question

Remember that there is a difference between PWM (pulse-width modulation) and PPM (pulse-position modulation). PWM is the ratio of high to low in a signal (25% is X time of the signal is high, and 3X time of the signal low, then it repeats). PPM on the other hand is the servo signal, between 1 ms and 2 ms like described above. The Arduino libraries have a nice structure (class? Is that one written in C or C++?) setup for this in a library, called "Servo". You just have to add the Library in the Arduino IDE. The Servo reference is here:

http://arduino.cc/en/Reference/Servo

I'd recommend looking at the "Sweep" example at the bottom, it shows very cleanly how everything is placed.

A note on Servo.write(): The "write()" function is designed to take an angle between 0-180 degrees (a typical servo absolute maximum range, most drivers only have 120, so you might get some jitter or mis-calibration around the extremes), but if the number you input is too high to be considered a valid angle, it will consider the value as a time in microseconds and call "writeMicroseconds()". The "read()" function will only return the angle, I believe.

Also, if you've never used structures/classes, they act a little like variable types (like an "int" or a "char"). You would declare a specific servo (like "myservo") of type Servo. That's what "Servo myservo;" does under the include statement.