Mạch Cầu H 600W 15A HI216 | Hướng Dẫn Sử Dụng

Board cầu H HI216 dùng IC kích Fet chuyên dụng, cho Fet luôn dẫn tốt nhất, tránh hiện tượng trùng dẫn, giúp công suất và hiệu năng của board luôn đạt ngưỡng dẫn tốt nhất và ít hư hỏng Fet, Module này chuyên dùng cho điều khiển tốc độ động cơ công suất lớn, điều khiển vị trí , vận tốc DC Motor, có thể lựa chọn mức kích âm hoặc dương để dễ dàng điều khiển.

Thông số kĩ thuật:

  • Dòng liên tục 15A,dòng đỉnh 20A công suất 600W,Tại 25oC.
  • Điện áp công suất từ 12V đến 48V.
  • Điện áp kích từ 3V3 -> 5V.
  • Có cầu chì bảo vệ ngắn mạch.
  • Có Led báo nguồn (POW), tín hiệu xung đưa vào (PWM) và và tín hiệu đảo chiều (DIR).
  • Board được thiết kế nhỏ gọn với kích thước 52x64x22mm.
  • Tần số hoạt động lên tới 100 Khz, sử dụng Opto HCPL-0631 cho tần số hoạt động cao.
  • Độ rộng xung 100%.

Ứng dụng:

  • Điều khiển động cơ DC.
  • Điều khiển vị trí, vận tốc các cơ cấu Servo.
  • Trong máy in, xe tự hành, xe điện…có sử dụng động cơ DC.
  • Dùng trong Robot, trong công nghiệp.

Chức năng chân:

Trên board đã ghi các kí hiệu để thuật tiện cho việc nối dây, bao gồm các chân bên trái gồm đầu vào (Input) D- D+ (Chân đảo chiều động cơ), P- P+ (chân chân tín hiệu xung) điện áp kích 3V3 đến 5V, bên phải gồm chân VCC GND (cấp nguồn công suất Motor từ 12V đến 48V), M1 M2 (Ngõ ra Motor).


Chân Chức năng
DIR- / DIR+ Chân đảo chiều động cơ
PWM- / PWM+ Chân tín hiệu xung, điều tốc động cơ
VCC / GND Nguồn cho motor 12 - 48V
M1 / M2 Ngõ ra motor

Sơ đồ kết nối 1 / Kích mức cao:

  • Chân DIR+ nối với chân I/O của vi điều khiển hoặc Arduino (Mức 0 hoặc 1 để đảo chiều động cơ).
  • Chân PWM+ nối với chân pwm của vi điều khiển hoặc Arduno (PWM = 99% động cơ chạy max speed, PWM = 0% động cơ dừng).

Sơ đồ kết nối 2 / Kích mức thấp:

  • Chân DIR- nối với chân I/O của vi điều khiển hoặc Arduino (Mức 0 hoặc 1 để đảo chiều động cơ).
  • Chân PWM- nối với chân pwm của vi điều khiển hoặc Arduno (PWM = 1% động cơ chạy max speed, PWM = 100% động cơ dừng).

Ví dụ 1 / Kết nối theo sơ đồ 1 kích mức cao

Ví dụ này động cơ sẽ chạy thuận và chạy nghịch

HI216 Mạch cầu H Arduino
DIR- / PWM- GND
DIR+ D4
PWM+ D3
M1 / M2 Động cơ
VCC Nguồn cho động cơ (+)
GND Nguồn cho động cơ (-)

Code test 1

const int DIR = 4; //DIR+ 
const int PWM = 3; //PWM+
void setup() {
  pinMode(DIR, OUTPUT);
  pinMode(PWM, OUTPUT);
}
void loop() {
      Forward();
      delay(2000);
      Backward();
      delay(2000);
}
void Forward()
{
  digitalWrite(DIR, LOW);
  analogWrite(PWM, 254); //pwm 99%
}
void Backward()
{
  digitalWrite(DIR, HIGH);
  analogWrite(PWM, 254); //pwm 99%
}

Ví dụ 2 / Kết nối theo sơ đồ 2 kích mức thấp

Ví dụ này động cơ sẽ chạy thuận và chạy nghịch

