舵机与普通电机的相关知识

这次主要学习舵机和普通电机的控制及相关基础知识

1、PWM信号的原理

PWM(Pulse Width Modulation)——通常翻译为脉冲宽度调制技术,通过对一系列脉冲信号的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。PWM控制技术在逆变电路中应用最广,应用的逆变电路绝大部分是PWM型,PWM控制技术正是有赖于在逆变电路中的应用,才确定了它在电力电子技术中的重要地位。

例如下图,其实PWM就是占空比不同的方波,即按一定的频率不断输出高电平、低电平,同时,可以在一个周期内调整高电平的持续时间(占空比)。

说到底,其实是因为电脑只能输出0和1两种逻辑情况,所以采用这种形式来模拟输出。例如我想输出0.5,那就让电脑在一个周期内一半时间输出高电平1,一段时间内输出低电平0,则平均之后就是0.5。这就是等效电压的概念。再例如,ARDUINO高电平如果是5V,我想获得3.7V的电压,在PWM波的频率不变的情况下,可以令74%周期输出5V高电平,剩下26%周期时间输出低电平,加权平均后,只要频率够快,则可以等效为3.7V的电压。

不过ARDUINO中,提供了一个控制舵机的标准库,servo.h。可以令舵机控制的代码变得很傻瓜化。

2、360度舵机与180度舵机的控制

按惯例首先介绍下舵机。

舵机其实是伺服电机的一种别称。通常我们所说的舵机是指可以根据信号转动至指定角度的电机,例如180度舵机。因为这个特性,所以往往被用于很多遥控飞机、遥控给汽车、机器人等领域,用于控制它们的方向和位置。这也是它被称为舵机的原因。

还有一种舵机,称为360度舵机,它和一般舵机的区别是:如果给一个信号,普通舵机是转动至某个角度,而360度舵机则是按这个信号对应的速度进行匀速转动。看起来似乎和普通的电机差不多,但不同点在于,360度舵机由内部的电路控制,运转速度稳定。

那么舵机如何控制呢?

从图上可见,舵机有三根接线,通常红线接VCC(正极),黑色或棕色接GND(负极),黄色或者白色则是PWM信号控制线。我们将电源线接至电源(面包板)的正负极,信号线则接至ARDUINO NANO的D3接收PWM信号。

当D3输出一个PWM信号时,舵机就会根据信号转动指定角度或者以指定速度旋转(360度舵机)。通常,舵机需要一个20ms左右的脉冲,该脉冲信号中,高电平部分为0.5ms至2.5ms范围。当脉冲中高电平为1.5ms时,舵机将转动至90度位置,或者静止不动(360度舵机),当脉冲大于1.5ms时,舵机转向180度方向或者正转,小于1.5ms时,转向0度方向或者反转。

通常,我们可以调用servo.h来控制舵机。该库主要有以下几个控制函数。

控制舵机可以分为4步:

(1)声明使用servo.h;

(2)给舵机起个名字;

(3)定义舵机信号线连接ARDUINO哪个针脚;

(4)用write或者writeMicroseconds函数来设置PWM波的脉冲持续时间。

另外,还可以用read函数来读取舵机当前角度或者转速,用attached来判断舵机是否正确接线,用detach函数来分离舵机连接(这个命令暂时不是特别熟悉)。

接下来我们来接线试验一下,由于我只有360度舵机,因此来尝试下用可变电阻来控制舵机转速。

接线图如下,将舵机的电源线接在面包板的正负极上,信号线接D4;可变电阻的左右两个针脚分别接ARDUINO的3.3V和GND脚,中间脚接A3。

代码如下

实测如下

3、L298N驱动模块介绍

L298N是一款接受高电压的电机驱动器,可以驱动2个直流电机和1个步进电机。L298N可对电机进行直接控制,通过主控芯片的I/O输入对其控制电平进行设定,就可为电机进行正转反转驱动,操作简单、稳定性好,可以满足直流电机的大电流驱动条件。

由于L298N芯片工作中热量较大,因此需要使用金属散热片。具体各个元器件及接线端子如下图所示。

