microbit步进电机驱动(ULN2003)

micro:bit编程、教学、展示
STEM
回复
头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

microbit步进电机驱动(ULN2003)

#1

帖子 shaoziyang »

原帖作者 chpczx  发表于 2019-7-8 

Code: Select all

from microbit import *

# 关闭microbit的显示器,以释放被其占用的引脚
display.off()

# 转一圈需要509步多一点
FULL_ROTATION = 509

# 全步励磁
HALF_STEP = [
    [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],
]

# 半步励磁
FULL_STEP = [
    [1, 0, 0, 1],
    [0, 0, 1, 1],
    [0, 1, 1, 0],
    [1, 1, 0, 0]
]


class Stepper():
    def __init__(self, mode, pin_1, pin_2, pin_3, pin_4, delay=5):
   
        self.mode = mode
        self.pin_1 = pin_1
        self.pin_2 = pin_2
        self.pin_3 = pin_3
        self.pin_4 = pin_4
        
        self.delay = delay
        
        self.reset()

    def step(self, stepCount, direction=1):
        """ direction = -1 时顺时针转动"""
        for x in range(stepCount):
            for bit in self.mode[::direction]:
                self.pin_1.write_digital(bit[0])
                self.pin_2.write_digital(bit[1])
                self.pin_3.write_digital(bit[2])
                self.pin_4.write_digital(bit[3])
                sleep(self.delay)
               
        self.reset()
               
    def reset(self):
        self.pin_1.write_digital(0)
        self.pin_2.write_digital(0)
        self.pin_3.write_digital(0)
        self.pin_4.write_digital(0)

if __name__ == '__main__':
    s1 = Stepper(FULL_STEP, pin16, pin15, pin14, pin13, delay=5)
    for i in range(3):
        s1.step(FULL_ROTATION/2)
        s1.step(509/2,-1)

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

Re: microbit步进电机驱动(ULN2003)

#2

帖子 shaoziyang »

步进电机28BYJ-48简单说明
全步励磁——二相厉磁顺序表(四步)
[1,1,0,0] → [0,1,1,0] → [0,0,1,1] → [1,0,0,1]
半步励磁——一二相励磁顺序表(八步)
[1,0,0,0] →[1,1,0,0] → [0,1,0,0] → [0,1,1,0] →
[0,0,1,0] →[0,0,1,1] → [0,0,0,1] → [1,0,0,1]
电路连接实物图:
实物清单:
28BYJ-48步进电机(上面粘了个小旗,显示其转动)
电源:(包括锂电池,面包板,面包板稳压电源)
ULN2003: 步进电机驱动板
Micro:bit 及扩展板:
连线:
步进电机4根线连电机驱动板
电源2根线连到电机驱动板电源
扩展板上Pin13,Pin14,Pin15,Pin16分别连接电机驱动板上的In4,In3,In2,In1
#                     pin16     -> INP1
#                     pin15     -> INP2
#                     pin14     -> INP3
#                     pin13     -> INP4

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章