MicroPython 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步

实物图


工作原理

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

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驱动板与驱动板的接线图,如下:

程序源码如下:

# 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)

原文地址:https://www.cnblogs.com/xxosu/p/9378659.html

时间: 2024-08-01 10:30:43

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

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

转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 感谢山东萝卜电子科技公司授权 一.实验器材 1.TPYboard V102板  1块 2.电机驱动模块L298N   1个 3.电机 2块 4.小车底盘 1个 5.超声波模块 1个 6.舵机 1个 7.SG90舵机支架 1个 8.超声波云台支架 1个 二.超声波模块 1.什么是超声波模块 超声波传感器是利用超声波的特性研制而成的传感器, 它是通过传送一个超声波(远高于人的听觉范

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

转载请以链接形式注明文章来源,公众号:MicroPython玩家汇 0x00前言 之前看到一篇文章是关于TPYBoardv102控制OLED屏显示的,看到之后就想尝试一下使用OLED屏来显示中文.最近利用空余时间搞定了这个实验,特此将实验过程及源码分享出来,方便以后使用. 0x01实验器材 TPYBoardv102开发板1块 0.96寸OLED显示屏(ssd1306)1块 杜邦线若干 0x02前期准备 1. 首先我们先来看一下,之前参考的OLED显示字符的文章. http://docs.tpyb

TPYBoard v102的GPIO使用用法

引脚介绍 引脚是控制I/O引脚的基本对象.它可以设置引脚输入.输出等的方式或者获取和设置数字逻辑电平的.对于模拟控制引脚,请参见ADC类.TPYBoard一共有68根针脚,26个3.3V,VIN接口:30个通用IO口,包括2个SPI接口,2个CAN接口,2个I2C接口,5个USART接口,14个12bitADC接口,2个DAC引脚,并且比官方PYBoard增加了SWD接口,更加完美. TPYboard所有的引脚都定义为pyb.Pin.board.Name: y1=pyb.Pin.board.Y1

MicroPython TPYBoard v201 简易家庭气象站的实现过程

前言 上一篇教程中我们实现了一个简单网页的显示.本篇呢,增加上温湿.时间等信息的展示,实现一个简单的家庭气象站. TPYBoard v201实物图: 准备工作 硬件&工具 TPYBoard v201 开发板 1块 TPYBoard v201 网络参数配置的工具 路由器.电脑.网线等 DHT11温湿度模块 1个 DS3231时钟模块 1个 知识储备 了解基本的TCP.HTTP通信协议等相关的知识.不知道的可自行去百度,相关教程很多. 掌握DHT11温湿度模块的使用方法. 掌握DS3231时钟模块的

TPYBoard V102:能跑Python的stm32开发板

近来micropython语言做硬件编程很火,随之而来的就开始带动着支持micropython语言编程的开发板也开始火的发烫,今天小编就来和大家介绍一款很经典的micropython开发板-TPYBoardV102开发板. 一.板载硬件资源介绍 按照惯例先来介绍一个这块开发板的硬件组成,个人感觉这个开发板的性能还是属于相当不错的,下面详细介绍一下. TPYBoardV102是以遵照MIT许可的MicroPython为基础,由TurnipSmart公司制作的一款MicroPython开发板,它基于

Micropython TPYBoard 控制无线加速度小车

现在无线控制已经成为了电子科学领域的主流,这次就来教大家做一个主流中的主流--无线控制的小车,先给大家看一下最终的成品演示视频: ://v.youku.com/v_show/id_XMTY2MzAzNDAzNg==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2     首先介绍一下需要用到的材料: TPYBoardv102开发板两块    小车底盘一个    LORA无线模块两块    充电宝一个    9014三极管两个(为什么用到它呢,后面再说). 在

Micropython TPYBoard I2C的用法

先看看基本用法: from pyb import I2C i2c = I2C(1)                         # create on bus 1 i2c = I2C(1, I2C.MASTER)             # create and init as a master i2c.init(I2C.MASTER, baudrate=20000) # init as a master i2c.init(I2C.SLAVE, addr=0x42)       # init

[TPYBoard - Micropython之会python就能做硬件 8] 学习使用蓝牙模块及舵机

转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.实验器材 1.TPYboard V102板  一块 2.电机驱动模块L298N   一个 3.电机 两块 4.小车底盘 5.超声波模块 6.5110屏  一块 二.超声波模块 1.什么是超声波模块 超声波传感器是利用超声波的特性研制而成的传感器, 它是通过传送一个超声波(远高于人的听觉范围)和提供一个对应于爆裂回声返回到传感器所需时间的输出脉冲来工作的.超声波传感器在非接触

基于MicroPython的TPYBoard超声波倒车雷达系统

前言 倒车雷达是汽车驻车或者倒车时的安全辅助装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员驻车.倒车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷.倒车雷达主要由超声波传感器.控制器和显示器或蜂鸣器等组成,如下: 关注公众号"MicroPython玩家汇"可获取完整源代码 超声波传感器:主要功能是发出和接收超声波信号,然后将信号输入到主机里面,通过显示设备显示出来. 控制器:对信号进行处理,计算出车体与障碍物之间的距离及方位.