Hallo, ist noch einer da ???
Hallo Leute,
heute habe ich mal endlich ein bisschen Zeit für meinen Roboterarm gefunden. Jetzt habe ich auch mal gleich das neue Festspannungsnetzgerät ,was ich mir bestellt hatte ,ausprobiert und :es funktioniert !!!
Jetzt kann ich mich endlich mit dem genauen Positionieren beschäftigen.Keine Sorge, das Video kommt dann auch bald.
Doch noch eine Frage zum Netzgerät : Darf ich es auch ohne Last an der Steckdose haben ,oder geht es dann kaputt ????
Und : dürfen die Schrittmotortreiber den Motorstrom bekommen ,auch wenn sie nicht angeschaltet sind ,oder gehen diese dann kaputt ????
P.s. ich würde mich über Antworten sehr freuen ,da ich dann auch schneller weiterkommen würde ...
Hallo, ist noch einer da ???
Sollte dem Netzgerät nichts ausmachen.
Eventuell regelt es erst sauber wenn eine bestimmte Grundlast dran hängt??
Wir wollen das Video!
Wir wollen das Video!!
Wir wollen das Video!!!
Und wie ist es damit ?? :
Und : dürfen die Schrittmotortreiber den Motorstrom bekommen ,auch wenn sie nicht angeschaltet sind ,oder gehen diese dann kaputt ????
Das ist kein Problem -
Manche Treiber mögen es nicht wenn sie bestromt werden und "kein" Schrittmotor ist angeschlossen!
Wenn die Schrittmotortreiber den Motorstrom bekommen, wenn wenn sie ausgeschaltet sind, dann ist irgendwas faul. Normalerweise müssten die Transistoren geschlossen sein, wenn zwar Motorspannung anliegt aber die Steuerung nicht aktiv ist, demnach kann dann auch kein Strom fließen. Die Motoren dürfen aber auch im Stillstand ihren Strom bekommen, dafür wird er ja schließlich geregelt![]()
Also , ich meinte damit , ob es schlimm sei ,wenn die L298-L297 Schrittmotortreiber den Strom vom Motornetzgerät bekommen ,aber nicht an die Logikspannung (5V) angeschlossen sind.
Diese Frage war aber eigentlich ziemlich dumm von mir ,da ich ja wissen müsste ,dass ohne die Logikspannung die Treiber nicht durchschalten können.![]()
Ist ja dann doch ein wenig anders - die Problematik.
Es gibt Treiber wo genau diese Vorgehensweise zum sofortigem Tot der Selbigen führt!
Also besser immer erst Logik Spannung dann Motorspannung - zum Auschalten genau andersherum - erst Motorspannung abschalten dann erst die Logikspannung.
Geändert von dussel07 (01.02.2013 um 14:45 Uhr)
gehört da mein Treiber dazu ??Es gibt Treiber wo genau diese Vorgehensweise zum sofortigem Tot der Selbigen führt!
Jetzt endlich was zum Roboterarm : Heute werde ich es vielleicht noch schaffen ein Video zu machen. (Es sind nur zwei Achsen die bis jetzt funktionieren, da ich nur zwei Treiber besitze ,aber wenigstens schon mal etwas).
Stell euch das aber nicht zu schön vor, denn er ist erstens noch lange nicht fertig und zweitens gibt es noch viel zu verbessern.
Doch noch eine Frage zum Programm : Ich möchte nach jedem Start eine Ref-Fahrt machen und habe auch dafür Endschalter angebaut.
Bloß habe ich es noch nicht geschafft ,dass die Motoren dann aufhören zu laufen ,wenn der Schalter berührt wird ???
Woran liegt es??? Verwendet habe ich Pulldown - Widerstände.
Code:$regfile = "m32def.dat" $crystal = 16000000 $baud = 9600 $hwstack = 32 $swstack = 32 $framesize = 32 Config Portd.7 = Output Config Portd.2 = Output Config Portd.3 = Output Config Portd.6 = Output Config Portc.2 = Output Config Portc.3 = Output Config Portc.4 = Output Config Portb.3 = Input 'Endschalter Config Portb.4 = Input 'Endschalter Sw1 Alias Portb.3 Sw2 Alias Portb.4 Dim I As Integer Wait 1 Sound Portd.7 , 400 , 450 Sound Portd.7 , 400 , 250 Sound Portd.7 , 400 , 450 Wait 5 Portd.3 = 1 Do 'Endschalterposition anfahren Portd.6 = 0 : Waitus 1 : Portd.6 = 1 Waitms 10 If Sw1 = 1 Then Exit Do Loop Portc.3 = 0 Do 'Endschalterposition anfahren Portc.4 = 0 : Waitus 1 : Portc.4 = 1 Waitms 10 If Sw2 = 1 Then Exit Do Loop Do 'Hauptprogramm Sound Portd.7 , 400 , 450 Sound Portd.7 , 400 , 250 Sound Portd.7 , 400 , 450 Wait 2 Loop End
![]()
![]()
Du generierst die Steuerpulse für die Schrittmotoren mit wait-Anweisungen? Zum Testen mag das noch gehen, aber zum anständigen Betrieb würde ich da eher mit Timern arbeiten, dann sind die Schrittzeiten komplett unabhängig vom Hauptprogramm und daher recht stabil. So, wie du es hast, wird zwischen den Schritten die wait-Anweisung ausgeführt, wodurch keine anderen Berechnungen in dieser Zeit möglich sind.
Wegen dem nicht Reagieren auf die Endschalter: schon mal probiert, ob die auch wirklich richtig schalten? Also mal etwas Hardwaredebugging machen: 1-2 LEDs mit Widerstand an einen Ausgang stöpseln und den Zustand der Schaltereingänge dort nochmal ausgeben lassen. Ganz davon ab würde ich die Schleife eher so abbrechen:
Ansonsten müsste der Code aber eigentlich funktionieren, daher tippe ich mal auf einen Verdrahtungsfehler.Code:Do 'Endschalterposition anfahren Portc.4 = 0 : Waitus 1 : Portc.4 = 1 Waitms 10 Loop Until Sw2 = 1
Lesezeichen