首页 > 编程知识 正文

arduino pwm控制电机,arduino控制直流伺服电机

时间:2023-05-04 14:29:12 阅读:20022 作者:3450

TB6612FNG电机驱动器模块

该模块相对于传统的L298N有效率地大幅提高,体积上也大幅减少,在额定范围内芯片几乎不发热。

TB6612FNG每个通道输出最高1.2 A的连续驱动电流,启动峰值电流为2A/3.2 A (连续脉冲/单脉冲);

4种电机控制模式:正转/反转/制动/停止;

PWM支持频率高达100 kHz;

待机状态;

片上低压检测电路和热停止保护电路;

工作温度:-20~85;

SSOP24小型修补软件包。

本文参考任意门

3358 bildr.org/2012/04/TB 6612 fng-arduino /

下面对端子a控制信号输入----PWMAVM----电机驱动电压输入端子(4.5V-15V )进行说明

a电机输入端子2----ain2VCC----逻辑电平输入端子(2.7V-5.5V ) ) )。

a电机输入端子1----ain1gnd-----接地

正常动作/待机状态控制端----stbyao1----a电机输出端1

b电机输入端子1----DFDYC1ao2----a电机输出端子2

b电机输入端子2----DFDYC2BO2----B电机输出端子2

b控制信号输入端子----pwmbo1----b电机输出端子1

接地-----接地接地

接线方式

程序实现

程序包下载: https://u 16460183.CT file.com/fs/16460183-295784301

//motoraconnectedbetweena 01 anda 02//motorbconnectedbetweenb 01 andb 02 int stby=10; //standby//Motor Aint PWMA=3; //Speed control int AIN1=9; //Directionint AIN2=8; //Direction//Motor Bint PWMB=5; //Speed controlint dfdyc1=11; //Directionint dfdyc2=12; //directionvoidsetup((pinmode ) stby,OUTPUT ); pinmode(PWMA,输出); pinmode(ain1,输出); pinmode(ain2,输出); pinmode(pwmb,OUTPUT ); pinmode(DFDYC1,OUTPUT ); pinmode(DFDYC2、OUTPUT ); }void loop () move ) ) 1,255,1 ); //motor 1,全速度,左移动(2,255,1 ); //motor 2,全速度,左延迟(1000; //go for 1第一次停止(; //stopdelay(250; //holdfor 250 msuntilmoveagainmove (1,128,0 ); //motor 1,半速度,right move (2,128,0 ); //motor 2,half speed,rightdelay(1000; stop (; 戴尔(250; }voidmove(intmotor、int speed、int direction )//movespecificmotoratspeedanddirection//motor : for B1 fora////speed //disablestandbybooleaninpin1=low; 布尔输入2=high; if(direction==1) { inPin1=HIGH; inPin2=LOW; }if(motor==1)数字写入(ain1,inPin1); 数字写入(Ain 2、inPin2); 模拟写入(pwma,speed ); } else {数字写入(DFD YC 1,inPin1); 数字写入(DFD YC 2,inPin2); 模拟写入(pwmb,speed ); }}void stop ()//enablestandbydigitalwrite ) ) stby,LOW ); }

实例效应通电,测量电机a和b的输出电压,基本相同,电压差正负0.03V,输出稳定。

完全可以解决L9110S和L298N两个系统的电机输出电压误差大而无法直线行走的问题。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。