motor eichen

This commit is contained in:
Bernd Reuther 2021-03-04 15:28:43 +01:00
parent 08bea5ab6a
commit cda9bffd2a
2 changed files with 41 additions and 18 deletions

View File

@ -26,6 +26,8 @@ m2 = motor('kippen', m2_a1, m2_b1, m2_a2, m2_b2, m2_t1, m2_t2, m2_te, m2_es, 1,
m1.start()
m2.start()
m1.eichen()
#m1.vorwaerts(10)
#m1.stop()
#m2.stop()

View File

@ -58,9 +58,16 @@ class motor():
self.pwm3.stop()
self.pwm4.stop()
def vorwaerts(self, schritte):
def vorwaerts(self, schritte, eichen=0):
ges_schritte = schritte * 8
if eichen == 1:
temp_t1 = self.te
temp_t2 = self.te
else:
temp_t1 = self.t1
temp_t2 = self.t2
if self.halten == 1:
self.pwm4.ChangeFrequency(self.freq)
@ -71,14 +78,14 @@ class motor():
self.pos += 1
temp_pos = i * 8
einzelschritt(self.pwm1, 1, ges_schritte, temp_pos, self.t1, self.t2)
einzelschritt(self.pwm4, 0, ges_schritte, temp_pos + 1, self.t1, self.t2)
einzelschritt(self.pwm2, 1, ges_schritte, temp_pos + 2, self.t1, self.t2)
einzelschritt(self.pwm1, 0, ges_schritte, temp_pos + 3, self.t1, self.t2)
einzelschritt(self.pwm3, 1, ges_schritte, temp_pos + 4, self.t1, self.t2)
einzelschritt(self.pwm2, 0, ges_schritte, temp_pos + 5, self.t1, self.t2)
einzelschritt(self.pwm4, 1, ges_schritte, temp_pos + 6, self.t1, self.t2)
einzelschritt(self.pwm3, 0, ges_schritte, temp_pos + 7, self.t1, self.t2)
einzelschritt(self.pwm1, 1, ges_schritte, temp_pos, temp_t1, temp_t2)
einzelschritt(self.pwm4, 0, ges_schritte, temp_pos + 1, temp_t1, temp_t2)
einzelschritt(self.pwm2, 1, ges_schritte, temp_pos + 2, temp_t1, temp_t2)
einzelschritt(self.pwm1, 0, ges_schritte, temp_pos + 3, temp_t1, temp_t2)
einzelschritt(self.pwm3, 1, ges_schritte, temp_pos + 4, temp_t1, temp_t2)
einzelschritt(self.pwm2, 0, ges_schritte, temp_pos + 5, temp_t1, temp_t2)
einzelschritt(self.pwm4, 1, ges_schritte, temp_pos + 6, temp_t1, temp_t2)
einzelschritt(self.pwm3, 0, ges_schritte, temp_pos + 7, temp_t1, temp_t2)
if self.halten == 1:
self.pwm4.ChangeFrequency(self.freq_halten)
@ -86,9 +93,16 @@ class motor():
else:
self.pwm4.ChangeDutyCycle(0)
def rueckwaerts(self, schritte):
def rueckwaerts(self, schritte, eichen=0):
ges_schritte = schritte * 8
if eichen == 1:
temp_t1 = self.te
temp_t2 = self.te
else:
temp_t1 = self.t1
temp_t2 = self.t2
if self.halten == 1:
self.pwm4.ChangeFrequency(self.freq)
@ -100,14 +114,14 @@ class motor():
self.pos -= 1
temp_pos = i * 8
einzelschritt(self.pwm3, 1, ges_schritte, temp_pos, self.t1, self.t2)
einzelschritt(self.pwm4, 0, ges_schritte, temp_pos + 1, self.t1, self.t2)
einzelschritt(self.pwm2, 1, ges_schritte, temp_pos + 2, self.t1, self.t2)
einzelschritt(self.pwm3, 0, ges_schritte, temp_pos + 3, self.t1, self.t2)
einzelschritt(self.pwm1, 1, ges_schritte, temp_pos + 4, self.t1, self.t2)
einzelschritt(self.pwm2, 0, ges_schritte, temp_pos + 5, self.t1, self.t2)
einzelschritt(self.pwm4, 1, ges_schritte, temp_pos + 6, self.t1, self.t2)
einzelschritt(self.pwm1, 0, ges_schritte, temp_pos + 7, self.t1, self.t2)
einzelschritt(self.pwm3, 1, ges_schritte, temp_pos, temp_t1, temp_t2)
einzelschritt(self.pwm4, 0, ges_schritte, temp_pos + 1, temp_t1, temp_t2)
einzelschritt(self.pwm2, 1, ges_schritte, temp_pos + 2, temp_t1, temp_t2)
einzelschritt(self.pwm3, 0, ges_schritte, temp_pos + 3, temp_t1, temp_t2)
einzelschritt(self.pwm1, 1, ges_schritte, temp_pos + 4, temp_t1, temp_t2)
einzelschritt(self.pwm2, 0, ges_schritte, temp_pos + 5, temp_t1, temp_t2)
einzelschritt(self.pwm4, 1, ges_schritte, temp_pos + 6, temp_t1, temp_t2)
einzelschritt(self.pwm1, 0, ges_schritte, temp_pos + 7, temp_t1, temp_t2)
if self.halten == 1:
self.pwm4.ChangeFrequency(self.freq_halten)
@ -115,6 +129,13 @@ class motor():
else:
self.pwm4.ChangeDutyCycle(0)
def eichen(self):
if GPIO.input(self.endschalter) == GPIO.LOW:
self.vorwaerts(10, 1)
self.rueckwaerts(self.schritte_max, 1)
self.pos = 0
def einzelschritt(spule, status, ges_schritte, schritt, t1, t2):
w = (schritt * 100 / (ges_schritte - 1)) * 1.8
s = round(math.sin(math.radians(w)), 2)