Guten Abend zusammen, Ich bastle mir gerade mit einem Arduino Nano V3.0 eine Lichtsteuerung mit IR Fernbedienung, die per PWM (analogWrite(0-255) N Mosfets ansteuert, die wiederum der LED die Masse geben. Da ich einen RGBCW LEDstreifen (24V) benutze brauche ich dafür 5 PWM Pins am Arduino (3,5,6,9,10; 11 bleibt frei). Jetzt habe ich aber einen Konflikt mit der IRRemote Bibliothek, die ebenso wie PWM PIN 3 & 11 den Hardwaretimer 2 nutzt. Daher schaltet pin 3 beim Andimmen auf einen Schlag ein, ab welchem analogWrite - Wert muss ich noch testen. Daher meine Frage: wie löse ich diesen Timer Konflikt, bzw. wo kommt er her? Ausweichen auf andere Pins geht ja aufgrund der Anzahl nicht… Danke schonmal für alle Tipps, Philipp PS: ich hoffe ihr versteht mein Problem, ich beantworte natürlich alle Rückfragen
Philipp K. schrieb: > wie löse ich diesen Timer Konflikt, bzw. wo kommt er > her? Philipp K. schrieb: > wo kommt er > her? Die Bibliothek nutzt einen Timer als Interrupt, um das Eingangssignal zu Samplen. https://github.com/Arduino-IRremote/Arduino-IRremote?tab=readme-ov-file#timer-and-pin-usage Und denk dran, dass millis() auch einen Timer nutzt. Philipp K. schrieb: > wie löse ich diesen Timer Konflikt Mit einem PCA9685 zum Beispiel. Gut, die 16 Kanäle sind zwar vielleicht ein bisschen overkill, aber dafür 12bit und du kannst noch weitere Strips anschließen, wenn du sie einplanst
Sebastian R. schrieb: > Mit einem PCA9685 zum Beispiel. Habe ich auch hier rumliegen (zum ausprobieren), einfacher gehts kaum und echt einfach in der Handhabung. Wäre evtl. echt eine Idee für den TO.
Philipp K. schrieb: > Daher meine Frage: wie löse ich diesen Timer Konflikt Mit diesem Arduino? Gar nicht. Nimm einen Arduino mit mehr PWM-fähigen Pins und am besten auch höherer PWM-Auflösung (mehr als 8 Bit). Oder halt einen externen PWM-Treiber. https://support.arduino.cc/hc/en-us/articles/9350537961500-Use-PWM-output-with-Arduino
Hallo, wenn der Formfaktor "Nano" wichtig ist, könntest du den "Arduino Nano Every" nehmen, dazu das Core Package https://github.com/MCUdude/MegaCoreX, dann hat man mehr PWM Pins zur Verfügung und noch mehr Vorteile.
:
Bearbeitet durch User
Entschuldigt bitte, dass ich mich erst jetzt melde. Vielen Dank an euch alle für die vielen Hinweise. Sebastian R. schrieb: > > Mit einem PCA9685 zum Beispiel. So einen habe ich mir jetzt bestellt, um damit meine Mosfets (IRlZ34N) für den LED Streifen zu schalten. Ich berichte dann nochmal wenn er da und eingebaut ist… Danke nochmal, Gruß
Philipp K. schrieb: > So einen habe ich mir jetzt bestellt, um damit meine Mosfets (IRlZ34N) > für den LED Streifen zu schalten. Du solltest jedoch beachten, dass der PCA9685 am Ausgang auch nur um die 25mA liefern kann. Bezüglich Gate Widerstand, Total Gate Charge, Rise Time...
Adam P. schrieb: > PCA9685 > 7.7 Using the PCA9685 with and without external drivers > • OUTDRV bit (MODE2 register) allows minimizing the > amount of external components > required to control the external driver (N-type or P-type device). Aus: https://www.nxp.com/docs/en/data-sheet/PCA9685.pdf Auch ab Seite 35 sehe ich keine Gatewiderstände... Wobei die fertigen Boards mit dem Chip alle (zumindest die ich kenne) 220R in den Pin Leitungen haben. Das sollte als Gatewiderstand reichen. Wobei ich da je nach P oder N Chanel FET auch noch Pullup oder Pulldown vorschlagen würde.
Arduino F. schrieb: > Wobei ich da je nach P oder N Chanel FET auch noch Pullup oder Pulldown vorschlagen würde. Ja genau, die sind schon eingebaut (10kO).
Wenn man frei bei der Wahl des IR-Protokolls ist, könnte man auch das NEC-Protokoll nehmen. Das ist schön klein in der Codegröße und braucht keinen Interrupt. Alternativ könnte man auch einen 20 kHz-Oszillator (1 Gatter+R+C) an einen Portpin hängen, letzteren auf Pinchange-Interrupt stellen und damit die IRRemote-Interruptfunktion auslösen. Aber der PCA ist die komfortabelste Variante, die PWM-Qualität verbessert sich und man hat genug Erweiterungsmöglichkeiten.
Mario M. schrieb: > Aber der PCA ist die komfortabelste Variante, die PWM-Qualität > verbessert sich und man hat genug Erweiterungsmöglichkeiten. Ohne Frage ist der PCA komfortabel. Und 12 Bit PWM-Auflösung sind auch besser als 8 Bit. Aber wie gesagt: es gibt auch Arduinos jenseits vom ATMega328. Und die haben das eingebaut (kein extra Chip). Beides, die höhere Auflösung und mehr Kanäle. Wenn man auf das Arduino-Gedöhns verzichtet und lernt zu programmieren, kann man natürlich auch auf dem ATMega PWM mit bis zu 16 Bit machen (Soft-PWM). Mit 3 Kanälen hab ich das schon gemacht, es gehen aber bis zu 8 Kanäle (müssen dann auf dem gleichen Port liegen). Oder man schaut sich bei anderen Herstellern um. Der STM8S105 hat 8(?) PWM-Kanäle in 16 Bit. Und IRMP läuft da auch drauf.
Axel S. schrieb: > es gibt auch Arduinos jenseits vom > ATMega328. Man kann ihn auch auf den ATmega328PB umlöten, der hat 5 16Bit PWM Ausgänge.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.