- 12V Akku mit 280 Ah bauen         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 26

Thema: PWM für Fahrtenregler

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    10.05.2004
    Beiträge
    75
    Anzeige

    Praxistest und DIY Projekte
    TomHumpen
    Ich werd das ding mal Testweise bauen. Hab zur Zeit nur 4Mhz systemtakt. Aber mal schauen. Trotzdem brauch ich das ding mal vier. Aber wenn das Funkioniert kann ich ja mal über 2 Prozessoren nachdenken. Obwohl mir das nicht gefällt. (--> Gewich, Größe)

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    03.09.2004
    Ort
    Hamburg
    Alter
    44
    Beiträge
    37
    Im Bezug auf deine gepostete Website:

    Eine Möglichkeit das zu tun wäre, wenn du den Eingang mit den Pulsen des Empfängers mit dem PIC überwachst. Du zählst einfach wie lang die einzelnen Kanalimpulse sind. In der Schaltung ist der Empfänger auf RB0 gesetzt und dort ist ein Interrupt, welcher immer, wenn ein Wechsel von low auf High stattfindet, einen Interrupt auslöst, welcher wahrscheinlich einen Counter startet und dann pollt man auf die Flanke High low und stoppt den counter. Damit kann man die einzelnen Kanalweiten "durchmessen". Speicherst du die Werte ab und erzeugst dann über I/O Pins die gleiche Abfolge für die Fahrtenregler. Es ensteht allerdings eine Zeitverschiebung der Signale, aber man könnte es auch versuchen während der Kanalmessungen schon Werte zu schalten.

    So long...

    Edit: Rechtschreibfehler

  3. #13
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.06.2004
    Beiträge
    256
    Das geht schon per Software aber bei 4 Kanälen wird es knapp.

    Nehmen wir mal einen 16FXX mit 20MHz Takt, der arbeitet mit 5MIPs ergibt bei 3kHz 1.667 Maschinenzyklen pro Periode. Das schafft man auch noch locker per Timerinterrupt.
    BlackBox

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    10.05.2004
    Beiträge
    75
    für TomHumpen. Danke für die Erklärung. Das messen ist ja nicht das Problem sondern das Ausgeben von 3kHz PWM

    für BlackBox
    Mein Problem: Meine Routine breauch ca 30 Befehle zum überprüfen ob der einer der 4 Ports auf high oder low geschaltet werden müssen. Die auflösung meines Programmst ist 8bit. Also muss ich die Routine 255mal laufen lassen.
    Ergibt 7650 Befehle. Und das mach leider eine frequenz von 130hz bei 4 Mhz Systemtakt.
    Zur Erklärung meines Programmst

    x
    Vergleichen ob 1/0 (bei 4 Pins)
    Schleifenzäler (255) und sprung zu x

    Falls es eine andere Lösung gibt oder jemand eine andere Sicht hat. Vielen Dank im Vorraus

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    03.09.2004
    Ort
    Hamburg
    Alter
    44
    Beiträge
    37
    Versuch die PWM doch per Software und Timer Interrupts zu machen. Du mißt die 4 Impulslängen bei RB0 und dannach gibtst du diese Zählwerte nacheinander an den Timer, setzt den ersten PIN auf 1, läßt den Timer runterzählen und bei 0 wird eine Interruptroutine gestartet welche den PIN wieder auf 0 setzt. Und das für alle 4 Werte und 4 Pins.
    Wenn dir das zu heikel (oder zu Zeitunsicher) ist machs in Assembler mit NOP und Zählschleifen welche als Wert die Eingangsimpulsdauer hat. Da solltest du genau die gemessene Pulsweite an einen beliebigen PIN ausgeben können. So gibtst du nacheinander alle 4 Kanäle aus. Da du max. bei 4 Kanälen 8ms dafür brauchst, sollte das kein Problem sein in der Intervallpause der Fernsteuerung das auszuführen.

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    10.05.2004
    Beiträge
    75
    an TomHumpen
    Muss mir das mal mit den Interrupts überlegen (brauche Zeit bin kein schnell Denker) das mit nop funktioniert sicher nicht. Weil ich muss den Pin ein und im richtigen Moment ausschalten. Und das für 4 Pins. Und nur zum Überprüfen ob ich das Ding ausschalten muss bruach ich für 4 Pins ca 30 Befehle. Bei einer auflösung von 8bit ergibt das 7650 und wir wären wieder bei meinem alten Posting.

    mfg Matthias

  7. #17
    Benutzer Stammmitglied
    Registriert seit
    03.09.2004
    Ort
    Hamburg
    Alter
    44
    Beiträge
    37
    nachmal die Assembler Idee

    4 gemessene Pulsweiten wegspeichern(Zeit1, Zeit2, Zeit3,Zeit4)

    ;Software PWM

    RRF Zeit1,1 ;Rechtshift= Division mit 2 weil Goto 2 Takte braucht
    bsf PORTB,1 ;setzt PIN1 auf high
    PIN1 ;Sprungmarke
    decfsz Zeit1,1 ;Zeit = Zeit - 1
    goto PIN1 ;Schleife (Braucht wie gesagt 2 Takte, deswegen der
    Rechtsshift
    bcf PORTB,1 ;setzt den PIN auf LOW
    bsf PORTB,2 ;setzt PIN2 auf high
    PIN2 ;2 Sprungmarke
    .
    .
    .

    bis alle 4 Pins durch sind. Dann wartetst du wieder auf den ersten Interrupt auf PIN B0. Du musst die gemessene Zeit nur durch 2 teilen, weil goto 2 Takte braucht. Ansonsten sollte das funktionieren und auch sehr Zeitgenau sein, da die Befehle ausgezählt sind. Das läßt sich sicher noch optimieren, aber es sei nur eine Idee.
    Jetzt hast du 2 Ansätze, wie gesagt viel Erfolg.
    ________________
    TomHumpen

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.06.2004
    Beiträge
    256
    Im Prinzip startest Du einen Timer zum Anfang einer Periode (ist für alle Kanäle gleich) und berechnest, wann der erste Kanal ausgeschaltet werden muss. Mit dem Wert "fütterst" Du den Timer und schaltest beim ersten Interrupt diesen Kanal ab. Dann weiter mit den drei anderen. gehen würde das, aber warum der Aufwand, wenn es MCs mit 4 PWM-Modulen gibt?
    BlackBox

  9. #19
    Benutzer Stammmitglied
    Registriert seit
    10.05.2004
    Beiträge
    75
    Ok Leute vielen Dank für eure Arbeit. Ihr habt mir sehr geholfen. Werd mal schauen was ich zusammenbringe.
    An Blackbox "aber warum der Aufwand, wenn es MCs mit 4 PWM-Modulen gibt?"
    Wie heißt das Ding und wo bekomm ich es? Genau sowas wäre super

  10. #20
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.06.2004
    Beiträge
    256
    Hab ich doch oben schon geschrieben:
    Zitat Zitat von BlackBox
    Hallo srem,

    entweder Du verwendest zwei Prozessoren mit 2 PWM-Ausgängen oder schau dir mal die PIC18Fxx31 Serie an. Die haben 4 PWM Module und ein paar nette weitere Features integriert. Als Compiler könntest Du die 60 Tage Testversion (nach 60 Tagen einfach neu inst.) des C18 Compilers verwenden

    20A ist schon ein ganz schöner Brocken. Gut 3kHz sind noch human aber wenn die 20A Dauerstrom sind, dann brauchst Du sehr gute Fets und gute Treiber sonst sind die Schaltverluste enorm.
    BlackBox

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

12V Akku bauen