java 开发软件,java应用开发平台

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: