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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren