We finished the final version of the motor controller circuit! To make the ROV more low-cost, we've replaced the Sabertooth motor controllers with L298N H-Bridge drivers.
The primary purpose of the circuit on our ROV is to take input from a program and use this input to control the motors. First, the Arduino microcontroller reads pulse width modulation (PWM) inputs from two joysticks that act as potentiometers. In addition, the orientation of the joysticks tells the motors whether to turn clockwise or counter-clockwise. The Arduino then sends data signals to L298N motor controllers. These serve two purposes. For one, they can be used as h-bridges which can output a negative and positive voltage so that the motors can turn both ways. Secondly, they take in a PWM signal ranging from 0 to 255 so that it can output any voltage from 0 to 12 volts. Initially problems arose as we tried to ensure that the motor controllers could handle the current drawn by the motors. We performed calculations using Kirchhoff's Law to calculate the current drawn from and the voltage needed for the motors. We then had to measure these values in practice using a multi-meter. After this we tested our circuit and we found that it gave the robot the ability to turn and move forwards, backwards, and laterally at varied speeds.