Hello my team and I need help. We have a 1/25 gear ratio. It is fast but its seems to stall or stop when we test it . we have changed the gear to high strength andlow strength. We also have changes our motors to high speed . we’re thinking of changeing the motors to a turbo motor. We are doing a two wheel launch and not a single launch . we have tested it alot and we have not been proud of how far or fast it shoots. We have made the spacing the same . we are not sure if it is just to moch friction or not . we really need help quickly because we have a competition coming up in two weeks and we want to be able to shoot to make a high goal.
Firstly, I just want to say that there is a wealth of information about flywheels already on the forum
Examples are threads like this:
https://vexforum.com/t/recommended-gear-ratios/30338/1
https://vexforum.com/t/gear-ratios/30386/1
and many many more.
Generally for a double flywheel, a gear ratio of 16:1 - 26:1 should be fine, torque gear motors mean you can have higher gear ratio as you have more torque, high speed gears are for smaller gear ratios as they spin faster but have less torque.
The main thing you should be focused on is reducing friction, its a killer. Things like putting spacers before shaft collars can hep a lot, high strength gears ( especially the 12 tooth ones ) are not generally a good idea. Many people have found that friction is causing their motors to stall or stop!
If you look at the [robot reveals section there are some really awesome robots that people have shared ( at least somewhat ) that you can take inspiration from, generally they will provide the gear ratio so you can build off of their ideas.
Good Luck](“https://vexforum.com/forumdisplay.php?f=6”)
We had a 1/25 hear ratio with high speed motors. It worked just fine. Maybe it was because we had slew rate control. It really helps as it doesn’t try to force your motors to spin all at once, but increments power. This code can be used
int count
while(true){
count = 0
if(vexRT[Btn8U] == 1){
count++;
motor[portname] = count
}
else{
count--
}
wait1msc(20);
if(count <= 127){
motor[portname] = 127
}
else if count >= 0{
motor[portname] = 0
}
Correct me if i’m wrong, but isn’t a slew rate the maximum change in the output of voltage over a period of time? I think what you are referring to is code that ramps motors to a speed.
Also your second count statement means that the motors will be set to zero until count hits 127, in which case they will be set to 127 Also the count variable at the beginning means each iteration of the loop the count variable will be set to zero. And your else statement will count backwards, but without updating the motors, which I dont understand the meaning of, lol.
I made a few alterations to your code and fixed it up a little.
int count = 1;
while(true){
if(vexRT[Btn8U] == 1 && count < 127){ // Ramp Up only if 127 and below
count++;
motor[portname] = count;
}
else if(vexRT[Btn8D] == 1 && count >= 0){ // Ramp Down only if above 0
count--;
motor[portname] = count;
}
else if(vexRT[Btn8R] == 1){ // Stop Flywheel
motor[portname] = 0;
count = 0; // Reset Count
}
wait1Msec(20);
}
}
Also I completely agree a ramp up program is a really good idea
RampCode.c (629 Bytes)
This code worked for another person who sent me a PM, but I appreciate any and every improvement made to the code
David
Friction is the enemy. We found that a shaft on our flywheel was just slightly bent and it took the RPM down 400. Also make sure you have bearings on every hole in the shafts go through. Also as I have said before, a 25:1 gear ratio is way too high, try 15:1, we are overshooting with a 15:1 ratio on our flywheel.