Hallo alle zusammen, ich bin im mom Ein Tutoriell zur Ansteuerung eines Bipolar Schrittmotors am ausprobieren (Siehe Anhang) und Bekomme Leider ein Fehler beim Übersetzen der Programms. Es wäre echt super wenn ihr mir weiter helfen könntet Und Sry dass es ev. ein banaler Fehler ist. Hardware: Myavr Board mit dem Atmega8 IC ULN 2003 Unipolar Schrittmotor
Was genau gibt es an "warten.h: no such file or directory" nicht zu verstehen Anyway. Schmeiss es raus. Da drinn ist höchst wahrscheinlich die Implementierung der Funktion
1 | warten10ms(); |
die kannst du aber mit den üblichen Mitteln durch
1 | _delay_ms( 10 ); |
ersetzen, wenn wir mal davon ausgehen, dass der Name der Funktion ihrer Funktionalität entspricht.
Danke für den Tipp, soweit Läuft dass Programm, nur jetzt bekomme ich den nicht nach links gedreht. Obwohl ich für links n-- geschrieben habe. #define F_CPU 3686400 #include <avr/io.h> #include <avr/delay.h> //#include "warten.h" //Steuerung eines unipolaren Schrttmotors //(3.6 Grad/Vollschritt) // W.Tschallener 4.10.2006 //Tabelle Vollschritt uint8_t vs[4]={9,5,6,10}, //Tabelle Halbschritt hs[8]={9,1,5,4,6,2,10,8}, n; void rechtslauf_Vschritte(uint16_t ns){ uint16_t z; for ( z=0;z<ns;z++){ n++; PORTC =vs[n&3]; _delay_ms(5); } } void linkslauf_Vschritte(uint16_t ns){ uint16_t z; for(z=0;z<ns;z++){ n--; PORTC =vs[n&3]; _delay_ms(5); } } void rechtslauf_Hschritte(uint16_t ns){ uint16_t z; for (z=0;z<ns;z++){ n++; PORTC =hs[n&7]; _delay_ms(20); } } void linkslauf_Hschritte(uint16_t ns){ uint16_t z; for(z=0;z<ns;z++){ n--; PORTC =hs[n&7]; _delay_ms(15); } } void main(){ n=0; DDRC = 0b00001111; while(1) { rechtslauf_Vschritte(200); _delay_ms(500); linkslauf_Vschritte(600); _delay_ms(500); } }
Ohne genauer hingeschaut zu haben: Gibt es bei Schrittmotortreiber nicht immer ein Vorzeichenbit, das die Drehrichtung definiert?
Hallo Anton! Bist Du sicher, dass die Werte in Deinen Tabellen passen, abgesehen davon, dass Du den Ratschlag von Karl Heinz befolgen solltest? Könnte es sein, dass die Halbschritt-Reihenfolge 9,1,3,2,6,4,10,8 bei Rechtsdrehung lautet? (Vermutung!!) Gruss Gerhard
Marcel V. schrieb: > Ohne genauer hingeschaut zu haben: Gut, dass du das erwähnt hast. > Gibt es bei Schrittmotortreiber nicht immer ein Vorzeichenbit, das die > Drehrichtung definiert? Bestimmt nicht bei einem ULN2003
Hallo, er muss nur die Zahlen-Reihenfolge umkehren, also 8,10,4,6,23,1,9 in dem Beispiel.
Ich korrigiere, weil meine Beistrichtaste spinnt: 8,10,4,6,2,3,1,9
Blende22 schrieb: > er muss nur die Zahlen-Reihenfolge umkehren, also 8,10,4,6,23,1,9 in > dem Beispiel. Und was macht n-- anderes? Da wird das Bitmusterarray von hinten abgearbeitet. Für Vollschritt ist außerdem die Vollschritttabelle aktuell, sonst würde die Maskierung mit '&3' beim Index auch nicht passen.
Tipp: Versuch mal, die Richtungsänderung von einer Taster-Eingabe abhängig zu machen, also den automatischen Richtungswechsel mal beiseite zu lassen.
>Und was macht n-- anderes? Jo, stimmt schon. Mein Gedanke war nur der, dass der Motor trotzdem nicht die Richtung wechselt. Automatisch ohne Eingabetaste habe ich auch Probleme, aber ich lerne noch und seit gestern intensiv!! ;-) http://www.youtube.com/watch?v=UpxemFUVnFI Und das als Rentner! ;-)
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.