Tags: Dual, DC, Motor, Driver, Controller, module, HG7881

Motor Driver Dual DC Controller module HG7881

  • 15.00 AED
    • Ex Tax:15.00 AED
    • Product Code: HG7881
    • Availability: In Stock
    The HG7881 (L9110) is a compact motor driver board that supports a voltage range from 2.5-12V at 800mA of continuous current. These chips have built-in output clamp diodes to protect your sensitive microcontroller electronics. They are suitable for small robot projects.Each L9110 chip is able to dri..

    The HG7881 (L9110) is a compact motor driver board that supports a voltage range from 2.5-12V at 800mA of continuous current. These chips have built-in output clamp diodes to protect your sensitive microcontroller electronics. They are suitable for small robot projects.

    Each L9110 chip is able to drive a single DC motor using two digital control inputs. One input is used to select the motor direction while the other is used to control the motor speed. Speed is controlled by using Pulse Width Modulation PWM.  The truth table for a single HG7881 (L9110) chip is as follows:

    HG7881 (L9110) Truth Table
    InputOutput
    IAIBOAIBDescription
    LLLLOff
    HLHLForward
    LHLHReverse
    HHHHOff


    Note that the actual direction of "forward" and "reverse" depends on how the motors are mounted and wired. You can always change the direction of a motor by reversing its wiring.

    The HG7881 (L9110) Dual Channel Motor Driver Module uses two of these motor driver chips. Each driver chip is intended to drive one motor, so having two means that this module can control two motors independently. Each motor channel uses the same truth table as above. Each set of screw terminals is used to connect a motor. Refer to the table below for pin header connections.

    HG7881 (L9110) Dual Channel Motor Driver Module Connector
    PinDescription
    B-IAMotor B Input A (IA)
    B-IBMotor B Input B (IB)
    GNDGround
    VCCOperating Voltage 2.5-12V
    A-IAMotor A Input A (IA)
    A-IBMotor A Input B (IB)

    The actual direction of "forward" and "reverse" depends on how the motors are mounted and wired. You can always change the direction of a motor by reversing its wiring.

    We recommend using input 1A to control the speed of each motor and input 1B to control the direction.


    HG7881 (Another version of the L9110 motor driver) Dual Channel Motor Driver Module is a compact board that can be used to drive a small robots. This tiny module has two independent HG7881 motor driver chips which can each drive up 800mA of continuous current. 2.5V to 12V able to enabling this module to be used with both 3.3V and 5V microcontrollers.


    • HG7881 board motor control chip
    • the module can simultaneously drive two DC motors or a 4-wire 2-phase stepper motor
    • the module input voltage :2.5-12V
    • each channel has a 800mA continuous output current capability
    • PCB size: 29.2 (mm) x23 (mm)




    Schematic diagram




    Hardware
    -Arduino board
    - HG7881/L9110 Driver board
    - Jumper wires
    - DC Motor x2
    - External power supply 2.5v to 12v

    Arduino sketch


    const int motorA1 =  6;
    const int motorA2  = 7;
    const int motorB1 =  8;
    const int motorB2 =  9;

    void setup() {
      // put your setup code here, to run once:
      pinMode( motorA1 , OUTPUT);
      pinMode( motorA2 , OUTPUT);

      pinMode( motorB1 , OUTPUT);
      pinMode( motorB2 , OUTPUT);
    }

    void loop() {
      // put your main code here, to run repeatedly:
      digitalWrite( motorA1 , HIGH);
      digitalWrite( motorA2 , LOW);

      digitalWrite( motorB1 , HIGH);
      digitalWrite( motorB2 , LOW);

      delay(5000);
      // stop
      digitalWrite( motorA1 , LOW);
      digitalWrite( motorA2 , LOW);

      digitalWrite( motorB1 , LOW);
      digitalWrite( motorB2 , LOW);

      delay(3000);

      digitalWrite( motorA1 , LOW);
      digitalWrite( motorA2 , HIGH);

      digitalWrite( motorB1 , LOW);
      digitalWrite( motorB2 , HIGH);

      delay(5000);
      // stop
      digitalWrite( motorA1 , LOW);
      digitalWrite( motorA2 , LOW);

      digitalWrite( motorB1 , LOW);
      digitalWrite( motorB2 , LOW);

      delay(3000);
      
    }