Arduino 和 TB6612FNG 驱动直流电机

TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速与方向,输入电压在3V~12V,因此在集成化、小型化的电机控制系统中,它可以作为理想的电机驱动器件。

Arduino 和 TB6612FNG 驱动直流电机

简介

TB6612FNG每通道输出最高1.2 A的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲);
4种电机控制模式:正转/反转/制动/停止;
PWM支持频率高达100 kHz;
待机状态;
片内低压检测电路与热停机保护电路;
工作温度:-20~85℃;
SSOP24小型贴片封装。

引脚

引脚 定义
VM 驱动电压输入端(3-12V)
VCC 逻辑电平输入端(2.7-5.5)
GND 电源地端
STBY 正常工作/待机状态控制输入端
PWMA PWM信号输入端
AIN1、AIN2 电机A控制模式输入端
A01、A02 电机A驱动输入端
PWMB PWM信号输入端
BIN1、BIN2 电机B控制模式输入端
B01、B02 电机B驱动输出端

Arduino接线

Arduino 和 TB6612FNG 驱动直流电机

示例代码


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

/*
 * 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
 */
void move(int motor, int speed, int direction){
   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(){
   digitalWrite(STBY, LOW); 
}

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);
}
- 本文为本站原创文章,转载请保留出处。
- 文章链接:https://www.xpstem.com/article/2000353

07-01   阅读(1)   评论(0)
 标签: maker Arduino TB6612

涨知识
舵机

舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。在高档遥控玩具,如飞机、潜艇模型,遥控机器人中已经得到了普遍应用。

评论:
相关文章
Arduino-ESP32 Preferences库使用详解

Arduino-ESP32项目提供的Preferences库是一个专为ESP32设计的非易失性存储解决方案,它替代了传统的Arduino EEPROM库,提供了更强大、更可靠的数据存储功能。




Arduino 上使用红外遥控器

日常生活中我们会接触到各式各样的遥控器,电视机、空调、机顶盒等都有专用的遥控器,很多智能手机也在软硬件上对红外遥控做了支持,可以集中遥控绝大部分家用电器。本篇介绍红外遥控相关原理及应用,通过红外遥控器控制 Uno 板载 LED 灯。


Arduino 驱动 8×8 LED点阵屏

LED点阵屏由LED发光二极管组成,通过控制LED亮灭来显示文字、图片、动画、视频等,被广泛应用于公共场合做信息展示,如广告屏、公告牌等。


ESP32 使用DAC模拟输出完成两路呼吸灯

ESP32的DAC函数可以实现真正的模拟输出。


在 ESP32 上使用 LEDC (PWM)

ESP32 没有Arduino输出 PWM 的 analogWrite(pin, value) 方法,取而代之的 ESP32 有一个 LEDC 来实现PWM功能。


《米思齐实战手册:Arduino图形化编程指南》

本书由少年创学院联合创始人兼院长、知名创客程晨撰写,以Arduino作为硬件平台,介绍了使用米思齐(Mixly)软件进行程序开发的方法。


Arduino UNO R4 WiFi 官方介绍文档

本文档作为UNO R4 WiFi的技术概览,您将找到一系列资源和指南链接,帮助您开始下一个项目。


OneButton: 用于使用单个按钮进行多用途输入的Arduino库

Arduino OneButton库是一个用于简化按钮操作的库,它可以轻松地处理按钮的单击、双击和长按等操作。适用于Arduino开发板以及ESP32等其他基于Arduino的开发板。

搜索
小鹏STEM教研服务

专属教研服务系统,助您构建STEM课程体系,打造一站式教学环境。