(1)电源:电源正极支持4.5V~46V电压。当输入电压不大于12V时,板载5V使能采用跳线帽短接,5V接口可以提供5V电压,可用于ARDUINO的供电。当大于12V时,建议拔掉跳线帽,采用5V接口给L298N的芯片单独供电,以保护元器件。另外需要注意的一点:L298N和ARDUINO需要共接地,否则电机可能不会转动。

(2)输出:L298N采用双H桥,因此通过通道A和通道B与直流减速电机连接,可以同时控制两个电机的正反转。

(3)输入:使能A(ENA)接口和使能B(ENB)接口用跳线帽短接时,为高电平,则对应的通道有效。另外输入1~4接口为逻辑输入口,通过控制对应的高低电平,令通道AB连接的直流电机正、反转。具体控制方式及状态如下表:

当使能A或B为高电平,对应的输入1~2和3~4同时为高电平或低电平时,电机处于制动停止状态。当对使能A或B输入PWM信号时,可以对电机转速进行调速。

4、直流电机控制试验

(1)摇杆控制电机

因为后续想制作一个遥控小车,因此准备用一个双轴摇杆对车辆的前进、后退和转弯进行控制。双轴摇杆一般采用两个10K的可变电阻来表示X、Y轴的变化幅度。当摇杆方向变化时,两个可变电阻的阻值也发生变化。当无外力扭动摇杆时,摇杆处于居中位置。

(2)旋钮电阻调速

因为遥控小车是准备给家里小孩玩的,因为年纪尚小,希望能够控制小车的转速,通过一个旋钮电阻,控制L298N使能A、B的PWM波来进行调速。

(3)代码实现

代码部分其实比较基础。

首先读取可变电阻的信号,用于调整电机转速;其次读取摇杆的X/Y轴阻值信号(VRX/VRY),用于控制电机正反转。因为需要输出,所以阻值信号均映射至0~255区间。

输出部分,val为根据可变电阻生成的pwm信号,从使能端口输入,以控制电机转速;in1~in4根据摇杆的X/Y轴阻值情况在调整高低电平。

(4)实际接线

程序烧录完成后,利用3节3.7V的18650锂电池给L298N和arduino nano供电。电源正极接L298N的12V端子,负极接GND端子,因为arduino nano的vin引脚需要接7~12V电压,因此也接电压正极,GND接L298N的GND端子。注意L298N与arduino nano的引脚连接时,使能端子(ENA/ENB)需要接支持pwm输出的引脚。

(5)实测视频

5、下一阶段学习内容

下一阶段计划对nRF24L01无线接发讯号进行学习。

发表回复

相关推荐

建設泰安師范附屬智慧校園,打造泰城西部教育新高地!

​“讓孩子們在傢門口享受優質教育,實現幼兒教育不出社區,義務教育不過千米。”近年來,泰安旅遊經濟開發區高度重視教育工作,...

· 21秒前

為何中國堅持引進輕木,一年竄7米的世界最輕樹的種植秘密!

新的種植技術正在引起全球范圍內的轟動!在中國,一種名為“世界最輕樹”的植物正迅速嶄露頭角,引起瞭無數矚目的目光。這種樹...

· 1分钟前

故事我国又收回一块领土,被占70年,现在3560人全部加入中国籍!

在《辛丑条约》签订之后,清朝政府不得不在内外压力下接连退让。在这种近乎屈辱的割地赔款中,清政府付出了沉重的代价,包括 ...

· 5分钟前

孕吐吐血怎麼辦 | 妊娠劇吐視頻會診

沈女士,33歲,這次打算生二胎,此次是她第二次懷孕。第一次懷孕的時候她吐得非常嚴重!基本上一直吐到生。6年前她剖腹產生瞭...

· 8分钟前

河流、河口和三角洲

什么是河流、河口和三角洲? 陆地上通过降雨、降雪和地下水产生的绝大多数淡水最终到达海洋。这些水通过溪流和河流向下流动 ...

· 8分钟前