ich baue gerade einen automatischen Anschlag für unsere Kappsäge mit einem Schrittmotor im Halbschritt.
Nun habe ich 2 Fragen bezüglich der Programmierung in Python.
1. Habe ich eine Funktion gefunden womit ich die einzelnen Schritte initialisieren kann, die ich später einfach wieder aufrufen kann. Nur ich weiß nicht wie die heißt bzw. wie man diese nennt
z.b.
Code: Alles auswählen
def schritt8():
Code: Alles auswählen
i = 1
While 1:
Schritt i ()
…
…
i = i +1
Die 2. Frage hat folgenden Hintergrund nach dem Grundstellung fahren ist der Motor z.b. bei schritt 6 aber mein Programm fängt ja immer bei schritt 1 an somit zuckt der Motor Kurtz und bei momentan nur 96 Schritte / Umdrehung macht das schon ein paar 10.el mm aus.
Hier mal mein kompletter Code:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wiringpi2 as wiringpi
import signal
import sys
from time import sleep
wiringpi.wiringPiSetup()
wiringpi.pinMode(1, 1)
wiringpi.pinMode(2, 1)
wiringpi.pinMode(3, 1)
wiringpi.pinMode(4, 1)
wiringpi.digitalWrite(1, 0)
wiringpi.digitalWrite(2, 0)
wiringpi.digitalWrite(3, 0)
wiringpi.digitalWrite(4, 0)
def schritt1():
wiringpi.digitalWrite(1,1)
wiringpi.digitalWrite(2,0)
wiringpi.digitalWrite(3,1)
wiringpi.digitalWrite(4,0)
sleep(geschwindigkeit)
def schritt2():
wiringpi.digitalWrite(1,1)
wiringpi.digitalWrite(2,0)
wiringpi.digitalWrite(3,0)
wiringpi.digitalWrite(4,0)
sleep(geschwindigkeit)
def schritt3():
wiringpi.digitalWrite(1,1)
wiringpi.digitalWrite(2,0)
wiringpi.digitalWrite(3,0)
wiringpi.digitalWrite(4,1)
sleep(geschwindigkeit)
def schritt4():
wiringpi.digitalWrite(1,0)
wiringpi.digitalWrite(2,0)
wiringpi.digitalWrite(3,0)
wiringpi.digitalWrite(4,1)
sleep(geschwindigkeit)
def schritt5():
wiringpi.digitalWrite(1,0)
wiringpi.digitalWrite(2,1)
wiringpi.digitalWrite(3,0)
wiringpi.digitalWrite(4,1)
sleep(geschwindigkeit)
def schritt6():
wiringpi.digitalWrite(1,0)
wiringpi.digitalWrite(2,1)
wiringpi.digitalWrite(3,0)
wiringpi.digitalWrite(4,0)
sleep(geschwindigkeit)
def schritt7():
wiringpi.digitalWrite(1,0)
wiringpi.digitalWrite(2,1)
wiringpi.digitalWrite(3,1)
wiringpi.digitalWrite(4,0)
sleep(geschwindigkeit)
def schritt8():
wiringpi.digitalWrite(1,0)
wiringpi.digitalWrite(2,0)
wiringpi.digitalWrite(3,1)
wiringpi.digitalWrite(4,0)
sleep(geschwindigkeit)
def allesaus():
wiringpi.digitalWrite(1,0)
wiringpi.digitalWrite(2,0)
wiringpi.digitalWrite(3,0)
wiringpi.digitalWrite(4,0)
print "alles aus"
sleep(0.1)
try:
mmzufahren = input("Wieviele mm sollen gefahren werden? ")
geschwindigkeit = 0.02
mmproschritt = 0.726875
mmgefahren = 0
halbschritt = mmproschritt / 2
while 1:
schritt1()
mmgefahren = mmgefahren + mmproschritt
print mmgefahren , "mm"
if mmgefahren + halbschritt >= mmzufahren:
brake
schritt2()
mmgefahren = mmgefahren + mmproschritt
print mmgefahren , "mm"
if mmgefahren + halbschritt >= mmzufahren:
brake
schritt3()
mmgefahren = mmgefahren + mmproschritt
print mmgefahren , "mm"
if mmgefahren + halbschritt >= mmzufahren:
brake
schritt4()
mmgefahren = mmgefahren + mmproschritt
print mmgefahren , "mm"
if mmgefahren + halbschritt >= mmzufahren:
brake
schritt5()
mmgefahren = mmgefahren + mmproschritt
print mmgefahren , "mm"
if mmgefahren + halbschritt >= mmzufahren:
brake
schritt6()
mmgefahren = mmgefahren + mmproschritt
print mmgefahren , "mm"
if mmgefahren + halbschritt >= mmzufahren:
brake
schritt7()
mmgefahren = mmgefahren + mmproschritt
print mmgefahren , "mm"
if mmgefahren + halbschritt >= mmzufahren:
brake
schritt8()
mmgefahren = mmgefahren + mmproschritt
print mmgefahren , "mm"
if mmgefahren + halbschritt >= mmzufahren:
brake
except:
allesaus()
sys.exit
Heiko