Mechatronics Portfolio
Logan Williamson's Mechatronics Portfolio and Documentation Repository
Public Member Functions | Public Attributes | List of all members
Lab0x04_motor.Motor Class Reference

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
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ __init__()

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.

Parameters
PWM_timCreates 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_pinCreates 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_pinCreates 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.
chACreates 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.
chBCreates 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.

Member Function Documentation

◆ set_duty()

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.

Parameters
dutyA signed number holding the duty cycle of the PWM signal sent to the motor

The documentation for this class was generated from the following file: