Double Motor Driver Control Not Working

We have been trying to create a double motor arm for VEX IQ rise above but we have been trying to fix these problems but nothing will work. If anyone can help can you please reply. (VEXCode IQ)

Annotation 2020-09-15 162427

Wait for a code or to drive it?

There are a few issues here. I personally am not a fan of the event driven way of doing this type of control but it would work just as well. Also, I think you misunderstand the “set motor stopping to” command as well so let’s look at that first.

It can be set to three modes - Coast, Brake and Hold

Coast - if you use this mode, the motor will stop receiving power when you tell it to stop but inertia will allow it to continue to spin. When using coast on an arm, you’ll almost certainly always miss the point that you are trying to get to

Brake - this mode will stop the motor dead when you tell it to stop, but as soon as it has stopped, it will then coast. In the case of an arm, it will stop dead when you stop the motor, but gravity may pull it down

Hold - Like Brake, the motor will stop dead when you tell it to but as well as this, it will also try to hold the same position until it is told by code to move again, This can be very useful for holding the arm in position when you release the button.

I’d suggest having your button press code in a forever loop like this, using if/else to decide what happens to the motors:
image

In this code, the first thing we do is set both motors to Hold mode - great for an arm.
The we go into a forever loop. The code continually checks if L Up is pressed. If it is, the arm goes up.
If L Up is not pressed, the code then checks if L Down is pressed instead. If it is, the arm will go down.
If neither is pressed, that means the Else part is triggered - the motors stop. And because we are in hold mode, the arm should stay where you stopped it.

The event driven version of the same code would look something like this:
image

7 Likes

thankyou so much very helpful

1 Like