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

Thema: PWM Frage

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Zitat Zitat von Regnator Beitrag anzeigen
    Nun meine Frage : wie bekomme ich eine PWM zur Steuerung der Motoren möglichst einfach hin ? Die Motoren werden über einen L298 geschalten.
    Fragst du nach Software, nach Hardware oder bist du ergebnisoffen? Ganz viele Controller können PWM-Signale erzeugen, die man an die Eingänge /INH1 und /INH2 del L298 anschließt. Alternativ gibt es die Möglichkeit von I2C-fähigen PWM-Generatoren, Typen kenne ich nicht auswendig. Wenn der Anspruch an die PWM niedrig ist, z.B. 10 Stufen@100Hz, dann macht das ein evtl. schon laufender 1kHz-Interrupt nebenher mit.

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    27.07.2012
    Beiträge
    10
    Ich Suche eine Software-Pwm.

    Der Anspruch ist einfach nur, dass ich meine Motoren über ein High - Low getaktes Signal an dem L298 entsprechend langsamer laufen, oder ist das programmtechnisch nicht zu verwirklichen ?

    Hab da mitlerweile was zu meinem µC gefunden :
    // Initialisierung
    TMOD = 0x11; // setzt beide Timer in den 16-Bit Mode
    TR0 = 1; // Timer 0 läuft jetzt, mit jedem Maschinenzyklus
    // wird jetzt TH0:TL0 um 1 hochgezählt

    while(1)
    {
    // in der Endlosschleife
    if (TF0 == 1) // Flag wird beim Überlauf auf 1 gesetzt
    { TF0 = 0; // Flag erstmal löschen, der Timer zählt bereits munter weiter
    Tu_Was( ); // für was wolltest Du die Zeit nochmal nutzen??
    }
    Weitere_Aktionen( );
    }

    Kann ich wenn TF0 =1 einer Variable einen Wert zuweisen und mit meinem Signal der Motoren per & Verknüpfen ?

    Wenn ich einer geringere Zeit möchte kann ich ja einfach TH0 / TL0 schon einem Startwert zuweisen, oder ?
    Geändert von Regnator (23.04.2013 um 12:53 Uhr)

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Ein Timer genügt. Der wird abwechselnd auf den Startwert für High-Zeit oder Low-Zeit gesetzt. Das Überlaufflag kann doch vermutlich einen Interrupt auslösen, das erspart Polling auf dieses Flag. Je nach Arbeitstakt (High / Low) wird dann beim Überlauf der PWM-Ausgang umgeschaltet. Die Verknüpfung macht der L298 in Hardware via /INHn. Wenn du Ports sparen willst, geht die VerUNDung natürlich auch in Software.

    Dein Controller hat aber ein PWM-Modul auf dem Chip. Bist du an Software-PWM gebunden durch vorhandene Elektronik?

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    27.07.2012
    Beiträge
    10
    Ja, da meine Schaltung sozusagen schon fertig ist und ich die Software PWM als kleines Extra noch hinzufügen wollte, da ich noch ein paar Schalter frei habe und somit meine Frequenz veränderbar machen wollte.
    Mit deinem INHn meinst du den enable pin, oder ?
    Die PWM wollte ich schon über Polling laufen lassen, da mir der µC meinen Roboter ja nicht auf einmal im rückwärtsfahren stehen bleiben soll, weil er in den Interrupt springt.
    Leider sind meine Bilder zu groß, sonst hätte ich sie hochgeladen um mal zu veranschaulichen wie mein Stand der Dinge ist.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.11.2004
    Ort
    Hvalstad, Norwegen
    Beiträge
    140
    Im Datenblatt wird auf das Programmable Counter Array (PCA) verwiesen, das kann die PWM in Hardware erzeugen. Du must nur das Tastverhältnis der PWM ändern und die Zähler starten / stoppen. Danach läuft das ganze im Hintergrund und frisst keine Resourcen.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Zitat Zitat von Regnator Beitrag anzeigen
    . . . meine Schaltung sozusagen schon fertig ist . . . Software PWM als kleines Extra noch hinzufügen . . . ein paar Schalter frei habe und somit meine Frequenz veränderbar machen wollte.
    Da will sich mir der Sinnzusammenhang einfach nicht erschließen! PWM ist kein kleines Extra sondern eine wichtige Funktionalität zur Begrenzung der Anlaufströmer der Motoren und zur Regelung des Geradeauslaufs. Frequenz und PWM (wohl eher Duty Cycle der PWM) sind zwei verschiedene Dinge. Wenn du noch in der Entwicklung bist, dann kümmere dich um dein Verständnis der OnChip-PWM-Erzeugung und lege die Schaltung dafür aus. Dafür sind die Peripheriemodule ja da. Kein Polling für Dinge, die eigentlich selbständig im Hintergrund laufen können. Anders gesagt: Es ist nicht die Aufgabe des Chefs (Hauptprogramm), stündlich (jede Millisekunde) zu kontrollieren, ob noch Klopapier auf der Rolle ist. Derartiges wird delegiert. Wenn du das jetzt nicht verbesserst, wirst du dich später bestimmt ärgern, weil du dir damit die Karten gelegt hast.
    Zitat Zitat von Regnator Beitrag anzeigen
    Mit deinem INHn meinst du den enable pin, oder ?
    Ja. Das n steht für die Ziffern 1 bzw. 2 der beiden quasi gleichartig wirkenden Inhibit-Eingänge des L298.
    Zitat Zitat von Regnator Beitrag anzeigen
    Die PWM wollte ich schon über Polling laufen lassen, da mir der µC meinen Roboter ja nicht auf einmal im rückwärtsfahren stehen bleiben soll, weil er in den Interrupt springt.
    Nein, nein, nein; sorry, aber das ist Unfug. Jedes Bit, jeder Pin behält seinen Zustand bei, solange, bis er vom Programm, von der Hardware oder der nächsten Stromunterbrechung verändert wird. Und das ist alles genauestens geordnet und im Datenblatt beschrieben. Ein Interrupt stört da entweder überhaupt nicht, oder man hat ihn falsch programmiert; aber das lässt sich ja korrigieren. Ganz im Gegenteil: Man _kann_ einen Interrupt als SW-Treiber für die Hardware konzipieren, sodass das Hauptprogramm letztlich unabhängig von der Hardware und Chip-individuellen Registerstruktur nur noch über Statusflags, Messwertvariablen und Steuervariablen im SRAM mit der Hardware Verbindung hat. Der Interrupt wirkt dann als "dienstbarer Geist" oder Haushalter unbemerkt im Hintergrund und managt die ganze Chose.
    Geändert von RoboHolIC (24.04.2013 um 16:00 Uhr) Grund: Ergänzung L298

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    27.07.2012
    Beiträge
    10
    Klicke auf die Grafik für eine größere Ansicht