HI216 Mạch cầu H Arduino
DIR+ / PWM+ 3.3/5V
DIR- D4
PWM- D3
M1 / M2 Động cơ
VCC Nguồn cho động cơ (+)
GND Nguồn cho động cơ (-)

Code test 2

const int DIR = 4; //DIR-
const int PWM = 3; //PWM-
void setup() {
  pinMode(DIR, OUTPUT);
  pinMode(PWM, OUTPUT);
}
void loop() {
  Forward();
  delay(2000);
  Backward();
  delay(2000);
}
void Forward()
{
  digitalWrite(DIR, LOW);
  analogWrite(PWM, 1); //pwm 1%
}
void Backward()
{
  digitalWrite(DIR, HIGH);
  analogWrite(PWM, 1); //pwm 1%
}

Ví dụ 3 / Kết nối theo sơ 1 đồ kích mức cao

Ví dụ sẽ sử dụng Serial Monitor để điều khiển động cơ. 

  • Nhập "1" động cơ dừng
  • Nhập "2" động cơ chạy thuận
  • Nhập "3" động cơ chạy nghịch
  • Nhập "+" Tăng tốc độ động cơ
  • Nhập "-" Giảm tốc độ động cơ

HI216 Mạch cầu H Arduino
DIR- / PWM- GND
DIR+ D4
PWM+ D3
M1 / M2 Động cơ
VCC Nguồn cho động cơ (+)
GND Nguồn cho động cơ (-)

Code test 3

#define BRAKE 0
#define CW    1
#define CCW   2
const int DIR = 4;
const int PWM = 3;
short usSpeed = 254;
unsigned short usMotor_Status = BRAKE;
void setup() {
  pinMode(DIR, OUTPUT);
  pinMode(PWM, OUTPUT);
  Serial.begin(9600);              // Initiates the serial to do the monitoring
  Serial.println(); //Print function list for user selection
  Serial.println("Enter number for control option:");
  Serial.println("1. STOP");
  Serial.println("2. FORWARD");
  Serial.println("3. REVERSE");
  Serial.println("+. INCREASE SPEED");
  Serial.println("-. DECREASE SPEED");
  Serial.println();
}
void loop() {
  char user_input;
  while (Serial.available()) {
    user_input = Serial.read();
    if (user_input == '1')
    {
      Stop();
    }
    else if (user_input == '2')
    {
      Forward();
    }
    else if (user_input == '3')
    {
      Backward();
    }
    else if (user_input == '+')
    {
      IncreaseSpeed();
    }
    else if (user_input == '-')
    {
      DecreaseSpeed();
    }
    else
    {
      Serial.println("Invalid option entered.");
    }
  }
}
void Stop()
{
  Serial.println("Stop");
  usMotor_Status = BRAKE;
  analogWrite(PWM, 0);
}
void Forward()
{
  Serial.println("Forward");
  usMotor_Status = CW;
  motorGo(usMotor_Status, usSpeed);
}
void Backward()
{
  Serial.println("Reverse");
  usMotor_Status = CCW;
  motorGo(usMotor_Status, usSpeed);
}
void IncreaseSpeed()
{
  usSpeed = usSpeed + 10;
  if (usSpeed > 255)
  {
    usSpeed = 254;
  }
  Serial.print("Speed +: ");
  Serial.println(usSpeed);
  motorGo(usMotor_Status, usSpeed);
}

void DecreaseSpeed()
{
  usSpeed = usSpeed - 10;
  if (usSpeed < 0)
  {
    usSpeed = 0;
  }
  Serial.print("Speed -: ");
  Serial.println(usSpeed);
  motorGo(usMotor_Status, usSpeed);
}

void motorGo(uint8_t direct, uint8_t pwm)         //Function that controls the variables: motor(0 ou 1), direction (cw ou ccw) e pwm (entra 0 e 255);
{

  if (direct == CW)
  {
    digitalWrite(DIR, LOW);
  }
  if (direct == CCW)
  {
    digitalWrite(DIR, HIGH);
  }
  analogWrite(PWM, pwm);
}

Video

 

Nhận xét

Mới hơn Cũ hơn