Schrittmotorendstufe SMC11 mit Atmega8 ansteuern

OP #2040561
Lesenswert?
• ▲
▼
Hallo *,

folgendes Probem: In meinem Versuch steuere ich die SMC11 von Nanotec 
über die Ports B des Atmega8 an. Also Motor dient der Trinamic 
QSH4218-51-10-049 (den hatte ich noch da). Die Versorgungsspannung liegt 
bei 12 Volt für die SMC11 und wird von einem Labornetzteil geliefert. 
Der Atmega sitzt noch im STK500 und wird mit einer eigenen 
Spannungsquelle versorgt.

Die SMC11 ist im Mikroschrittmodus der Motor angeschlossen.

Ich gehe wie folgt vor.
1. Das STK500 ist noch inaktiv aus.
2. Ich schalte das Labornetzteil ein (12 Volt).

Laut Nanotec müßte nun folgendes machen: Zitar SMC Handbuch
"
Der Motor macht eine kurze Bewegung und richtet sich in die stabile 
Phasenlage ein. Im Motor wirkt das Haltemoment.
Die Endstufe ist betriebsbereit und kann über den Eingang „Takt“ 
abhängig vom Richtungssignal in die entsprechende Richtung bewegt 
werden.
"
3. Ich schalte das STK500 ein. Das nachstehende Programm läuft ab. 
Zunächst wird die Stromabsenkung über Port B0 deaktiviert. Dann wird ein 
Taktsignal generiert.
Aber am Motor regt sich nichts.
#include <avr/io.h>
#include <util/delay.h>

int main(void) {

  DDRB = 0xFF;
  PORTB = 0b00000010;
  _delay_ms (200.0);
  _delay_ms (200.0);
  _delay_ms (200.0);
  PORTB = 0b00000011;
  _delay_ms (200.0);


  while(1) {

    // smc11test();
    PORTB = 0b00000011;
    for (int i=0;i<2;i++) _delay_ms (10.0);
    PORTB = 0b00000001;
      for (int i=0;i<2;i++)_delay_ms (10.0);


  }

  return 0;

}

Ich habe hier 3 Endstufen und es an allen dreien probiert. Aber ohne 
irgendeinen Erfolg.
Folgende Fragen:
1. Müssen STK500 und die Endstufe über Masse miteinander verbunden 
werden?
2. Der Motor ist richtig verdrahtet. An den Motorausgängen lassen sich 
die Phasenwiderstände messen. Allerdings habe ich beim anlöten die 
Phasen verstauscht. Phase B des Motors liegt nun an der Phase A der 
Enstufe. Phase A des Motors liegt nun an der Phase B der Endstufe 
(ansonsten die richtige Reihenfolge=

Woran kann das liegen? Also ich würde mich freuen, wenn mir hier jemand 
auf die Sprünge helfen könnte.

Euch schonmal vielen Dank!
Viele Grüße,
Matthias
OP #2040733
Lesenswert?
• ▲
▼
Hi, vielen Dank.

STK500 sind nun über Masse miteinander verbunden.

Folgende Programmsequenz läßt zumindest mal etwas vom Motor verlauten:

  DDRB = 0b00001111;
  PORTB = 0b00001010;
  _delay_ms (200.0);
  _delay_ms (200.0);
  _delay_ms (200.0);
  PORTB = 0b00001010;
  _delay_ms (200.0);


  while(1) {

    // smc11test();
    PORTB = 0b00000010;
    _delay_ms (100.0);
    PORTB = 0b00000000;
    _delay_ms (100.0);
       }
Wobei der Motor nur ein bißchen pfeift / rauscht. Aber er
dreht sich noch nicht.
Was fehlt noch? Kanns daran liegen, daß ich noch keinen Kondensator
in der Endstufe verbaut habe?
Danke schonmal und Gruss,
Matthias
Gast #2041883
Lesenswert?
• ▲
▼
Das Pfeifen / Rauschen hatte ich zuerst auch - da war die Frequenz zu 
hoch.
Bei dem Typ Motor solltest du mal eine lineare Rampe programmieren und 
es noch einmal probieren. Die mögen es nicht, wenn man sie schlagartig 
von 0 rpm auf Drehzahl bringen will (Rotorträgheit).

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.