L9110H电机驱动模块 Arduino UNO 小白版
写这篇文章的前一天刚写完了一个A4950驱动的详细解析,然而刚好在做一个物联网花盆的时候,发现了这个驱动小水泵的L9110H电机驱动模块,想着简单研究一下,留个资料给学弟学妹们以后参考,然后我惊奇的发现,L9110H模块,和A4950驱动的操作方式一毛一样毛都不变,两个的区别就是L9110H没有外接的驱动电源,是一个直接接单片机的5v驱动器,然后我就把我上一篇发的代码直接烧了进去改了一下两个PWM的引脚号好用的一批,驱动一个小水泵,直流电机小风扇还是相当实用的
1.实验准备
1.Arduino UNO 单片机
2.直流减速电机
3.L9110H电机驱动模块
2.L9110H电机驱动模块简介
一个L9110H电机驱动模块可以驱动两个电机
L9110H驱动模块是通过比较两个控制引脚输出PWM的大小关系来确定电机方向的
两个控制引脚输出PWM的差值决定电机的转速
和A4950 驱动模块一样
3.接线表
L9110H引脚 | 对应引脚 |
---|---|
VCC | 单片机5V |
GND | 单片机GND |
A-1A | 控制A电机的1号PWM引脚 |
A-1B | 控制A电机的2号PWM引脚 |
B-1A | 控制B电机的1号PWM引脚 |
B-2A | 控制B电机的2号PWM引脚 |
MOTOR A | 电机A |
MOTOR B | 电机B |
###4. 程序代码 |
unsigned int Motor_A_1A=10; //控制A电机的PWM引脚 一定改成自己用的
unsigned int Motor_A_1B=11;
char Motor_Order; //定义一个字符型变量存储串口输入命令
void setup()
{
Serial.begin(9600); //打开串口
Serial.println("/*****开始驱动*****/");
pinMode(Motor_A_1A,OUTPUT); //设置两个驱动引脚为输出模式
pinMode(Motor_A_1B,OUTPUT);
}
void loop()
{
while(Serial.available()>0) //检测串口是否有命令
{
Motor_Order=Serial.read(); //将命令存储在变量中
switch(Motor_Order)
{
//发送字符1电机正转
case '1' : analogWrite(Motor_A_1A,250); analogWrite(Motor_A_1B,0);Serial.println("/*****电机正传*****/");break;
//发送字符2电机反转
case '2' : analogWrite(Motor_A_1A,0); analogWrite(Motor_A_1B,250);Serial.println("/*****电机反转*****/");break;
//发送其他字符电机停转
default : analogWrite(Motor_A_1A,0); analogWrite(Motor_A_1B,0);Serial.println("/*****停转****/");break;
}
}
}