Hallo, ich habe folgenden Schrittmotor von Nanotec(bipolar): http://de.nanotec.com/downloads/pdf/3333/ST4118S1404%20Layout1%20(1).pdf dazu auch einen Treiber von Nanotec: http://de.nanotec.com/schrittmotorsteuerung_smci35.html http://de.nanotec.com/downloads/pdf/3864/Schrittmotor-Controller_092_SMCI35.pdf nach einigen Programmier hickhacks läuft der Motor ziemlich gut... jetzt wollte ich Ihn auch einfach mal in die andere Richtung laufen lassen. Ich habe dafür, vor der main while(1) den entsprechenden Ausgang auf high gesetzt... der Motor macht jetzt nur eine handvoll Schritte und bleibt dann stehen. Alle Pegel sind noch da. Takt, Enable und Richtung. Ich hab dann einfach mal die Frequenz runter genommen und überprüft ob da vielleicht der hund steckt... von 10 Hz bis 190 Hz dreht der Motor danach ist er tot... getauscht habe ich den Motor sowie die Treiberstufe doch das Problem ist immer noch ! Ich kann mir nicht vorstellen dass ich durch ein einfachen HIGH Pegel am Richtungseingang der Motor nicht mehr drehen will.... Könnt Ihr mir helfen ?
Zeig mal dein Programm. Wenn ich mal davon ausgehe, dass die Jungs bei Nanotec keine Trottel sind und es im Grunde trivial ist, einen Schrittmotor in die andere Richtung drehen zu lassen, kann das Problem nur noch in deinem Code sein.
Ich benutze nen AVR32 UC3C, ich hoffe aber das der Quellcode ausreichende kommentiert ist um zu wissen was ich da machen... Ich war schon kurz davor bei nanotec anzurufen... :S alles was ich auskommentierte habe, ich raus gelöscht,
Wenn keine Lösung zu finden ist, würde ich trotzdem da anrufen... Ich bin mir nicht zu schade meine unwissenheit preiszugeben...
du meinst ?
1 | AVR32_GPIO.port[2].ovrs = 1 << AVR32_PIN_PC10; //Richtungsänderung |
1 | AVR32_GPIO.port[2].ovrs = 1 << AVR32_PIN_PC29; // Enable Motor |
leider sind werte AVR_32_PIN_PC10/29 unterschiedlich beim auskommentieren und nicht auskommentiere (der Richtungsänderung) habe ich jeweils die Pegel mit einem Messgerät nach gemessen... um zu überprüfen ob wirklich alles da ist wo es hingehört :S
Hallo Henry P du musst Deiner SMCI35 erst ein mal sagen (über RS232 3,3V) welchen Motor Du angeschlossen hast, welchen Modus 1/1 1/2 1/4 Step ... bis Sinus, Absolute- oder Relative- Positionierung welche Ströme, welche Rampen, was er mit den digitalen Eingängen und Ausgängen machen soll. All das kann man mit der Software NanoPro einstellen http://de.nanotec.com/dyn_downloads_ind/220/NanoPro_BenutzerHB_V2-2_de.pdf Frank
Hehe ja stimmt... Ich hab damals die RS232 Konverter nicht mit bestellt... hab ich erst Freitag gemacht :( Der Treiber wird bei Auslieferung im Takt-Richtungsmodus ausgliefert... so dass eine simple Ansteuerung mit einem uc möglich sein muss/sollte... siehe Datenblatt rechte Seite Ein/Ausgänge (X4) http://de.nanotec.com/downloads/pdf/3864/Schrittmotor-Controller_092_SMCI35.pdf wenn ich das Problem gelöst habe werde ich es posten... ich vermute, da karl heinz nicht weiter geantwortet hat, das problem nicht unbedingt im quellcode liegt... für weiter tips bin ich aber offen...
Henry P. schrieb: > wenn ich das Problem gelöst habe werde ich es posten... > ich vermute, da karl heinz nicht weiter geantwortet hat, das problem > nicht unbedingt im quellcode liegt... Mein Problem ist, dass ich mit AVR32 keine Erfahrung habe. In deinem Programm ist mir zuviel Zeugs, von dem ich nicht weiß, was er macht. Ganz ehrlich? Wenn ich an deiner Stelle wäre, hätte ich schon längst folgendes gemacht: Ich hätte auf den µC erst mal gesch... und hätte mir ein Taktsignal besorgt. Entweder von zb einem 555 oder aber auch meinetwegen von einem µC. Das schliess ich an und an die Enable bzw. Direction Pins der Steuerung kommen ganz banale Drähte, die ich wahlweise mit GND oder Vcc verbinde. Und denn seh ich eh, ob die Steuerung den Motor treiben kann oder nicht. Vorteil: Ich WEISS, dass es dann das Programm nicht sein kann, weil es kein Programm gibt. Der Steuerung ist es ja wurscht, wer da an den Pins wackelt.
Der Fehler lag wirklich nicht im Quellcode... Der Tipp mit dem "analogen" Pegel setzen von Karl hat mich auf die richtige Fährt gebracht. Trotzdem konnte ich das Problem nicht selbst lösen, obwohl es ganz simpel und einfach ist... ich sag nur Grundlagen Elektrotechnik... Ich hab meinen Betreuer dann um Hilfe gebeten (tut mir leid wenn ich euch erst zu Rate ziehe, ich will nicht immer wegen jeden kleinen scheiß zu ihm rennen)... IHR seit meine stütze bisher und das sehr erfolgreich!!!! Also zu dem Problem ich hab einfach keine Massen vom UC3C Board auf die Treiberleiste gezogen... Das heißt: hatte die Richtung "LOW" Pegel hat der Treiber sich die Masse von dem Richtungsanschluss geholt, aber hat der PIN "HIGH" gab es keine Masse mehr und Treiber wusste nicht woran er sich orientieren soll... also Fix die Masse angeschlossen und siehe da, er läuft ruhig und schnell in alle Richtungen!! Unendlichen vielen Dank für eure Gedanken anstöße! Ich weiß als Mechatronikstudent hätte ich drauf kommen sollen bzw. es sehen müssen aber manchmal sieht man den Wald vor lauter Bäumen nicht. Problem gelöst - Threat kann geschlossen werden
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.