Code Training Module Help

ServoStateMachines

Overview

State machines for servos are a great way to handle servo operation. It allows you to send commands and then operate the servo based on those commands.

Code

public enum servo1State {UP, DOWN, MID, IDLE} private servo1State servo1StateVar = servo1State.IDLE; public void setservo1StateUP() { servo1StateVar = servo1State.UP; } public void setservo1StateDOWN() { servo1StateVar = servo1State.DOWN; } public void setservo1StateMID() { servo1StateVar = servo1State.MID; } public void setservo1StateIDLE() { servo1StateVar = servo1State.IDLE; } switch (servo1StateVar) { // needs to be updated every loop case UP: // Add code here break; case DOWN: // Add code here break; case MID: // Add code here break; case IDLE: // Add code here break; }

This prevents the need for multiple if statements and makes the code cleaner and easier to read. To send a command, you would use the code setservo1StateUP(); to set the servo to the UP state. This works because you send a command, and then when it gets updated, it will run the code to set the servo to the correct point using enums and a switch case.

Do not forget the break, or it will try to do all in one.

An easy way to set this up is to use this website I made to generate code for you.

Last modified: 21 February 2025