🐌 Tutorial 20 - Motor Driver (TA6586)

The TA6586 motor driver module is a small electronic device that is designed to control the speed and direction of a DC motor. It is commonly used in robotics, automation, and other applications that require precise motor control.

The module uses a dual H-bridge configuration, which allows it to control the direction of rotation of a DC motor, as well as its speed. It is capable of driving motors with a voltage range of 4.5V to 27V, and a maximum current of 2A. It can also handle peak currents up to 3A, making it suitable for use with small to medium-sized DC motors.

The TA6586 motor driver module is controlled using a PWM (Pulse Width Modulation) signal, which allows the speed of the motor to be adjusted by varying the duty cycle of the PWM signal. It also has several built-in safety features, such as over-current protection and thermal shutdown, to prevent damage to the motor or the module itself.

The module is easy to interface with a microcontroller or other digital device, and it requires only a few pins to control. It can be programmed using a variety of programming languages, including C, C++, and Python.

Overall, the TA6586 motor driver module is an important component in many robotics and automation projects, providing a simple and reliable way to control the speed and direction of a DC motor. Its small size, high current handling capacity, and built-in safety features make it a popular choice for hobbyists and professionals alike.

Components Needed

ComponentQuantity
Raspberry Pi Pico W1
Micro USB Cable1
Breadboard1
WiresSeveral
TA65861
TT Motor1
Li-po Charger Module1
18650 Battery1
Battery Holder1

Fritzing Diagram Example 1 - Motor

Code

import machine
import utime

motor1A = machine.Pin(14, machine.Pin.OUT)
motor2A = machine.Pin(15, machine.Pin.OUT)

def clockwise():
    motor1A.high()
    motor2A.low()

def anticlockwise():
    motor1A.low()
    motor2A.high()

def stopMotor():
    motor1A.low()
    motor2A.low()

while True:
    clockwise()
    utime.sleep(1)
    stopMotor()
    utime.sleep(1)
    anticlockwise()
    utime.sleep(1)
    stopMotor()
    utime.sleep(1)

Code Explanation

Fritzing Diagram - Example 2