TPYBoard v102 驱动28BYJ-48步进电机

时间:2021-10-17 05:08:46

TPYBoard v102 驱动28BYJ-48步进电机

实验目的

了解步进电机的工作原理

学习步进电机的驱动方法

实验器材

TPYBoard v102 1块

微型步进电机(28BYJ-48) 1个

步进电机驱动板(ULN2003APG) 1块

micro USB数据线 1条

杜邦线 若干

步进电机的介绍

 

 

本次实验采用的是28BYJ-48 四相八拍电机,电压DC5V~12V。

24BYJ48名称的含义:

24:电机外径24mm

B:步进电机中步字的拼音首字母

Y:永磁中永字的拼音首字母

J:减速的减字拼音首字母

48:四相8步

实物图

TPYBoard v102 驱动28BYJ-48步进电机

工作原理

步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度, 称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

28BYJ-48 步进电机参数表

TPYBoard v102 驱动28BYJ-48步进电机

上表中启动频率≥550 P.P.S(每秒脉冲数),意思是要想正常启动,需要单片机每秒至少给出550个步进脉冲。那么每一节拍需要持续的时间就是1S/550≈1.8ms,所以控制节拍刷新的速率应大约1.8ms。

驱动原理

当连续不断的给电机发送控制脉冲时,电机就会不断的转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,对应转子就会转过一定的角度(步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。

四相步进电机可以在不同的通电方式下运行,常见的通电方式:

四拍(单相绕组通电):A-B-C-D-A…

双四拍(双相绕组通电):AB-BC-CD-DA-AB-...

八拍: A-AB-B-BC-C-CD-D-DA-A…

模拟效果图

TPYBoard v102 驱动28BYJ-48步进电机

硬件连接

 

将步进电机白色接头插到驱动板对应的座子上即可。

TPYBoard v102驱动板与驱动板的接线图,如下:

TPYBoard v102

ULN2003APG驱动板

X1

IN1

X2

IN2

X3

IN3

X4

IN4

VIN

5V正极

GND

负极

TPYBoard v102 驱动28BYJ-48步进电机

程序源码如下:

# main.py -- put your code here!

import pyb

from pyb import Pin

Pin_All=[Pin(p,Pin.OUT_PP) for p in ['X1','X2','X3','X4']]

#转速(ms) 数值越大转速越慢 最小值1.8ms

speed=2

STEPER_ROUND=512 #转动一圈(360度)的周期

ANGLE_PER_ROUND=STEPER_ROUND/360 #转动1度的周期

print('ANGLE_PER_ROUND:',ANGLE_PER_ROUND)

def SteperWriteData(data):

count=0

for i in data:

Pin_All[count].value(i)

count+=1

def SteperFrontTurn():

global speed

SteperWriteData([1,1,0,0])

pyb.delay(speed)

SteperWriteData([0,1,1,0])

pyb.delay(speed)

SteperWriteData([0,0,1,1])

pyb.delay(speed)

SteperWriteData([1,0,0,1])

pyb.delay(speed)

def SteperBackTurn():

global speed

SteperWriteData([1,1,0,0])

pyb.delay(speed)

SteperWriteData([1,0,0,1])

pyb.delay(speed)

SteperWriteData([0,0,1,1])

pyb.delay(speed)

SteperWriteData([0,1,1,0])

pyb.delay(speed)

def SteperStop():

SteperWriteData([0,0,0,0])

def SteperRun(angle):

global ANGLE_PER_ROUND

val=ANGLE_PER_ROUND*abs(angle)

if(angle>0):

for i in range(0,val):

SteperFrontTurn()

else:

for i in range(0,val):

SteperBackTurn()

angle = 0

SteperStop()

if __name__=='__main__':

SteperRun(180)

SteperRun(-180)

TPYBoard v102 驱动28BYJ-48步进电机的更多相关文章

  1. [Micropython]TPYBoard v102 DIY照相机

    摄像头(CAMERA或WEBCAM)又称为电脑相机.电脑眼.电子眼等,是一种视频输入设备,被广泛的运用于视频会议,安防系统 .图像采集系统. 环境监控 .工业现场过程控制 等方面.本实验用TPYBoa ...

  2. [TPYBoard - Micropython 之会python就能做硬件 9] 五分种学会用TPYBoard V102 制作避障小车(升级版)

    转载请注明:@小五义 http://www.cnblogs.com/xiao* 欢迎加入讨论群 64770604 感谢山东萝卜电子科技公司授权   一.实验器材 1.TPYboard V102板 ...

  3. [MicroPython]TPYBoard v102炫彩跑马灯WS2812B

    一.实验目的 了解ws2812b的工作原理 学习ws2812b的驱动方法 二.实验器材 TPYBoard v102 1块 ws2812b RGB-Ring-8 1个 micro USB数据线 1条 杜 ...

  4. MicroPython教程之TPYBoard v102 CAN总线通信

    0x00前言 CAN是控制器局域网络(ControllerAreaNetwork,CAN)的简称,是ISO国际标准化的串行通信协议.CAN总线结构简单,只需2根线与外部相连,并且内部集成了错误探测和管 ...

  5. MicroPython之TPYBoard v102开发板控制OLED显示中文

    转载请以链接形式注明文章来源,公众号:MicroPython玩家汇 0x00前言 之前看到一篇文章是关于TPYBoardv102控制OLED屏显示的,看到之后就想尝试一下使用OLED屏来显示中文.最近 ...

  6. MicroPython开发板:TPYBoard v102 播放音乐实例

    0x00前言 前段时间看到TPYBoard的技术交流群(群号:157816561,)里有人问关于TPYBoard播放音乐的问题.最近抽空看了一下文档介绍,着手做了个实验.更多MicroPython的教 ...

  7. TPYBoard v102 DIY照相机(视频和制作流程)

    前段时间的帖子,利用TPYBoard v102做的DIY照相机,周末实物终于做出来了,加了两个按键模块和一个5110,做的有点糙啊----望大家勿怪,哈哈哈.拍出来图片还算清晰,串口摄像头模块用的30 ...

  8. Micropython TPYBoard v102 温湿度短信通知器(基于SIM900A模块)

    前言 前段时间看了追龙2,感受就是如果你是冲着追龙1来看追龙2的话,劝你还是不要看了,因为追龙2跟追龙1压根没什么联系,给我的感觉就像是看拆弹专家似的,估计追龙2这个名字就是随便蹭蹭追龙1的热度来的. ...

  9. MicroPython TPYBoard v102 无线红外遥控舵机(基于红外解/编码模块)

    转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 红外解码/编码模块介绍 模块上搭载了红外接收头.红外 ...

随机推荐

  1. 分分钟用上C#中的委托和事件

    每一个初学C#的程序猿,在刚刚碰到委托和事件的概念时,估计都是望而却步,茫然摸不到头脑的.百度一搜,关于概念介绍的文章大把大把的,当然也不乏深入浅出的好文章.可看完这些文章,大多数新手,估计也只是信心 ...

  2. weblogic10.3.6 自动启动服务后停止的解决方案

    windows部署weblogic后,需要手动开启weblogic管理员服务器,即Start Admin Server for Weblogic Server Domain,不过这样的话每次重启或者不 ...

  3. 安装grunt

    1,npm install -g grunt-cli 2,npm install grunt --save 作为项目的依赖安装 这两步必不可少

  4. Eclipse 导入 Hadoop 源码

    1.准备工作 jdk: eclipse: Maven: libprotoc :https://developers.google.com/protocol-buffers/ hadoop:http:/ ...

  5. ligerUI_入门_001_设置文本能否被编辑、事件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. Wpf再次学习,分享给入门的朋友

    一.WPF介绍 先说下WPF,她的简称是Windows Presentation Foundation,注意到Presentation这个单词了吧,展现的意思,后面那个是基础,展现基础,WPF是一种展 ...

  7. LA 3263 &lpar;平面图的欧拉定理&rpar; That Nice Euler Circuit

    题意: 平面上有n个端点的一笔画,最后一个端点与第一个端点重合,即所给图案是闭合曲线.求这些线段将平面分成多少部分. 分析: 平面图中欧拉定理:设平面的顶点数.边数和面数分别为V.E和F.则 V+F- ...

  8. JAXB - Annotations&comma; Controlling Element Selection&colon; XmlAccessorType&comma; XmlTransient

    If JAXB binds a class to XML, then, by default, all public members will be bound, i.e., public gette ...

  9. 语义SLAM研究现状总结

    博客转载自:https://blog.csdn.net/xiaoxiaowenqiang/article/details/81051010 原文标题:深度学习结合SLAM 语义slam 语义分割 端到 ...

  10. lumion室内渲染二6&period;3

    地板材质不够好,点击地面材质,编辑材质把视察调到没有,让地砖的凹凸变小.调大光泽和反射率. 如果找不自己想要的材质可以自己做材质.在浏览器中搜索大理石瓷砖贴图,保存到桌面.放到PS裁剪.裁剪为正方形的 ...