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
⚠️ **GitHub.com Fallback** ⚠️