Ankündigung

Einklappen
Keine Ankündigung bisher.

Arduino 6CH PWM mit HW 1.2 möglich?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Arduino 6CH PWM mit HW 1.2 möglich?

    Hallo,
    ich versuche mich gerade an einem 6CH PWM generator für die Steuerung meiner dezentralen Lüfter. Nachdem ich dafür gern die interne PWM-Funktion der Arduinos mit hoher Frequenz verwenden würde stellen sich für mich 2 Fragen:
    -) Sind bei HW1.2 die PWM pins noch verfügbar (hab leider im Moment keine Eagle, um das .sch zu öffnen)
    -) kann ich die Timerregister beliebig verändern oder wird für Konnekting irgend ein timer verwendet (z.b. durch "millis()")

    Danke!
    Christoph

    #2
    Zu den Timer-Registern:

    Im Code gibt es keine Stelle wo delay() benutzt wird. Aber von "millis()" wird schon gebraucht gemacht. Geht auch nicht direkt ohne, da der BCU ein recht striktes Timing vorgibt das wir einhalten müssen.

    Zu PWM im allgemeinen:

    Man kann natürlich die PWM Pins des Arduino benutzen und sich da in den Registern "verlieren". Man spart dadurch externe Komponenten und ein paar Euros. Man kann aber auch PWM Shields verwenden die per I2C angeschlossen werden. Da kann man dann bequem alles einstellen, ohne den Arduino und seinen internen Abläufe zu beeinflussen. Auflösung und die Anzahl der Kanäle sind dann "besser":

    http://www.ebay.de/itm/16-Channel-12...4AAOSw5cNYOI3A

    Kommentar


      #3
      Hallo Christoph,

      meine 2cents:
      wie Alex sagte, man darf Timer0 nicht verändern (gilt eigentlich für alle AVR-basierte Arduinos), sonst werden millis/delay Funktionen zerstört.
      Timer1,3 und 4 (und dazugehörige Pins) kannst aber natürlich nutzen. HW1.2 nutzt ProMicro und der hat leider nicht alle PWM pins "draußen"...

      Für LED-PWM habe ich eine Lib geschrieben (4CH): https://github.com/Adminius/Dimmer32u4

      Welche Frequenz und welche Auflösung brauchst du? Wenn dir die Auflösung von 12bit und Frequenz bis 1400Hz reicht, dann kannst du den von Alex vorgeschlagenen Chip nutzen.


      Kommentar


        #4
        Sind bei HW1.2 die PWM pins noch verfügbar (hab leider im Moment keine Eagle, um das .sch zu öffnen)
        Als Tipp: das ist genau das gleiche Layout wie der Arduino ProMicro hat, alles was der ProMicro kann kann auch die HW1.2, alle Pins sind absolut identisch, außer das RX & TX für KNX belegt sind.
        Den Prog-Button kann man auf Pin: 2,3 oder 7 legen. Default habe ich ihn in der HW1.2 immer auf Pin7 gelegt.
        https://learn.sparkfun.com/tutorials...view-pro-micro
        Zuletzt geändert von Masifi; 02.05.2017, 10:06.
        www.smart-mf.de | KNX-Klingel | GardenControl | OpenKNX-Wiki

        Kommentar


          #5
          Danke euch für die Infos!
          1-fach Arduino-Lösung kann ich also vergessen .

          Mein "Problem" ist, dass ich gern PWM-Frequenzen jenseits der 20kHz verwenden würde (ist nicht für LEDs, sondern für die Lüfter, die gern Gleichspannung hätten - kleinerer Kondensator...).
          Ich hab mir schon das ganze Wochenende einen Wolf gesucht - hab keine I/O expander gefunden, die standalone PWM über SPI oder I2C in dem Frequenzbereich machen - und das für min. 6 Kanäle.
          Ich spiele mittlerweile mit dem Gedanken, einen 2. Arduino als port extender zu verwenden, der dann die PWM macht... es wird kompliziert...

          Kommentar


            #6
            vielleicht ist der PCA9635 was für dich?

            Kommentar


              #7
              der hat - wie so viele andere auch - in etwa 200Hz PWM Frequenz (ideal für LEDs).
              Die info findet man meist erst im "kleingedruckten" der Datenblätter. In der Übersicht wird oft mit 1MHz etc. geworben - das ist dann meist die max. Frequenz des seriellen Busses...
              Vielleicht merkt man schon ein wenig meine beginnende Frustration

              Kommentar


                #8
                Zitat von Sonnengruesser Beitrag anzeigen
                der hat - wie so viele andere auch - in etwa 200Hz PWM Frequenz (ideal für LEDs).
                Die info findet man meist erst im "kleingedruckten" der Datenblätter. In der Übersicht wird oft mit 1MHz etc. geworben - das ist dann meist die max. Frequenz des seriellen Busses...
                Vielleicht merkt man schon ein wenig meine beginnende Frustration
                Dann schau mal ins Datenblatt. "Each LED output has its own 8-bit resolution (256 steps) fixed frequency individual PWM controller that operates at 97 kHz with a duty cycle that is adjustable from 0 % to 99.6 % to allow the LED to be set to a specific brightness value." Der ist anders (was man sich mit geringerer Auflösung erkauft)

                Kommentar


                  #9
                  auf den 2. Blick könnte der 2 überlagerte PWM-Signale haben. Wenn ich das Datenblatt richtig verstehe...
                  manno! danke erst malandi11

                  Kommentar


                    #10
                    Warum soll HW1.2 sein?
                    https://knx-user-forum.de/forum/proj...%B2c-spi-1wire
                    Das hier kann bis zu 12 PWMs.
                    200khz wären überhaupt kein Problem bei ca 8bit..

                    Kommentar


                      #11
                      Ich brauche auch eine galvanische Trennung zu den Treibern, die ist vermutlich einfacher über die SPI/I2C Schnittstelle machbar. Außerdem bleib ich erst mal beim kleinen Arduino - den kenn ich mittlerweile ein wenig...
                      Falls das nicht funzt werd ich mir deinen Vorschlag noch mal ansehen.

                      Kommentar


                        #12
                        Galvanische Trennung mit i2c ist einfacher. Da kannst du z.B. ADUM1250 nehmen

                        Kommentar

                        Lädt...
                        X