Function Library - 1264D/Starstruck GitHub Wiki
Table of Contents
- JoyClear
- PowerCap
- AngleArm
- AngleCorrect
JoyClear
int JoyClear(int origVal) {
if (abs(origVal) < 10)
return 0
else
return origVal;
}
}
Takes Joystick input (origVal) and analyzes value
- If between -10 and 10, returns 0
- Otherwise, returns original value
This function is used to stop to motors from whining when the joysticks are very near zero.
PowerCap
int PowerCap(int motorPower){
if(abs(motorPower) <= 127){
return motorPower;
}
else if(motorPower > 127){
return 127;
}
else{
return -127;
}
}
Takes Motor Power input (motorPower) and analyzes value
- If within range of -127 and 127, then return normal value
- If below -127, then set to -127
- If above 127, then set to 127
This functions stops code from setting motor power to a value it cannot handle.
AngleArm
void AngleArm(){
if(AngleToggle == true){
if((SensorValue[Poten1] >= ArmAngle - 40) && (SensorValue[Poten1] <= ArmAngle + 40)) {
motor[Arm1] = 0;
motor[Arm2] = 0;
AngleToggle = false;
}
if(SensorValue[Poten1] <= ArmAngle - 40){
motor[Arm1] = 127;
motor[Arm2] = 127;
}
if(SensorValue[Poten1] >= ArmAngle + 40){
motor[Arm1] = -127;
motor[Arm2] = -127;
}
}
}
- If potentiometer value is equal to requested angle, finish
- If it is below requested value, increase motor power
- If it is above requested value, decrease motor power
This function controls the preset arm angles.
AngleCorrect
void AngleCorrect(){
RealAngle = SensorValue[Poten2] + 700;
if((RealAngle >= (SensorValue[Poten1] - 40)) && (RealAngle <= (SensorValue[Poten1] + 40)) && AngleToggle2 == true){
AngleToggle2 = false;
motor[Arm2] = 0;
}
else if((RealAngle <= (SensorValue[Poten1] - 40))){
AngleToggle2 = true;
motor[Arm2] = 66;
}
else if((RealAngle >= (SensorValue[Poten1] + 40))){
AngleToggle2 = true;
motor[Arm2] = -66;
}
}
- Normalize potentiometer values
- If the two potentiometers are equal, do not affect lift heights
- If potentiometer 2 is less than potentiometer 1, then raise Right Arm
- If potentiometer 2 is more than potentiometer 1, then lower Right Arm