Name:	20130326_123411.jpg
Hits:	8
Größe:	42,3 KB
ID:	25234

    Aktuelles Aussehen:Klicke auf die Grafik für eine größere Ansicht

Name:	20130425_080607.jpg
Hits:	11
Größe:	46,9 KB
ID:	25235

    Die grünen Platinen sind vorgegeben und dürfen nicht verändert werden. Desweiteren muss der AT89C5131 verwendet werden.

    Meine Frage zu dem ganzen Thema ist eigentlich wie ich eine Pwm einbaue die noch freie Schalter auf der Platine abfragt und den Motor dann entsprechende langsamer fahren lässt.

    Mein Programm sieht vereinfacht so aus :

    1. Frag die Sensoren ab
    2. Wenn vorne frei ist, dann fahr nach vorne.
    2a. Wenn nicht frei ist dann überprüfe ob hinten frei ist
    3.Wenn frei ist dann fahr zurück und drehe.
    3a. Wenn nicht frei ist, dann drehe so lange bis frei wird.

    Ich habe hier auch schon das PDF für eine PWM für diesen µC gefunden, allerdings würde ich gerne wissen wie ich eben bei den Unterprogrammen den Wert der PWM sozusagen auf den Motorenpins ausgebe / auf dem Inhibit.

    http://www.atmel.com/Images/doc4345.pdf
    Geändert von Regnator (25.04.2013 um 07:07 Uhr) Grund: Aktuelles Aussehen

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Zitat Zitat von Regnator Beitrag anzeigen
    Die grünen Platinen sind vorgegeben und dürfen nicht verändert werden. . . .
    Meine Frage zu dem ganzen Thema ist eigentlich wie ich eine Pwm einbaue die noch freie Schalter auf der Platine abfragt und den Motor dann entsprechende langsamer fahren lässt.
    1) Option Software-PWM wurde bereits diskutiert; ist für jeden beliebigen Pin des Controllers realisierbar.
    2) Option Hardware-PWM des Controllers: klappt ohne Änderung der Platine oder der Verdrahtung nur, wenn der Motor-steuernde Pin (zufällig) der PWM-Ausgangs-Pin des Controllers ist.
    3) Bestimmt dürfen die Flachbandkabel verändert werden, das ist ja reversibel, bzw. man knipst sich einen neuen Satz von Kabeln, die man dann modifiziert
    4) Punkt 3 schließt die Option mit ein, einen externen PWM-Erzeuger in die Flachbandkabel einzuschleifen: nicht benötigte Signale werden 1:1 weitergereicht; PWM aus I2C-Chip, UND-verknüpft mit dem bisherigen MOTOR_EIN, werden zum L298 verdrahtet

    Zitat Zitat von Regnator Beitrag anzeigen
    allerdings würde ich gerne wissen wie ich eben bei den Unterprogrammen den Wert der PWM sozusagen auf den Motorenpins ausgebe / auf dem Inhibit.
    Ach, kommst du doch an den /INH des L298 ran? Dann braucht es weder in SW noch in HW eine UND-Verknüpfung.

    Deine Informationen kommen leider ziemlich spärlich und nur tröpfchenweise hier an; was den /INH des L298 angeht, sind sie sogar konträr, denn im Beitrag #6 hast du explizit nach SW-PWM und der Möglichkeit einer SW-UND-Verknüpfung gefragt und nun fragst du wieder nach der HW-Lösung! Vielleicht zeigst du uns jetzt einfach mal die Schaltpläne; daran entscheidet sich die Machbarkeit im status quo (ausgenommen SW-PWM, denn die ist in jedem Fall irgendwie realisierbar). Und kläre, ob eine Lösung mit zwischengeschalteter Platine erlaubt/gewünscht ist. Erst wenn die Karten auf dem Tisch liegen, kann man dich sinnvoll beraten.

Ähnliche Themen

  1. Frage zu pwm
    Von tanger im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 05.11.2008, 06:57
  2. PWM Frage
    Von Martin. im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 22.07.2008, 16:01
  3. Frage zu PWM
    Von doolitle15 im Forum PIC Controller
    Antworten: 6
    Letzter Beitrag: 15.09.2007, 12:15
  4. Kurze Frage zur PWM
    Von x8r im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 14.03.2007, 15:40
  5. PWM DC/DC Wandler Frage
    Von guiliman im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 24.06.2006, 12:06

Berechtigungen

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

Solar Speicher und Akkus Tests