- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: TowerPro MAG8 ansteuern...

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    24.08.2008
    Beiträge
    7

    TowerPro MAG8 ansteuern...

    Anzeige

    LiFePo4 Akku selber bauen - Video
    So, bin jetzt auch unter die Bastler gegangen.

    Habe jetzt lange gesucht und leider noch wichtige Fragen zur Steuerung meines MAG 8 Reglers. Der Motor ist am Regler angeschlossen. Und 11 V hab ich auch an denRegler per Labornetzteil rangegeben. Noch passiert nix kein Piepen und nichts. Das "Steuerungskabel" ist auch noch nicht angeschlossen. Ich habe nun herausgefunden, dass der MAG8 ein PWM Signal haben möchte.

    1. Kann ich dies mit meinem Atmega32 erzeugen?
    2. Wie müssen die 3 Leitungen des Reglers belegt werden? Ground, VCC, und? Ein PWM-Port am µC?
    3. Wie groß sind die Impulse? Ich habe IRGENDWO etwas von 0,5 ms-1,5ms gelesen. Oder verteilt sich die Leistung direkt linear über der Periodendauer?
    Im "datenblatt" steht 8khz PWM-Cotnrol, was sicher die Periodendauer ist?!
    8khz = 0,125 ms periodendauer, kann der impuls oben ja nicht stimmen.

    ich bin verwirrt und bitte um aufklärung?!

    danke

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    69
    Beiträge
    622
    Hallo,

    Deinen Regler kenne ich nicht. Du beschreibst einen typischen RC-Modellbau-Motorregler, der eben am Steuereingang alle 20 ms einen Impuls von 1.0 ms - 2.0 ms Länge erwartet. Daraus wird dann intern ein PWM-Signal erzeugt, das, wie Du sagst, bei 8 kHz liegt.

    Ohne Datenblatt kann ich nur hypothetisieren, dass Du den Regler mit einer Ansteuerung für ein Servo (findest Du oft beschrieben) mit einem Fernsteuerempfänger oder Deinem ATmega ansteuern kannst.

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    18.12.2006
    Ort
    Oderberg
    Alter
    32
    Beiträge
    870
    MfG Christopher \/


  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    384
    So ein modellbau motorregler hat immer eine bestimmte initialisierung. Beim einschalten muss er erst minimale pulslange und maximale pulslaenge sehen. Diese wirden dan gespeichert, und dan wird er scharf gesetzt. Das um zu vermeiden dass bei anschliessen der batterie der motor geleich hoch lauft. (bruschless geht heute bis 5 kWatt...). Diese initialisierung muss du dan auch so machen. Schau mal das datenblatt an.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    24.08.2008
    Beiträge
    7
    Genau das erste Datenblatt von den vieren in dem Dokument habe ich...

    Zitat Zitat von fhs
    Hallo,

    Deinen Regler kenne ich nicht. Du beschreibst einen typischen RC-Modellbau-Motorregler, der eben am Steuereingang alle 20 ms einen Impuls von 1.0 ms - 2.0 ms Länge erwartet. Daraus wird dann intern ein PWM-Signal erzeugt, das, wie Du sagst, bei 8 kHz liegt.

    Ohne Datenblatt kann ich nur hypothetisieren, dass Du den Regler mit einer Ansteuerung für ein Servo (findest Du oft beschrieben) mit einem Fernsteuerempfänger oder Deinem ATmega ansteuern kannst.

    Gruß
    Fred
    Dh die 8khz sind für mich für den Steuereingang des Reglers nicht relevant? Woher hast du diese Werte mit 1-2 ms bzw T=20ms, sind allgemein bei ALLEN Reglern üblich? Warum steht so eine Info nicht im Datenblatt? Kann ich das jetzt einfach mit PWM am AVR erzeugen?

    So ein modellbau motorregler hat immer eine bestimmte initialisierung. Beim einschalten muss er erst minimale pulslange und maximale pulslaenge sehen. Diese wirden dan gespeichert, und dan wird er scharf gesetzt. Das um zu vermeiden dass bei anschliessen der batterie der motor geleich hoch lauft. (bruschless geht heute bis 5 kWatt...). Diese initialisierung muss du dan auch so machen. Schau mal das datenblatt an.
    Habe ins DB geguckt, raff das aber nicht, die einzige Einstellung die da vornehmen kann sind laufeigenschaften des Motors... die sind mir erstmal schnurzpiepegal.

    Ich habe auch keinen RC-Empfänger und keinen Sender... Noch nicht... Alles zu teuer... Möchte langfristig einen Quadrocopter basteln aber erstmal mit den einzelnen Komponenten auseinandersetzen, da wird der Motor dann ja auch nicht von einem RC-Empfänger direkt sondern von der Elektronik angesteuert.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    69
    Beiträge
    622
    Hallo,

    da es sich beim Datenblatt um ein Word-Dokument handelt, werde ich es nicht öffnen, und kann Dir deshalb Deine Fragen nur in Teilen beantworten.

    Zitat Zitat von dt2158
    .. die 8khz sind für mich für den Steuereingang des Reglers nicht relevant?
    Wenn das die PWM-Frequenz des Motors ist, hat der Wert mit dem Steuereingang nichts zu tun.

    Woher hast du diese Werte mit 1-2 ms bzw T=20ms, sind allgemein bei ALLEN Reglern üblich?
    Das ist das Standard-Ausgangssignal von RC-Empfängern, sowohl für Servos als auch für Motorregler.

    Warum steht so eine Info nicht im Datenblatt?
    Weiß ich nicht.

    Kann ich das jetzt einfach mit PWM am AVR erzeugen?
    Ja!

    MfG

    Fred
    Only entropy comes easy. - Anton Checkhov

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    24.08.2008
    Beiträge
    7
    Zitat Zitat von fhs
    Hallo,

    da es sich beim Datenblatt um ein Word-Dokument handelt, werde ich es nicht öffnen, und kann Dir deshalb Deine Fragen nur in Teilen beantworten.

    Zitat Zitat von dt2158
    .. die 8khz sind für mich für den Steuereingang des Reglers nicht relevant?
    Wenn das die PWM-Frequenz des Motors ist, hat der Wert mit dem Steuereingang nichts zu tun.

    Woher hast du diese Werte mit 1-2 ms bzw T=20ms, sind allgemein bei ALLEN Reglern üblich?
    Das ist das Standard-Ausgangssignal von RC-Empfängern, sowohl für Servos als auch für Motorregler.

    Warum steht so eine Info nicht im Datenblatt?
    Weiß ich nicht.

    Kann ich das jetzt einfach mit PWM am AVR erzeugen?
    Ja!

    MfG

    Fred
    für word hasser mal in pdf umgewandelt als attachment

    ich werd einfach mal versuchen so ein pwm signal zu erzeugen...
    Angehängte Dateien Angehängte Dateien

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    69
    Beiträge
    622
    Hi,

    bin kein "Word-Hasser"; nur bezweifle ich, dass es eine gute Idee ist, Word-Dateien von unbekannten Quellen zu öffnen!

    Du kannst sicher sein, dass eine typisches 1-2 ms Signal alle (etwa) 20 ms funktionieren wird. Wie RP6conrad schon sagte, muss das Signal beim Start des Reglers wahrscheinlich "0" sein (also 1,0 ms oder 0,9 ms), da der Regler den Motor sonst aus Sicherheitsgründen nicht aktiviert.

    Suche mal in diesem Forum und im Internet nach Servo-Ansteuerung; hier ist ein Beispiel: http://roderickmann.org/log/archives...ega32_pwm.html

    Viel Erfolg!

    Fred
    Only entropy comes easy. - Anton Checkhov

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    18.12.2006
    Ort
    Oderberg
    Alter
    32
    Beiträge
    870
    Zitat Zitat von fhs
    Du kannst sicher sein, dass eine typisches 1-2 ms Signal alle (etwa) 20 ms funktionieren wird. Wie RP6conrad schon sagte, muss das Signal beim Start des Reglers wahrscheinlich "0" sein (also 1,0 ms oder 0,9 ms), da der Regler den Motor sonst aus Sicherheitsgründen nicht aktiviert.
    So hab ich zumindest den Regler zum Laufen gebracht
    MfG Christopher \/


  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    24.08.2008
    Beiträge
    7
    Zitat Zitat von Christopher1
    Zitat Zitat von fhs
    Du kannst sicher sein, dass eine typisches 1-2 ms Signal alle (etwa) 20 ms funktionieren wird. Wie RP6conrad schon sagte, muss das Signal beim Start des Reglers wahrscheinlich "0" sein (also 1,0 ms oder 0,9 ms), da der Regler den Motor sonst aus Sicherheitsgründen nicht aktiviert.
    So hab ich zumindest den Regler zum Laufen gebracht
    sooo, hab jetzt alles zusammengebaut.
    nun hat das ganze aber net soo geklappt

    ich berichte bzw. wiederhole meinen bisherigen aufbau:
    1.) reglerspannung an 11V netzteil angeschlossen (plus und minus beachtet)
    2.) 3 motorphasen an regler angeschlossen
    3.) pwm beispielprogramm (siehe unten) geschrieben/kopiert für atmega32 welches von 0,9-2ms pwm-pulsdauer durchiteriert. Hab leider kein oszi zum testen da, aber das Spannungs-Mittel iterierte von 250mV(1ms)-500mV(2ms) bei VCC=5V, also sah das ganz gut aus
    4.) steuerleitung angeschlossen (braun rot gelb)
    weiß pinbelegung nicht
    - erster Versuch nix tut sich regler wird sehr warm (braun masse; rot pwm am µC, gelb VCC)
    - zweiter Versuch nix tut sich regler wird nicht mehr anfassbar heiß (masse und vcc getauscht) -> schnell abgeschalten

    weitere Versuche gestoppt.

    FRAGE: Wie muss die Steuerleitung zum regler beschalten werden???

    PS: Glaub den ersten µC hab ich auch entschärft , das Programm blieb unverändert, trotzdem messe ich jetzt an pwm und masse 750-1000mv, also 500mV zuviel, is so ein defekt wahrscheinlich? Stromverbrauch ist laut netzteil auch angestiegen. Programmieren geht aber alles noch supi.

    Code für PWM:
    Code:
    #include <inttypes.h>
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <avr/signal.h>
    
    #define kPinInitCompleteLED         PA0
    #define kDelay                      10000				//10000
    #define kReverseDelay               300000				//300000
    
    #define kLowerLimit                 225                 //  Min 225 == 0.9 ms
    #define kUpperLimit                 500                 //  Max 525 == 2.1 ms
    
    int
    main()
    {
        volatile long       d;
        short               dir = 1;
        
        //  Set LED output pins…
        
        DDRA = _BV(kPinInitCompleteLED);
        DDRB = 0;                                           //  Port B inputs
        
        //  Set up OCR pins (PD4, PD5) as outputs (00110000)…
        
        DDRD = _BV(PD4) | _BV(PD5);
        
        //  Set up Timer 1. Timer 1 should reset when
        //  it reaches TOP = ICR1 (WGM13:0 = 1110b). On
        //  compare match clear output, at TOP set (COM1A1:0 = 10b).
        
        TCCR1A = _BV(COM1A1) | !_BV(COM1A0)                 //  Both PWM outputs set at TOP,
                    | _BV(COM1B1) | !_BV(COM1B0)            //    clear on compare match
                    | !_BV(FOC1A) | !_BV(FOC1B)             //  PWM mode, can't force output
                    | _BV(WGM11) | !_BV(WGM10);             //  Fast PWM, TOP = ICR1
        
        TCCR1B = !_BV(ICNC1) | !_BV(ICES1)                  //  Disable input capture noise canceler,
                                                            //    edge select to negative.
                    | _BV(WGM13) | _BV(WGM12)               //  Fast PWM, TOP = ICR1
                    | !_BV(CS12) | _BV(CS11) | _BV(CS10);   //  clk(i/o) / 1024
        
        //  PWM duty cycle…
        
        OCR1A = kLowerLimit;
        OCR1B = kLowerLimit;
        
        //  PWM period…
        
        ICR1 = 5000;
        
        //  Show initialization complete…
        
        PORTA = _BV(kPinInitCompleteLED);
        
        //  Loop forever steering left-to-right-to-left…
        
        OCR1A = kLowerLimit;            //    Min value == 0.9 ms
        while (1)
        {
            d = kDelay;
            while (d--);
            
            OCR1A += dir;
            
            if (OCR1A < kLowerLimit)
            {
                OCR1A = kLowerLimit;
                dir = 1;
                d = kReverseDelay;
                while (d--);
            }
            
            if (OCR1A > kUpperLimit)    //    Max value == 2.1 ms
            {
                OCR1A = kUpperLimit;
                dir = -1;
                d = kReverseDelay;
                while (d--);
            }
            
        }
        
        return 0;
    }
    Danke fürs Mitgrübeln

    EDIT: ich glaube OCR1A hats wirklich entschärft... ORCA1B zeigt korrekt an... Gleich noch ein paar neue atmegas bestellen

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

12V Akku bauen