Schrittmotoransteuerung Mit Atmega8 und IC ULN 2003

OP #3382775
Lesenswert?
• ▲
▼
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
Angehängte Dateien:
#3382785
Lesenswert?
• ▲
▼
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.
OP #3384806
Lesenswert?
• ▲
▼
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);
}
}
Gast #3384823
Lesenswert?
• ▲
▼
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
Gast #3384866
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.