传感器实验——控制电机

小伙伴们,玩过4驱车吗?4驱车上动力是谁?没玩过也不要紧,电机听过没有~今天我们来电机。

直流电机(direct currentmachine)是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。


电机实验

所选设备

MR开发板
在这里插入图片描述

12V直流电机

在这里插入图片描述

使用说明

说明:使用此电机要注意你买的板子有没有电机驱动。ZTMR板带电机驱动电路,所以不需要外接电机驱动板。为了让大家了解,我截了一个图。下图是电机驱动板L298N。买开发板的时候问清楚带不带电机驱动哦。如果不带驱动,小车没办法按照想法运行的。

在这里插入图片描述

引脚说明
ZTMR电机驱动电路。注意,这里的引脚不能改哦。
在这里插入图片描述
原理图比价复杂,专业人能看懂,我们只需要看下面引脚说明即可。下图是开发板标号对应的内部引脚。

引脚 说明
B10 只有为高电平时,马达才会转
B8 PWM控制A电机
B9 PWM控制B电机
B12 A0
B13 A1
B14 B0
B15 B1

看到没,这里还要用到PWM,我们来复习一下 ↓

PWM(脉宽调制模块)基本用法

from pyb import Pin,Timer

p = Pin('X1')
ti = Timer(2,freq=1000)              #X1是定时器2的CH1
ch = ti.channel(1,Timer.PWM,pin=p)   #设置PWM引脚
ch.pluse_width_precent(50)           #设置PWM输出占空比

脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。

查看ZTMR原理图可知

引脚 定时器Timer 对应通道CH
B8 TIM10 CH1
TIM4 CH3
B9 TIM4 CH4
TIM11 CH1

示例代码:

#main.py -- put your code here!

from pyb import Pin,Timer

cs = Pin('C8',Pin.OUT_PP)    #C8设置为输出引脚输出高电平
cs(1)

ch1 =None
ch2 =None     #初始化
#A电机正反转
p1 = Pin('B8') 
tim1 = Timer(10, freq=120)                  
ch1 = tim1.channel(1, Timer.PWM, pin=p1)
ch1.pulse_width_percent(100)
A0 = Pin('B12',Pin.OUT_PP)
A1 = Pin('B13',Pin.OUT_PP)
A0(1)       #A0值:0      0       1
A1(0)       #A1值:0      1       0
			#状态: 停    状态1正转   状态2反转 
			#不能同时为1
#正反转需要看位置调换

把电机插入A电机接口,注意的是电机红黑线不影响使用(非电地引脚怎么接都行不会烧板子)只影响电机正反转状态。我i们玩四驱车的时候有时候把电池接反,车会倒着跑,差不多就这个意思。
在这里插入图片描述
有兴趣的朋友可以自己试试B电机。我们后面用它来做案例。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