-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_bipolar_class.py
101 lines (83 loc) · 2.16 KB
/
test_bipolar_class.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/usr/bin/env python3
#
# Raspberry Pi Dual Stepper Motor test bipolar_class.py
# Author : Bob Rathbone
# $Id: test_bipolar_class.py,v 1.7 2023/05/23 08:13:00 bob Exp $
# Site : http://www.bobrathbone.com
#
# Hardware 28BYJ-48 Stepper motor (Bipolar) - Dual motor A and B test
# Motor driven by a ULN2803A Eight Darlington outputs Driver Chip
# Uses the bipolar_class.py low level driver
import os
import time
import atexit
from bipolar_class import Motor
motora = Motor(17,18,27,22)
motorb = Motor(4,25,24,23)
minute = 60
motora.init()
motorb.init()
def finish():
motora.stop()
motorb.stop()
return
atexit.register(finish)
motora.lock()
motorb.lock()
print ("revolution = " + str(Motor.REVOLUTION))
print (str(motora.goto(200)))
time.sleep(2)
print (str(motora.goto(100)))
time.sleep(2)
print (str(motora.goto(900)))
time.sleep(2)
speed = Motor.NORMAL
# Uncomment for setting step type
#motora.setHalfStepDrive()
#motora.setFullStepDrive()
#motora.setWaveDrive()
count = 30
while count > 0:
print ("Motor A Clockwise step")
motora.turn(Motor.STEP, Motor.CLOCKWISE)
count -= 1
time.sleep(0.1)
count = 30
while count > 0:
print ("Motor A Anticlockwise step")
motora.turn(Motor.STEP*2, Motor.ANTICLOCKWISE)
count -= 1
time.sleep(0.1)
while True:
print ("Motor A Clockwise")
t1 = time.time()
motora.turn(1*Motor.REVOLUTION, Motor.CLOCKWISE)
t2 = time.time()
print ("time " + str(t2-t1))
motora.lock()
time.sleep(1)
print ("Motor A Anti-Clockwise")
t1 = time.time()
motora.turn(1*Motor.REVOLUTION, Motor.ANTICLOCKWISE)
t2 = time.time()
print ("time " + str(t2-t1))
motora.lock()
time.sleep(1)
print ("Motor B Clockwise")
t1 = time.time()
motorb.turn(1*Motor.REVOLUTION, Motor.CLOCKWISE)
t2 = time.time()
print ("time " + str(t2-t1))
print ("Motor B Anti-Clockwise")
t1 = time.time()
motorb.turn(1*Motor.REVOLUTION, Motor.ANTICLOCKWISE)
t2 = time.time()
print ("time " + str(t2-t1))
motorb.lock()
time.sleep(5)
if speed == Motor.NORMAL:
speed = Motor.SLOW
else:
speed = Motor.NORMAL
motora.setSpeed(speed)
# End of program