Có một số sản phẩm hết hàng chưa được cập nhật và lỗi thông số kỹ thuật bị ẩn.Mong quý khách thông cảm !!!
Linh Kiện Điện Tử
THIẾT BỊ CƠ KHÍ

Mạch Điều Khiển Động Cơ Đôi A4950

Giá bán
50,000₫

Mạch Điều Khiển Động Cơ Đôi A4950 có thể điều khiển 2 động cơ tiến và lùi (ví dụ: xe thăng bằng chỉ cần 1 mạch).Cần có 4 chân PWM. (Nếu không cần đảo ngược thì chỉ cần 2 chân PWM.) Sử dụng đơn giản hơn nhiều so với L298.

Thông số kỹ thuật :

  • Điện áp điều khiển : 7.6~40VDC
  • Có bảo vệ giới hạn dòng điện, 2A (quá dòng sẽ không cắt nguồn mà chỉ giới hạn dòng điện đầu ra)

#define PWMWRITE analogWrite

 

class Motor

{

  public:

    // Motor objects require two PWM-capable pins

    Motor(byte driverPin1, byte driverPin2);

    // Run the motor with direction [0..1] and speed [0..255]

    void run(byte direction, byte speed);

    // Stop the motor. If optional brake value is 1 then motor is rapidly halted

    void stop(byte brake);

  private:

   

 

    byte mDriverPin1;

    byte mDriverPin2;

};

 

Motor::Motor(byte driverPin1, byte driverPin2)

:mDriverPin1(driverPin1), mDriverPin2(driverPin2)

{

  // Motor object constructor

  pinMode(mDriverPin1, OUTPUT);

  pinMode(mDriverPin2, OUTPUT);

  PWMWRITE(mDriverPin1, 0);

  PWMWRITE(mDriverPin2, 0);

}

 

void Motor::run(byte direction, byte speed)

{

  if (direction==0) {

    PWMWRITE(mDriverPin2, 0);

    PWMWRITE(mDriverPin1, speed);

  } else {

    PWMWRITE(mDriverPin1, 0);

    PWMWRITE(mDriverPin2, speed);

  }

}

 

void Motor::stop(byte brake=0)

{

  if (brake==0) {

    this->run(0,0);

  } else {

    PWMWRITE(mDriverPin1, 255);

    PWMWRITE(mDriverPin2, 255);

  }

}

 

// *************************************************

// ********** End of Motor Driver Code *************

// *************************************************

 

// defines

#define FOREVER 1

#define DELAY_MS delay

#define HARD_BRAKE 1

#define MAX_SPEED 255

#define DIR_CW 0

#define DIR_CCW 1

 

// create Motor objects

Motor mymotor(9,10);

 

void setup() {

  // put your setup code here, to run once:

  Serial.begin(115200);

 

}

 

void loop() {

  // put your main code here, to run repeatedly:

 

  while(FOREVER) {

    Serial.print("run motor at top speed for 5 sec...\n");

    mymotor.run(DIR_CW, MAX_SPEED);

    DELAY_MS(5000);

    Serial.print("stop motor for 5 sec...\n");

    mymotor.stop();

    DELAY_MS(5000);

    Serial.print("reverse motor at top speed for 5 sec...\n");

    mymotor.run(DIR_CCW, MAX_SPEED);

    DELAY_MS(5000);

    Serial.print("hard brake motor for 5 sec...\n");

    mymotor.stop(HARD_BRAKE);

    DELAY_MS(5000);

    Serial.print("run motor at half speed for 5 sec...\n");

    mymotor.run(DIR_CW, 128);

    DELAY_MS(5000);

  }

 

}

Quý khách tham khảo sơ đồ tại đây

Sản phẩm liên quan
Facebook Zalo Youtube