如何在树莓派Pico上编程使用步进电机?

发布时间:2024-01-05  

步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机,每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比,因此,步进电动机又称脉冲电动机。


步进电机通常需要搭配一个步进电机驱动模块(也叫步进电机驱动器)来工作。步进电机驱动器是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速和定位的目的。


四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度,驱动器相当于开关的组合单元。通过上位机的脉冲信号有顺序给电机相序通电使电机转动。


本文使用到的是 28BJY-48 型步进电机。


硬件连接


首先需要将步进电机和电机驱动板连起来,直接将电机的白色插头插入驱动板上的白色插槽(注意卡扣方向)即可。


再将驱动板和树莓派 Pico 连接起来,接线如下:

电机驱动板的 + 引脚接 Pico 的 VSYS。

电机驱动板的 – 引脚接 Pico 的 GND。

电机驱动板的 IN1 引脚接 Pico 的 GP18。

电机驱动板的 IN2 引脚接 Pico 的 GP19。

电机驱动板的 IN3 引脚接 Pico 的 GP20。

电机驱动板的 IN4 引脚接 Pico 的 GP21。


编程


将下面的代码保存在 Pico 的根目录,命名为 main.py。


from machine import Pin

import utime

 

# 步进驱动模块的引脚初始化

in1 = Pin(18,Pin.OUT)

in2 = Pin(19,Pin.OUT)

in3 = Pin(20,Pin.OUT)

in4 = Pin(21,Pin.OUT)

 

ROUND_VALUE = 509

delay = 1

 

# 四相八拍步进电机的顺序值

STEP_VALUE = [

    [0,0,0,1],

    [0,0,1,1],

    [0,0,1,0],

    [0,1,1,0],

    [0,1,0,0],

    [1,1,0,0],

    [1,0,0,0],

    [1,0,0,1],

]

 

# 重置引脚输出低电平

def reset():

    in1(0)

    in2(0)

    in3(0)

    in4(0)

 

# 单步顺时针转动,count 为步数值,可为负数(逆时针)

def step_run(count):

    direction = 1

    if count < 0:

        direction = -1

        count = -count

    for x in range(count):

        for bit in STEP_VALUE[::direction]:

            in1(bit[0])

            in2(bit[1])

            in3(bit[2])

            in4(bit[3])

            utime.sleep_ms(delay)

 

# 以指定角度顺时针转动,a 为角度值,可为负数(逆时针)

def step_angle(a):

    step_run(int(ROUND_VALUE * a / 360))

 

# 重置驱动板

reset()

 

# 逆时针转 90 度

step_angle(-90)

 

# 以单步方式持续顺时针转动

while True:

    step_run(1)

程序中定义了这款步进电机的驱动方式和参数。有两种方法驱动它:step_angle(角度) 或 step_run(步数)。


运行之后,可以看到步进电机先逆时针转动 90 度,再顺时钟持续运行下去。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    样是开发人员的最爱,其搭载Linux系统,开源性较强,支持多种高级编程语言开发,使它经常被应用于各种测试和应用环境。现有的树莓派计算模块已经发展到CM4阶段,在算力上有了很大的提升,可以......
    stm32单片机用什么语言 编程 stm32各种型号;  stm32单片机用什么语言编程   STM32单片机可以使用多种编程语言进行编程,包括C语言、汇编语言以及基于图形化编程的工具,如ST的......
    2的Pigweed SDK,此外未来还会支持Rust语言。 目前Pico 2已经开始在英国销售,价格为5美元。 在日本,Switch Science和KSY计划在不久的将来开始销售。对于产能,树莓派......
    来说比前一代快两倍以上,制造商表示,该设备采用的内部硅片提供了迄今为止树莓派性能最佳的性能。如果你在购物,应该尽量购买最新的版本。 什么是?树莓派在初学者DIY爱好者中经常与Arduino进行比较,但这......
    公司继续闯关上市。这两日树莓派CEO Eben Upton表示,树莓派已经做好在伦敦交易所上市的准备,而此前树莓派因全球芯片短缺和上市环境不佳,2021年上市计划被推迟,彼时估值超过5亿美元。 那么,新品有什么......
    支持C、C#、MATLAB、Python等语言绑定的跨平台应用程序编程接口(API)。 软件可以在树莓派上本地运行,也可以通过有线或无线网络连接进行远程控制。模块的5V电源通过树莓派接口连接器提供,不需......
    树莓派边缘AI相机在Embedded World 2024上亮相;树莓派在 2024 年嵌入式世界大会上展示了一款支持 AI 的相机模块,该模块与索尼合作,具有模块上处理功能,并与树莓派......
    万美元。 树莓派是由英国Raspberry Pi Foundation(树莓派基金会)发布的一种被称为“单板计算机”的微型电脑,是为教育目的而开发的。树莓派基金会的创始人Eban Upton想制造一种即便是小孩子也能轻松编程......
    是由英国Raspberry Pi Foundation(树莓派基金会)发布的一种被称为“单板计算机”的微型电脑,是为教育目的而开发的。树莓派基金会的创始人Eban Upton想制造一种即便是小孩子也能轻松编程......
    输入/输出(IIO)框架访问软件控制,提供各种调试和开发实用程序,以及支持C、C#、MATLAB、Python等语言绑定的跨平台应用程序编程接口(API)。 软件可以在树莓派上本地运行,也可......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>