IQ motor on Flex lift arm gets weird hot…almost upon powering on even before driving. I have searched and searched with no resolution. Anyone out there have any wisdom, expertise, or experience to share? The motor obviously under performs when hot like this. Thanks for your help.
We modified a sample program for RobotC. Reads like this…
task main()
{
int threshold = 10;
while(true)
{
//////////////////////////////////TANK DRIVE CONTROL FOR CHASSIS ///////////////////////////////////////
//If the ChannelA (left Y-Axis) is greater than the threshold value,then we'll set the speed of the motor to vlaue from the joystick.
if(getJoystickValue(ChA) > threshold || getJoystickValue(ChA) < -threshold)
{
setMotorSpeed(leftMotor, getJoystickValue(ChA));
}
else //If less than the threshold, we'll set the motor to zero.
{
setMotorSpeed(leftMotor, 0);
}
//If the ChannelD (right Y-Axis) is greater than the threshold value, then we'll set the speed of the motor to vlaue from the joystick.
if(getJoystickValue(ChD) > threshold || getJoystickValue(ChD) < -threshold)
{
setMotorSpeed(rightMotor, getJoystickValue(ChD));
}
else //If less than the threshold, we'll set the motor to zero.
{
setMotorSpeed(rightMotor, 0);
}
/////////////////////////////////// LIFT CONTROLS /////////////////////////////////////////////
//If Button "L-Up" is pressed in, we'll set the arm motor to run in reverse.
if(getJoystickValue(BtnLUp) == 1)
{
setMotorSpeed(rightArm,-127);
setMotorSpeed(leftArm, -127);
}
//If the "L-Up" isn't pressed, but "L-Down" is, we'll set the motor to run forward.
else if(getJoystickValue(BtnLDown) == 1)
{
setMotorSpeed(rightArm, 127);
setMotorSpeed(leftArm, 127);
}
else //If neither button is pressed, we'll set the motor off.
{
setMotorSpeed(rightArm, 0);
setMotorSpeed(leftArm, 0);
}
}
I just ran the VEXos Utility. It did complete an update. We will see if that’s the fix or not. Class just ended so it will be a few days before I can check it out.
We lost a couple lift motors this way. From what I can tell, the IQ motors have a current sense built into them to help reduce the current over time to prevent the motors from overheating (not an actual temp sensor). When you practice a lot, reprogram, turn the unit on and off, then practice with short time intervals, the timing used to determine how hot the motor gets is reset so things accumulate and the motors get hot anyway.
This is conjecture on my part, but I stopped our kids from hanging except during actual tournaments and skills. Not worth it when you can’t buy new motors!!
If it weren’t for a local friend loaning us 4 motors, we would have missed the last two tournaments.
We’ve also had this kind of situation.But we thought it might be that the motor was locked.You can try to solve this problem by modifying the program.
The above content is translated by Google
there are 2 bools that you can use that we used to stop our iq lift from overheating while we were practicing:
bool overTemp
bool currentLimitFlag
and use can use this code inside task main
task main () {
while(!overTemp || !currentLimitFlag) {
//your code goes here
};
}