java 开发软件,java应用开发平台
一. TurnipBit开发委员会的筹备工作
下载一根数据线。
一台微型步进电机(28BYJ-48)
一块步进电机驱动板(ULN2003APG)
一个光敏传感器
TurnipBit扩展板
连接到网络的计算机
在线视觉程序员
二、步进电机的介绍
本实验使用28BYJ-48四相八拍电机,电压DC5V~12V。
24BYJ48名称的含义:
24:电机外径24毫米
b:步进电机中步进字的拼音首字母
y:永磁钟勇字符的拼音首字母
j:汉语拼音的减速声母。
48:四个阶段和八步
实际图片
操作原理
步进电机是一种开环控制电机,将电脉冲信号转换成角位移或线位移。它是现代数字程序控制系统的主要执行元件,应用广泛。在无过载情况下,电机的转速和停止位置只取决于脉冲信号的频率和脉冲数,不受负载变化的影响。当步进驱动器接收到一个脉冲信号时,它驱动步进电机按设定的方向旋转一个固定的角度,这个角度称为“步距角”。它以固定的角度一步一步地旋转。可以通过控制脉冲的个数来控制角位移,从而达到精确定位的目的。同时可以通过控制脉冲频率来控制电机的速度和加速度,从而达到调速的目的。
28BYJ-48步进电机参数表
上表中启动频率550 P.P.S(每秒脉冲数),也就是说为了正常启动,单片机至少需要给出每秒550个步进脉冲。那么每一拍的持续时间就是1S/5501.8ms,那么该拍的刷新率应该在1.8ms左右。
驱动原理
当控制脉冲连续发送到电机时,电机将连续旋转。每个脉冲信号改变步进电机绕组的一相或两相通电状态一次,对应的转子就会转动一定的角度(步距角)。当通电状态变化完成一个周期时,转子转动一个螺距。
四相步进电机可以在不同的通电模式下运行。常见的通电模式有:
拍(单相绕组通电):A-B-C-D-A…
双拍(两相绕组通电):AB-BC-CD-DA-AB-.
帕特:A-AB-B-BC-C-CD-D-DA-A…
三。设备的连接
1.将步进电机的白色连接器插入驱动板的相应位置。
2.TurnipBit对应插入扩展板,记住有LED灯和按键的一面朝向扩展板上有引脚的一面。
3.将驱动器板与TurnipBit扩展板连接。接线图如下:
4.将光敏传感器与TurnipBit扩展板连接。接线图如下:
第四,开始编程。
1.之前的教程一直使用拖放式可视化编程。这种方法可以快速让零基础的朋友上手,但是在实际项目或者工作中,还是要直接打代码。今天给大家介绍一下TurnipBit的可视化程序员的另一个功能——代码编程。
看了之前的编程伙伴,不难发现,打开编辑器首先进入的是代码程序员界面。如下图:
2.接下来,通过代码实现步进电机的控制和光照数据的采集。
光线较弱时,步进电机顺时针旋转一周,模拟关闭窗帘的操作;
当光线变强时,步进电机逆时针旋转一周,模拟打开窗帘的操作;
完整的源代码:
#在此添加Python代码
来自microbit进口公司*
pin _ All=[引脚5、引脚8、引脚11、引脚12]
#速度(ms)值越大,速度越慢。最小值为1.8毫秒
速度=5
Step _ round=512 #旋转一周的周期(360度)
angle _ per _ round=stepper _ round/360 # 1度旋转周期
Is=False #表示窗帘的状态True:打开False:关闭。
def SteperWriteData(数据):
计数=0
对于i in数据:
Pin_All[count]。书写_数字(一)
计数=1
def SteperFrontTurn():
全局速度
SteperWriteData([1,1,0,0])
睡眠(速度)
SteperWriteData([0,1,1,0])
睡眠(速度)
SteperWriteData([0,0,1,1])
睡眠(速度)
SteperWriteData([1,0,0,1])
睡眠(速度)
def SteperBackTurn():
全局速度
SteperWriteData([1,1,0,0])
睡眠(速度)
SteperWriteData([1,0,0,1])
睡眠(速度)
SteperWriteData([0,0,1,1])
睡眠(速度)
SteperWriteData([0,1,1,0])
睡眠(速度)
def SteperStop():
SteperWriteData([0,0,0,0])
def SteperRun(角度):
全局角度每轮
val=ANGLE_PER_ROUND*abs(角度)
如果(角度0):
对于范围内的I(0,val):
SteperFrontTurn()
否则:
对于范围内的I(0,val):
SteperBackTurn()
步进停止()
虽然正确:
light=pin0.read_analog()#读取光敏传感器传递过来的模拟量数据
#数值越大说明光照度越小
if light400:
如果isOpen:
isOpen=False
SteperRun(-360)#光照小于设定的值,关闭窗帘
否则:
如果isOpen==False:
isOpen=True
SteperRun(360)#光照大于设定的值,打开窗帘
* 本文作者:博达斯特,转载注明来自弗里布。计算机输出缩微胶片
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。