- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 3 von 3

Thema: Mikroschritt-Steuerung für Schrittmotor in C (WinAVR)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    17.02.2005
    Ort
    Westerkappeln
    Alter
    41
    Beiträge
    88

    Mikroschritt-Steuerung für Schrittmotor in C (WinAVR)

    Anzeige

    E-Bike
    Hallo,

    ich habe ein kleines Problem mit der Ansteuerung eines Schrittmotors mit 1/16 Mikroschritt.

    Also meine Schaltung ist folgendermaßen aufgebaut.

    Ich verwende 2x L6203, die an den L6506 angeschlossen sind. Vom L6506 gehen vier Leitungen an den ATmega8. Über diese Leitungen werden Phasen beider L6203 umgeschaltet bzw. umgepolt.
    An dem Atmega8 ist ein SPI 2xDAC (MAX549A) angeschlossen. Mit dem DAC erzeuge ich um 90° versetzte Spannungen (cos und sin).

    Nun zum eigentlichen Problem.

    Ich habe absolut keine Idee wie ich das mit dem Umschalten der Phasen in bestimmten Phasenlagen in C hinkriege.

    Da ich noch ein Anfänger in Sachen C bin, habe ich systematisch einzelne Funktionen die ich programmiert habe getestet und sichergestellt, dass diese auch wirklich funktionieren.


    Ich habe bisher folgendes geschafft:

    1. Ansteuerung des S-Motors im Halb- und Vollschrittbetrieb.

    2. Ansteuerung des DACs über SPI (mit zwei Arrays für cos und sin) überprüft mit einem Oszilloskop.

    3. Interruptsteuerung (da ich HW Interrupt (INT1) benutze um den S-Motor einen Schritt weiter zu bewegen).


    Ich habe 3 Arrays angelegt:
    1. mit 8 Werten für Halb-/Vollschritt (bei Mikroschritt benötige ich nur Vollschritt um Phasen Phasen A und B umzuschalten)

    2. mit Cos-Werten für 360°

    3. mit Sin-Werten für 360°

    Nach je 90° (in sin/cos Tabelle) muss ich 1 bzw. 2 Schritt(e) in der ersten Tabelle gehen. (zwei Schritte deshalb, weil nur bei jeder 2-er Position in der ersten Tabelle beide Phasen aktiv sind.


    Wie gesagt, ich weiß leider nicht wie ich in C diese Phasen Umschaltung/ Umpolung am schnellsten und einfachsten realisieren kann.
    Ich möchte nicht zig If-Abfragen einbauen, denn ich möchte gerne möglichst hohe Frequenzen erreichen.

    Kann mir jemand bei diesem Problem weiterhelfen oder vielleicht einen kleinen Tipp geben wie ich das machen kann?

    besten Dank im Voraus für eure Hilfe!!!

    =========================================

    Edit:

    Ich hab das Problem gelöst!
    Die Steuerung funktioniert.
    Folgende Modi wurden implementiert:
    Voll-/ Halb-/ Viertel-/ Achtel-/ Sechszehntel-Schritt
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken messung_668.jpg   testaufbau.jpg  

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.10.2006
    Ort
    Hamburg
    Alter
    44
    Beiträge
    105
    Hi!
    Richtig geiles Projekt! Bin auch dabei eine CNC Maschine zu bauen.
    Deine steuerung find ich sehr interressant.

    Wie läuft sie so im Mikroschritt?
    Welche maximale Drehzahl erreicht der Motor?
    Mit welcher Spannung betreibst du die Leistungsstufen?

    Der Schaltplan wäre auch sehr interressant, falls kein Geheimniss.

    Gruß, Lebi.
    Nur weil ein Roboter Menschen umbringt wird er schon als radikal beschimpft!

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    17.02.2005
    Ort
    Westerkappeln
    Alter
    41
    Beiträge
    88
    Hi!
    Besuch mal diesen Link hier!
    Dann siehst du auch wie alles endet!

    Schöne Grüße

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen