- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 8 von 8

Thema: Motor ohne Library starten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    05.03.2014
    Beiträge
    8
    Habe es nun einigermaßen hinbekommen.

    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
    
    int main(void) {
       TCCR1A|= ((1 << WGM10) | (1 << COM1B1));      //PWM, Phasenkorrekt, 8-Bit, lösche OC1B wenn CompareMatch beim hochzählen, setze beim herunterzählen
       TCCR1B|= (1 << CS11);                         //PreScale 8 8000000Hz/8=1000000Hz, da 8-Bit: 1000000/256=3906,25Hz->3906,25 mal wird von 0..255 gezählt
       OCR1B=130;                                    //Hier Wert zwischen 0..255 für Geschwindigkeit
       TIMSK|= ((1 << TOIE1) | (1 << OCIE1B));       //Overflow Interrupt erlauben, wird nicht benötigt
       DDRB|= ((1 << PB2)|(1 << PB4)|(1 << PB5));    //Motor-Rechts, Pins als Ausgang setzen
       PORTB|= (1 << PB5);                           //Damit Motor vorwärts dreht
       PORTB&= ~(1 << PB4);                          //Damit Motor vorwärts dreht
       sei();                                        //Globale Interrupts erlauben
       while (1)
       {
       //Quellcode
       }
    
       while (1) {}
       return 0;
    }
    Zwei kleine Verständnisfragen hätte ich noch.
    OCR1B ist ja der Wert, welcher intern mit TCNT1 also dem Timer/Counter Daten Register abgeglichen wird. Wenn eine Übereinstimmung stattfindet dann wird am OC1B entsprechend der Einstellungen reagiert.
    Nun eine kleine Rechnung.
    Interner Takt ist 8MHz.
    PreScaler ist 8, also wird der Takt auf 1MHz reduziert.
    Da der Timer auf 8Bit eingestellt ist, wird 1MHz durch 2^8 geteilt --> 3906,25Hz; 1/3906,25Hz=256µs
    Also wird alle 256µs der Ausgang OC1B getoogelt.
    Die wäre Gesetz dem Fall, dass OCR1B 255 beträgt.
    Ist das soweit richtig oder habe ich hier schon einen Denkfehler?

    Die andere Frage, woher weiß ich denn mit welcher Frequenz der Motor angesteuert werden muss um eine bestimmte Drehzahl zu realisieren?
    Steht so etwas im Datenblatt? Gibt es zu den Asuro Motoren ein Datenblatt, auf der CD war keins dabei.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Zitat Zitat von Andi1888 Beitrag anzeigen
    Also wird alle 256µs der Ausgang OC1B getoogelt.
    Die wäre Gesetz dem Fall, dass OCR1B 255 beträgt.
    Nein. Der Timer wird in einem PWM-Modus betrieben (oder sollte es zumindest). Die verbreiteten Bibliotheken nutzen 8-Bit-Phasenkorrektes PWM, d.h. der Timer zählt abwechselnd hoch und runter. Bei erreichen von OCR1 wird der Ausgang invertiert. Innerhalb von einem Zyklus (2*256µs) ist der Ausgang dabei zu OCR1/256 der Zykluszeit eingeschaltet. PWM beinflusst das Verhältnis Eingeschaltet/Ausgeschaltet, die Frequenz bleibt konstant!

    Zitat Zitat von Andi1888 Beitrag anzeigen
    Die andere Frage, woher weiß ich denn mit welcher Frequenz der Motor angesteuert werden muss um eine bestimmte Drehzahl zu realisieren?
    Gar nicht. Das hängt vom Motor, vom Getriebe, von Reibungswiderständen (die wiederum von anderen Faktoren beeinflusst werden, wie etwa der Temperatur) und der Batteriespannung ab. Wenn du eine bestimmte Drehzahl erreichen möchtest, musst du eine Drehzahlregelung programmieren. Dazu sind die Radencoder (Reflektorscheiben + Reflexlichtschranke) des ASURO da, mit ihnen kannst du die Geschwindigkeit des ASURO ermitteln und diese Information nutzen um die Motorleistung entsprechend anzupassen.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

Ähnliche Themen

  1. DC Motor im niedrigen Drehzahlbereich ohne Drehmoment
    Von stonymontana im Forum Motoren
    Antworten: 19
    Letzter Beitrag: 14.12.2008, 13:47
  2. Erstes Projekt: auf Tastendruck soll Motor starten
    Von RN-Controler im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 11
    Letzter Beitrag: 23.07.2007, 13:00
  3. Projekt: Open Source Library / Firmware für RN- Motor Boards
    Von fwallenwein im Forum Open Source Software Projekte
    Antworten: 43
    Letzter Beitrag: 30.10.2006, 19:56
  4. Palm3 ohne Touchscreen starten
    Von frank-wob im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 7
    Letzter Beitrag: 18.09.2006, 06:46
  5. Antworten: 1
    Letzter Beitrag: 08.03.2005, 15:16

Berechtigungen

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

12V Akku bauen