Ich habe folgendes Problem:
Ich möchte alle 6 PWM eines ATMEGA328 unabhängig voneinander nutzen und gleichzeitig die IR-Bibliothek "IRremote by shirriff v2.2.3"
Der ATMEGA328 wird in einem UNO programmiert, soll aber nachher standalone laufen.
Leider scheint es da einen Konflikt mit den vorhandenen Timern zu geben. Sobald die IR-Biblithek genutzt wird funktioniert PWM auf den Ausgängen 3 und 11 nicht mehr.
Das liegt wohl an Timer 2 der von der IR-Bibliothek genutzt wird und für PWM für 3 und 11 benötigt wird.
Sieht irgendjemand eine Möglichkeit wie ich mein Vorhaben so umsetzen kann?
So wie es jetzt aussieht, kannst du es nur mit weiterer Hardware lösen.
Entweder einen externen IR-Controller (Atmega328 oder ATtiny85), oder einen externen PWM-Controller.
Edit:
Evtl. funktioniert es auch per Soft-PWM. Da habe ich aber keine Erfahrung.
@HotSystems
Das mit dem ATTINY45 als IR-Empfänger hatte ich auch schon ins Auge gefasst. Hatte gehofft es ginge anders.
Soft-PWM kling interessant. Da müsste ich mich erstmal einlesen.
@gregorss
Ehrlich gesagt kann ich die Frage (Frequenz, Auflösung) nicht beantworten.
Was bedeutet es, das "zu Fuß" zu lösen?
Es sollen 6 LEDs unabhängig voneinander Flackern (Zufallszahl für PWM-Wert und Zufallszahl für Leuchtdauer)
so-mal eine kurze Rückmeldung.
Grundsätzlich funktioniert SoftPWM. Danke für den Super Tip.
Aber die Bibliothek "IRremote by shirriff v2.2.3" kollidiert irgendwo mit SoftPWM. Daraufhin habe ich die aktuelle Version "IRremote by shirriff v2.8.1" installiert.
Die kollidiert nicht mehr mit SoftPWM, erkennt leider aber auch die Signale meine Fernbedienung nicht mehr.
Also ich bin noch am basteln. Aber noch guter Hoffnung
MoBaTools funktioniert leider nicht für mich. Direktes ansteuern der Ausgänge mit MoBaTools geht nur auf dem ESP8266. Auf dem Arduino kann MoBaTools eine LED leider nur Ein und Aus faden.
diwo:
MoBaTools funktioniert leider nicht für mich. Direktes ansteuern der Ausgänge mit MoBaTools geht nur auf dem ESP8266. Auf dem Arduino kann MoBaTools eine LED leider nur Ein und Aus faden.
Verstehe ich nicht.
Was anderes möchtest du mit PWM und Leds denn noch machen ?
HotSystems:
Verstehe ich nicht.
Was anderes möchtest du mit PWM und Leds denn noch machen ?
Also
Die 6 LED werden in zufälligen Intervallen mit Zufälligen PWM-Werten (in bestimmten Grenzen) angesteuert. Damit erscheint es als würden diese flackern.
Das passt dann optisch perfekt zu den Christbaum-Kerzen, die auch so flackern.
diwo:
Also
Die 6 LED werden in zufälligen Intervallen mit Zufälligen PWM-Werten (in bestimmten Grenzen) angesteuert. Damit erscheint es als würden diese flackern.
Das passt dann optisch perfekt zu den Christbaum-Kerzen, die auch so flackern.
Ok, ich selbst habe das noch nicht probiert, sollte aber funktionieren.
Der Autor ist auch hier im Forum aktiv, sollte er sich nicht dazu äußern, evtl. mal per PM hierauf aufmerksam machen und einen Link senden.
In der Tat sind die MobaTools darauf ausgelegt, Led's 'weich' ein- und auszuschalten. Dauerhafte Zwischenzustände sind nur auf dem ESP8266 möglich ( der macht PWM sowieso komplett in Software, der hat gar keine HW dafür ).
Inwieweit man dann durch zufallssgesteuertes schnelles Ein-Ausschalten solche Effekte erzeugen kann, müsste man ausprobieren. Vorgesehen war so etwas nicht.
HotSystems:
Sorry, dass ich durch mein "Nichtwissen" zu viel "versprochen" habe.
Kein Grund sich zu entschuldigen. Immerhin hätte das ja gut funktionieren könne. Und zudem habt ihr mich hier in dem Forum auf SoftPWM aufmerksam gemacht. Und das ist ja tatsächlich ein vielversprechender Ansatz.
MicroBahner:
Dauerhafte Zwischenzustände sind nur auf dem ESP8266 möglich ( der macht PWM sowieso komplett in Software, der hat gar keine HW dafür ).
Dann hatte ich das doch richtig gelesen ( Puh ).
Ich werde hier auf jeden Fall Rückmeldung geben, ob ich die IR-Bibliothek zusammen mit SoftPWM ans Laufen bekommen habe.
gregorss:
Mehrere kHz sind normalerweise kein Problem.
Nun ja,.... gehen wir also von 5kHz aus. Das bedeutet eine Periode von 200 µs. Willst Du dann eine Auflösung von 8Bit ( 255 Stufen ) haben, wäre der kürzeste Impuls < 1µs. Und das willst Du auf einem Standard-Arduino (AVR) problemlos in Software realisieren?
Aber glücklicherweise braucht man für die Ansteuerung von Led's ja nicht mehrere kHz .