![]() |
Inverting the direction of a Motor
I know this has probably been answered several times elsewhere in the forums, but I can't for the life of me find where.
I am trying to reverse a motor in software. I have two motors connected to a single axle and want to reverse one of them. I want to use the y axis of joystick no. 2. I realize that the same thing could be accomplished by reversing the + and - wires on one of the motors but IMHO it is better to do this in the code. Thanks, Tom |
Re: Inverting the direction of a Motor
pwm01 = 255 - pwm01
|
Re: Inverting the direction of a Motor
Thank you very much. Knew it should be pretty simple to do.
|
Re: Inverting the direction of a Motor
No problem =)
|
Re: Inverting the direction of a Motor
An error here and you could release the magic smoke...
Eugene |
Re: Inverting the direction of a Motor
Quote:
The reason is, the Victors don't seem to behave exactly the same backwards and forwards out of the box. We've noticed that setting a PWM to 178 and 78 don't produce close to the same speeds in opposite directions... until you calibrate the Victor. |
Re: Inverting the direction of a Motor
PHP Code:
|
Re: Inverting the direction of a Motor
Quote:
Quote:
Quote:
But you're right about the problem -- the Victor factory calibration is a little off from the IFI pwm outputs, with its actual neutral point at more like 132. That makes your forward value at plus 46, and your reverse value at minus 54...until you calibrate the Victor. |
Re: Inverting the direction of a Motor
Quote:
|
Re: Inverting the direction of a Motor
I guess it's already been posted, but the following should also work.
(all words in all caps are alliases, as I do not actually know the names of all the values) Code:
PWM_LEFT_MOTOR = STICK_FOUR_X; |
Re: Inverting the direction of a Motor
I think switching the wires is the best way to go IMO, just because you don't have to worry so much about calibrating, and any wrong software will do some damage to the motors for sure.... but everything up there seems good lol I would just pwm01 = 254 - pwm01 like was said previous, if you really have a problem switching wires :D
|
Re: Inverting the direction of a Motor
Hmm, nevermind, it appears the Victor Calibration procedures are in the IFI manuals.
|
Re: Inverting the direction of a Motor
Quote:
Slightly off-topic, since the new controllers were introduced in 2004, I haven't had an issue with the full 0-255 range on PWM outputs. 255 seems to be a valid value, has anyone had any issues? I haven't hit 255 on the OI analog inputs though. |
Re: Inverting the direction of a Motor
*sigh* that's what i love about H-Bridges, no confusing 0 to 255 just 0's and 1's
|
Re: Inverting the direction of a Motor
Quote:
You'll never see an OI value of 255 arrive at your user code, no matter how hard you try. :) |
Re: Inverting the direction of a Motor
Quote:
|
Re: Inverting the direction of a Motor
Quote:
You've received many answers to your question regarding how to reverse the motor in software, but in this case, I'd highly suggest that you implement a mechanical solution so that a software bug can't possibly cause the two motors to run in different directions, or even at different speeds. I would suggest using a single PWM output from the controller to control both of these motors. You can use a PWM "Y" cable to take a single PWM output from the robot controller to two separate victors. There were some of these cables in the kit of parts. Additional ones can be ordered from many different vendors. (See "CABLE-PWM-Y-2PK" at http://ifirobotics.com/accessories.shtml for an expensive source for these cables.) Since your motors are currently turning in opposite directions when given the same PWM value, you'll need to reverse the motor leads on one of the motors. The advantage of using the single "Y" cable to two victors is that it is not possible for a software bug to cause the motors to go in different directions or to run at different requested speeds. In the long run, the extra mechanical effort to eliminate potential future problems caused by the software will be time very well spent. Best Regards, --ken |
Re: Inverting the direction of a Motor
Quote:
I was told that this was a historical limit on the master/slave processor serial bus interplay because xFF was used in the serial transmission sequence to signal the start & ending of a transmitted frame. With the use of INT0 to signal the start of frame transmission on the newer controllers I wonder if there is some other technical reason for continuing to do this (not allowing xFF in the transmitted data frames)? |
Re: Inverting the direction of a Motor
Quote:
|
Re: Inverting the direction of a Motor
Not on the master/slave communication, but on the radio packet traffic between the OI/RC. A double 255/255 flags the beginning of the radio packet data.
Quote:
|
| All times are GMT -5. The time now is 20:24. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi