Hw 130 Motor Control Shield For Arduino Datasheet | 360p |
void loop() motorA(200, true); // forward 78% speed motorB(150, false); // reverse 59% speed delay(2000); stopMotors(); delay(1000); motorA(100, false); motorB(200, true); delay(2000); stopMotors(); delay(1000);
void motorB(int speed, bool forward) analogWrite(ENB, constrain(speed, 0, 255)); if (forward) digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); else digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
void motorA(int speed, bool forward) analogWrite(ENA, constrain(speed, 0, 255)); if (forward) digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); else digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); Hw 130 Motor Control Shield For Arduino Datasheet
1. Introduction The HW-130 is a low-cost, dual-channel DC motor driver shield compatible with Arduino Uno, Leonardo, and similar boards. It allows independent control of two DC motors (or one stepper motor) in forward/reverse directions with speed regulation via PWM. The shield is based on the L293D push-pull four-channel driver, which includes internal flyback diodes for inductive load protection. 2. Key Features | Parameter | Value | |------------------------|-------------------------------| | Driver IC | L293D (or clone) | | Number of channels | 2 (DC motors) / 1 (stepper) | | Max continuous current | 600 mA per channel | | Peak current (per ch.) | 1.2 A (short pulse) | | Logic voltage | 5 V (from Arduino) | | Motor voltage (VMS) | 4.5 V to 36 V (external) | | PWM frequency | Up to 5 kHz (typical) | | Thermal shutdown | Yes (L293D internal) | | Protection diodes | Built-in (schottky) | 3. Pinout and Connections The HW-130 sits directly on top of an Arduino Uno, using the following connections:
void stopMotors() digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); void loop() motorA(200, true); // forward 78% speed
| Symbol | Parameter | Min | Typ | Max | Unit | |--------|-------------------------|------|-----|------|------| | VCC | Logic supply | 4.5 | 5.0 | 5.5 | V | | VMS | Motor supply | 4.5 | 12 | 36 | V | | IO | Continuous output current| 0 | 0.6 | 0.6 | A | | IOP | Peak output current (100ms)| 0 | 1.2 | 1.2 | A | | VIH | Input high voltage (INx, ENx)| 2.3| 5 | 5.5 | V | | VIL | Input low voltage | 0 | 0 | 0.8 | V | | RDS(on)| Driver on-resistance (per channel) | - | 1.5 | 2.5 | Ω | | fPWM | PWM frequency (recommended) | 100 | 1k | 5k | Hz | | ENA | IN1 | IN2 | Motor A output | Action | |-----|-----|-----|----------------|-----------------| | 0 | X | X | Hi-Z (brake) | Motor free-runs | | 1 | 0 | 0 | Short brake | Dynamic brake | | 1 | 0 | 1 | Reverse | Motor backward | | 1 | 1 | 0 | Forward | Motor forward | | 1 | 1 | 1 | Short brake | Dynamic brake | Note: A “short brake” (both outputs low) actively brakes the motor. Setting EN = 0 allows the motor to coast. 6. Arduino Wiring Example No additional wiring is required – simply stack the HW-130 onto an Arduino Uno. Connect two DC motors to the screw terminals. For external motor power (e.g., 12 V battery), connect it to +VMS and GND on the terminal block. 7. Sample Arduino Code // HW-130 Motor Control Shield (L293D) // Motor A = pins 9(PWM), 8, 7 // Motor B = pins 10(PWM), 6, 5 #define ENA 9 #define IN1 8 #define IN2 7 #define ENB 10 #define IN3 6 #define IN4 5
| Shield Pin | Arduino Pin | Function | |------------|-------------|------------------------------| | ENA | D9 (PWM) | Enable channel A (PWM speed) | | IN1 | D8 | Direction A-1 | | IN2 | D7 | Direction A-2 | | IN3 | D6 | Direction B-1 | | IN4 | D5 | Direction B-2 | | ENB | D10 (PWM) | Enable channel B (PWM speed) | | +5V | 5V | Logic supply (from Arduino) | | GND | GND | Common ground | | VMS | (None) | External motor power (4.5–36V) | The shield is based on the L293D push-pull
void setup() pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);