اطلاعیه

Collapse
No announcement yet.

درایور دو کاناله موتور tb6612fng

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    درایور دو کاناله موتور tb6612fng

    درایور دو کاناله موتور tb6612fng

    ماژول درایور موتور TB6612FNG توانایی راه اندازی دو موتور DC در جریان ثابت 1.2A ( پیک جریان 3.2A) را دارد. دو سیگنال ورودی ( IN1 و IN2) می تواند برای کنترل موتور در یکی از چهار مد CW ، CCW ، short-brake و stop استفاده شود. خروجی دو موتور این ماژول (A و B) قابلیت کنترل بصورت مجزا را دارد. سرعت هر موتور توسط یک سیگنال ورودی PWM با فرکانسی تا 100KHz کنترل میشود. پین STBY باید در حالت High باشد تا موتور از حالت standby خارج شود. ولتاژ تغذیه منطقی (VCC) می تواند در محدوده 2.7 تا 5 ولت باشد و همچنین ولتاژ تغذیه موتور (VM) تا ماکزمیم ولتاژ 15 ولت محدود است. جریان خروجی این ماژول به میزان 1.2A در هر کانال ( یا تا 3.2A برای یک سیگنال پالس کوتاه) است. این ماژول با برد های آردینو کاملا سازگار است.

    ویژگی ها
    ولتاژ تغذیه : VM=15V MAX و VCC=2.7-5.5V
    جریان خروجی: متوسط 1.2A و پیک جریان 3.2A
    با قابلیت کنترل standby برای صرفه جویی در مصرف انرژی
    دارای مدهای کنترلی CW/CCW/short brake/stop موتور
    دارای مدار داخلی shutdown حرارتی و سنجش ولتاژ پایین
    دارای فیلتر خازنی بر روی هر دو خط تغذیه

    مثال
    مثال زیر کنترل دو موتور DC از طریق ماژول TB6612FNG متصل به آردینو را نشان می دهد.
    کد HTML:
    //motor A connected between A01 and A02
    //motor B connected between B01 and B02
    
    int STBY = 10; //standby
    
    //Motor A
    int PWMA = 3; //Speed control 
    int AIN1 = 9; //Direction
    int AIN2 = 8; //Direction
    
    //Motor B
    int PWMB = 5; //Speed control
    int BIN1 = 11; //Direction
    int BIN2 = 12; //Direction
    
    void setup(){
      pinMode(STBY, OUTPUT);
    
      pinMode(PWMA, OUTPUT);
      pinMode(AIN1, OUTPUT);
      pinMode(AIN2, OUTPUT);
    
      pinMode(PWMB, OUTPUT);
      pinMode(BIN1, OUTPUT);
      pinMode(BIN2, OUTPUT);
    }
    
    void loop(){
      move(1, 255, 1); //motor 1, full speed, left
      move(2, 255, 1); //motor 2, full speed, left
    
      delay(1000); //go for 1 second
      stop(); //stop
      delay(250); //hold for 250ms until move again
    
      move(1, 128, 0); //motor 1, half speed, right
      move(2, 128, 0); //motor 2, half speed, right
    
      delay(1000);
      stop();
      delay(250);
    }
    
    
    void move(int motor, int speed, int direction){
    //Move specific motor at speed and direction
    //motor: 0 for B 1 for A
    //speed: 0 is off, and 255 is full speed
    //direction: 0 clockwise, 1 counter-clockwise
    
      digitalWrite(STBY, HIGH); //disable standby
    
      boolean inPin1 = LOW;
      boolean inPin2 = HIGH;
    
      if(direction == 1){
        inPin1 = HIGH;
        inPin2 = LOW;
      }
    
      if(motor == 1){
        digitalWrite(AIN1, inPin1);
        digitalWrite(AIN2, inPin2);
        analogWrite(PWMA, speed);
      }else{
        digitalWrite(BIN1, inPin1);
        digitalWrite(BIN2, inPin2);
        analogWrite(PWMB, speed);
      }
    }
    
    void stop(){
    //enable standby  
      digitalWrite(STBY, LOW); 
    }
    لینک دانلود پروژه
    جدیدترین ویرایش توسط ali_ezzati; ۱۰:۵۱ ۱۳۹۵/۰۷/۱۹.
لطفا صبر کنید...
X