C51--小车——L9110s电机驱动模块

电机模块开发:

L9110s:

接通VCC,GND 模块电源指示灯亮。

IA1输入高电平,IA1输入低电平,【OA1 OB1】电机正转;
IA1输入低电平,IA1输入高电平,【OA1 OB1】电机反转;
IA2输入高电平,IA2输入低电平,【OA2 OB2】电机正转;
IA2输入低电平,IA2输入高电平,【OA2 OB2】电机反转;

在这里插入图片描述

与C51连接:

在这里插入图片描述

验证正反转:

#include "reg52.h"
#include "intrins.h"


//右轮
sbit RightCon1A = P3^2;
sbit RightCon1B = P3^3;

//左轮
sbit LeftCon1A = P3^4;
sbit LeftCon1B = P3^5;

void Delay1000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 8;
	j = 1;
	k = 243;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}


//前进
void go_Forward()
{
	RightCon1A = 0;
	RightCon1B = 1;
	
	LeftCon1A = 0;
	LeftCon1B = 1;
}

//后退
void go_Back()
{
	RightCon1A = 1;
	RightCon1B = 0;
	
	LeftCon1A = 1;
	LeftCon1B = 0;
}

//左转
void go_Left()
{
	RightCon1A = 0;
	RightCon1B = 1;
	
	LeftCon1A = 0;
	LeftCon1B = 0;
}

//右转
void go_Right()
{
	RightCon1A = 0;
	RightCon1B = 0;
	
	LeftCon1A = 0;
	LeftCon1B = 1;
}

void main()
{
	while(1){
		go_Forward();
		Delay1000ms();
		Delay1000ms();
		go_Back();
		Delay1000ms();
		Delay1000ms();
		go_Left();
		Delay1000ms();
		Delay1000ms();
		go_Right();
		Delay1000ms();
		Delay1000ms();
	}
}
淘宝买了几个4g舵机,3.2一个,价格便宜,但是不带电路板和摆臂。 样子如下图,带5根线,2根电机线,3根电位器线。 拆开后,大概就是这个样子,可见棕色和白色两根线接电位器的两端,黄线接电位器中间。 我这里用的图,都是淘宝卖家拍的,下面的拆开图,是6g舵机的,但是接线是一样的。 万用表测量了一下,这个电位器是4.9K的,也就当5K吧。 这个舵机是萝莉群的群友推荐的,希望我能做个舵机的电路板出来驱动它。 一直拖了一个多星期吧,硬件电路是几天前就搭好了,今天下午大概写了一下代码,本来想用一下PID算法,显得高大上一点,不过后来看了看,这种东西比较简单,单纯的比例算法就可以了,不需要PID这么复杂。 思路大概解释一下。 电路板用了3个元件,一个STC15W408AS DIP16的单片机。 这个单片机带10位精度的ADC,刚好测量舵机里面电位器的位置。 然后电机驱动用的L9110 DIP8。 L9110最大电流0.8A,对于4g舵机的小空心杯电机来说,足够了。 而且L9110的电路也非常简单。 最后一个元件就是加了个47uf的电容。如果是改贴片元件,大概10uf和0.1uf两个贴片电容就差不多了。 L9110的基本应用电路如下: STC15W408AS DIP16 的引脚图如下: 顺便说一下,我用直插元件和洞洞板搭了一个驱动电路,没有采用贴片元件和打板子。 因为重点还是单片机的电路设计和编程,而不是做一个比较完美的成品。 4g舵机驱动板程序部分截图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值