Mechatronics Portfolio
Logan Williamson's Mechatronics Portfolio and Documentation Repository
|
A motor class for one channel of the DRV8847. More...
Public Member Functions | |
def | __init__ (self, PWM_tim, IN1_pin, IN2_pin, chA, chB) |
Initializes and returns an object associated with a DC Motor. More... | |
def | set_duty (self, duty) |
Set the PWM duty cycle for the motor channel. More... | |
Public Attributes | |
tim | |
Pin1 | |
Pin2 | |
tim_ch1 | |
tim_ch2 | |
A motor class for one channel of the DRV8847.
Objects of this class can be used to apply PWM to a given DC motor. This effectively controls the speed of that motor due to the fact that motors work as low-pass filters.
def Lab0x04_motor.Motor.__init__ | ( | self, | |
PWM_tim, | |||
IN1_pin, | |||
IN2_pin, | |||
chA, | |||
chB | |||
) |
Initializes and returns an object associated with a DC Motor.
Objects of this class should not be instantiated directly. Instead create a DRV8847 object and use that to create Motor objects using the method DRV8847.motor(). This will allow higher-level management of these motor objects by the task files that will utilize and manipulate them.
PWM_tim | Creates empty object for an input of pin position for the pin we desire to control all four channels of our pulse width modulation. In this case, we are using timer 3 on the STM32 Nucleo. |
IN1_pin | Creates empty object for an input of pin position. The pin passed into this parameter will be the first of two pins required to control the associated motor object instantiated by this class. |
IN2_pin | Creates empty object for an input of pin position. The pin passed into this parameter will be the second of two pins required to control the associated motor object instantiated by this class. |
chA | Creates empty object for an input of a pin channel. The pin channels will control the direction of rotation of the motor based on the sign of the duty cycle input to the set_duty method. |
chB | Creates empty object for an input of a pin channel. The pin channels will control the direction of rotation of the motor based on the sign of the duty cycle input to the set_duty method. |
def Lab0x04_motor.Motor.set_duty | ( | self, | |
duty | |||
) |
Set the PWM duty cycle for the motor channel.
This method sets the duty cycle to be sent to the motor to the given level. Positive values cause effort in one direction, negative values in the opposite direction.
duty | A signed number holding the duty cycle of the PWM signal sent to the motor |