130 lines
3.0 KiB
ReStructuredText
130 lines
3.0 KiB
ReStructuredText
Grove TB6612FNG Motor Drive
|
|
===========================
|
|
|
|
.. seo::
|
|
:description: Instructions for setting up Grove TB6612FNG Motor Driver in ESPHome.
|
|
:image: grove_tb6612fng.jpg
|
|
|
|
The Grove TBB6612FNG a runs over I²C bus and has the capability to control DC and Stepper motors.
|
|
At the current stage of implementation only DC motor is implemented.
|
|
|
|
.. figure:: images/grove_tb6612fng.jpg
|
|
:align: center
|
|
:width: 50.0%
|
|
|
|
.. code-block:: yaml
|
|
|
|
# Example configuration
|
|
grove_tb6612fng:
|
|
- address: 0x14
|
|
id: test_motor
|
|
|
|
Configuration variables:
|
|
************************
|
|
|
|
- **id** (**Required**, :ref:`config-id`): The id to use for this TB6612FNG component.
|
|
- **address** (*Optional*, int): The I²C address of the driver.
|
|
Defaults to ``0x14``.
|
|
|
|
.. grove_tb6612fng.run:
|
|
|
|
``grove_tb6612fng.run`` Action
|
|
------------------------------
|
|
|
|
Set the motor to spin by defining the direction and speed of the rotation, speed is a range from 0 to 255
|
|
|
|
.. code-block:: yaml
|
|
|
|
on_...:
|
|
then:
|
|
- grove_tb6612fng.run:
|
|
channel: 1
|
|
speed: 255
|
|
direction: BACKWARD
|
|
id: test_motor
|
|
|
|
|
|
.. grove_tb6612fng.stop:
|
|
|
|
|
|
``grove_tb6612fng.stop`` Action
|
|
-------------------------------
|
|
|
|
Set the motor to stop motion but wont stop to spin in case there is a force pulling down, you would want to use break action if this is your case
|
|
|
|
.. code-block:: yaml
|
|
|
|
on_...:
|
|
then:
|
|
- grove_tb6612fng.stop:
|
|
channel: 1
|
|
|
|
|
|
|
|
.. grove_tb6612fng.break:
|
|
|
|
|
|
``grove_tb6612fng.break`` Action
|
|
--------------------------------
|
|
|
|
Set the motor channel to be on break mode which it ensure the wheel wont spin even if forced or pushed
|
|
|
|
.. code-block:: yaml
|
|
|
|
on_...:
|
|
then:
|
|
- grove_tb6612fng.break:
|
|
channel: 1
|
|
id: test_motor
|
|
|
|
.. grove_tb6612fng.standby:
|
|
|
|
``grove_tb6612fng.standby`` Action
|
|
----------------------------------
|
|
|
|
Set the board to be on standby when is not used for a long time which reduces power consumptions and any jerking motion when stationary
|
|
|
|
.. code-block:: yaml
|
|
|
|
on_...:
|
|
then:
|
|
- grove_tb6612fng.standby
|
|
id: test_motor
|
|
|
|
.. grove_tb6612fng.no_standby:
|
|
|
|
``grove_tb6612fng.no_standby`` Action
|
|
-------------------------------------
|
|
|
|
Set the board to be awake, every esphome is restarted the default mode is set to standby to ensure the motor wont spin accidentally
|
|
|
|
.. code-block:: yaml
|
|
|
|
on_...:
|
|
then:
|
|
- grove_tb6612fng.no_standby
|
|
id: test_motor
|
|
|
|
.. grove_tb6612fng.change_address:
|
|
|
|
``grove_tb6612fng.change_address`` Action
|
|
-----------------------------------------
|
|
|
|
If you require connecting multiple boards at once, the address can be changed using this action. The address can be changed to a value in the range of ``0x01 - 0x7f`` inclusive.
|
|
|
|
.. code-block:: yaml
|
|
|
|
on_...:
|
|
then:
|
|
- grove_tb6612fng.change_address:
|
|
address: 0x15
|
|
id: test_motor
|
|
|
|
|
|
See Also
|
|
--------
|
|
|
|
- :ref:`i2c`
|
|
- :doc:`switch/gpio`
|
|
- :ghedit:`Edit`
|