本站改版新增arduino频道

Micropython
Arduino

micropython esp32 控制步进电机


 步进电机原理

1654228596739.png

ABCD为定子,上面绕有线圈,为四相,与之相对应的对面四个定子上面也有线圈,相对应的两个定子之间线圈是相互连接形成一个绕组。


单四拍模式:


如当前为初始状态,B相导通,对0的吸引力最大。


接下来B断开,C导通,1和C相之间夹角最小被吸引过去,被吸引过去之前2和D相之间夹角为1和C相之间夹角的2倍,1被吸引到C以后,2和D之间最近,此时0和A之间的夹角为2和D之间的2倍,


接下来C断开,D导通,2被吸引到D,此时0距离A最近


D断开A导通,0被吸引到A相,至此一个周期完成


双拍工作模式:


每次给两个线圈通电,通过改变通电的线圈从而使步进电机转动 五线四相步进电机:在双拍工作方式下,线圈的通电方式依次是:AB、BC、CD、DA 即单拍工作方式下,线圈的通电方式依次是:A、B、C、D


单双拍(八拍工作方式)


单双拍工作方式就是单拍工作方式和双拍工作方式交替进行。 五线四相步进电机:A、AB、B、BC、C、CD、D、DA;


驱动步进电机(ULN2003芯片)

1654228596739.png

控制步进电机

from machine import Pin
import time


a = Pin(15, Pin.OUT)
b = Pin(2, Pin.OUT)
c = Pin(4, Pin.OUT)
d = Pin(16, Pin.OUT)

a.value(0)
b.value(0)
c.value(0)
d.value(0)

delay_time_ms = 2


while True:
    a.value(1)
    b.value(0)
    c.value(0)
    d.value(0)
    time.sleep_ms(delay_time_ms)
    
    a.value(0)
    b.value(1)
    c.value(0)
    d.value(0)
    time.sleep_ms(delay_time_ms)
    
    a.value(0)
    b.value(0)
    c.value(1)
    d.value(0)
    time.sleep_ms(delay_time_ms)
    
    a.value(0)
    b.value(0)
    c.value(0)
    d.value(1)
    time.sleep_ms(delay_time_ms)



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 ESP56.com All Rights Reserved
晋ICP备14006235号-22 晋公网安备14108102001165号

执行时间: 0.010662078857422 seconds