|
|
|
![]() |
|
|||||||
|
||||||||
|
|
Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
We are having problems with the encoder. The Code is as follows.
public class Shooter extends Subsystem { public CANTalon shooterMotorOne = new CANTalon(RobotMap.shooterMotorOne); CANTalon shooterMotorTwo = new CANTalon(RobotMap.shooterMotorTwo); CANTalon shooterMotorThree = new CANTalon(RobotMap.shooterMotorThree); CANTalon shooterMotorFour = new CANTalon(RobotMap.shooterMotorFour); public void updateDashboard() { double leftShootSpeed = shooterMotorOne.getSpeed(); SmartDashboard.putNumber("Speed",shooterMotorOne.g etSpeed()); System.out.println("Left Shoot Speed: " + leftShootSpeed); SmartDashboard.putNumber("Error: ", shooterMotorOne.getClosedLoopError()); } protected void initDefaultCommand() { setDefaultCommand (new Shoot(0)); } public void shoot(double speed) { shooterMotorOne.setFeedbackDevice(FeedbackDevice.C treMagEncoder_Relative); shooterMotorTwo.setFeedbackDevice(FeedbackDevice.C treMagEncoder_Relative); shooterMotorThree.setFeedbackDevice(FeedbackDevice .CtreMagEncoder_Relative); shooterMotorFour.setFeedbackDevice(FeedbackDevice. CtreMagEncoder_Relative); shooterMotorOne.reverseSensor(false); shooterMotorTwo.reverseSensor(false); shooterMotorThree.reverseSensor(true); shooterMotorFour.reverseSensor(true); shooterMotorOne.changeControlMode(TalonControlMode .Speed); shooterMotorTwo.changeControlMode(TalonControlMode .PercentVbus); shooterMotorThree.changeControlMode(TalonControlMo de.PercentVbus); shooterMotorFour.changeControlMode(TalonControlMod e.PercentVbus); double shooterP = Robot.prefs.getDouble("shooterP", 0.4); double shooterI = Robot.prefs.getDouble("shooterI", 0); double shooterD = Robot.prefs.getDouble("shooterD", 0); double shooterF = Robot.prefs.getDouble("shooterF", 0); double prefspeed = Robot.prefs.getDouble("prefspeed", 100); shooterMotorOne.setPID(shooterP, shooterI, shooterD, shooterF, 0, 0, 0); shooterMotorTwo.setPID(shooterP, shooterI, shooterD, shooterF, 0, 0, 0); shooterMotorThree.setPID(shooterP, shooterI, shooterD, shooterF, 0, 0, 0); shooterMotorFour.setPID(shooterP, shooterI, shooterD, shooterF, 0, 0, 0); shooterMotorOne.set(speed); shooterMotorTwo.set(speed); shooterMotorThree.set(speed); shooterMotorFour.set(speed); } The code provides no errors. When we run the robot everything functions correctly, and we get an error value yet we do not receive anything for speedL. We tried 2 old encoders, and even built a new encoder. |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|