PCA9685 Wie versteh ich das mit den Ticks?

Hi,

kann mir das hier jemand mal etwas bildlicher erklären?

Description
This function sets the start (on) and end (off) of the high segment of the PWM pulse on a specific channel. You specify the 'tick' value between 0..4095 when the signal will turn on, and when it will turn of. Channel indicates which of the 16 PWM outputs should be updated with the new values.

Arguments
channel: The channel that should be updated with the new values (0..15)
on: The tick (between 0..4095) when the signal should transition from low to high
off:the tick (between 0..4095) when the signal should transition from high to low

Example
pwm.setPWM(15, 1024, 3072)
The following example will cause channel 15 to start low, go high around 25% into the pulse (tick 1024 out of 4096), transition back to low 75% into the pulse (tick 3072), and remain low for the last 25% of the pulse:

Es mangelt mir nicht am Englischen - sondern einfach nur am technischen VErständnis, was genau da passiert,
Insbesondere das Beispiel versteh ich nicht....

Besten Gruß
Thorsten

currymuetze:
Es mangelt mir nicht am Englischen - sondern einfach nur am technischen VErständnis, was genau da passiert,
Insbesondere das Beispiel versteh ich nicht....

Eine PWM-Periode besteht aus 4096 Timer-Ticks. Also 12-Bit PWM.

Im Beispiel beginnt das Signal anfänglich mit LOW, nach 1024 Ticks wechselt es auf HIGH und nach 3072 Ticks wieder auf LOW. Und nach 4096=0 Ticks fängt eine neue PWM-Periode mit demselben Ablauf an.

Die ansteuerung der Servos erfolgt mit einem 1 bis 2 mS langen Impuls der alle 20mS wiederholt wird (50Hz). Darum sind nicht alle möglichen PWM-Werte für Servos geeignet. Nur Pulsraten zwischen 5 und 10%. (manche Servos verstehen auch löängere bzw kürzere Impulse bzw höher Frequenzan als 50Hz.
Grüße Uwe

Hi,
in meinem Fall geht es um LED Steuerung.
Versteh ich das richtig:

pwm.setPWM(x, 4095,0) => nach 4095 Ticks geht es für 0 Ticks auf HIGH, also ist die LED immer aus? Laut FAQ muss der erste Wert 4096 sein, versteh ich allerdings nicht, da es doch von 0-4095 und nicht von 1-4096 gezählt wird? FAQ | Adafruit PCA9685 16-Channel Servo Driver | Adafruit Learning System

pwm.setPWM(x, 0,4095) => LED komplett an auf 100%

eine Dimmung über einen Zeitraum von 10 Minuten würden dann bedeuten, dass ich gleichzeitig den ersten Wert von 0 bis 4095 erhöhe und den zweiten Wert von 4095 auf 0 senke? Also (0,4095) > (1,4094) > (2, 4093) etc.? Also muss die Summer beider Werte IMMER 4095 ergeben??

BG
Thorsten

currymuetze:
pwm.setPWM(x, 4095,0) => nach 4095 Ticks geht es für 0 Ticks auf HIGH, also ist die LED immer aus?

Glaube ich nicht. Meiner Meinung nach ist die LED immer dann aus, wenn Einschaltzeitpunkt und Ausschaltzeitpunkt identisch sind. Und Dein Funktionsaufruf würde dazu führen, dass die LED für einen Tick ein ist: Einschalten bei Tick 4095 und Ausschalten bei Tick 0 (was wegen des 12-Bit Überlaufs bei 4096 nach einem Tick der Fall ist).

Also ich bin der Meinung

pwm.setPWM(x, 0,0)

wäre genau so "immer aus" wie:

pwm.setPWM(x, 4095,4095)

Würde mich wirklich wundern, wenn es anders wäre.

currymuetze:
Also muss die Summer beider Werte IMMER 4095 ergeben??

Davon kann ich nirgends etwas erkennen. Du programmierst den Einschalttick und den Ausschalttick. Jeder kann sich zwischen 0 und 4095 bewegen. Probiere auch ruhig mal aus, den Einschalttick auf einen höheren Wert als den Ausschalttick zu setzen, z.B.:

pwm.setPWM(x, 4000,3800)

Wenn die LED bei Tick 4000 ein- und bei Tick 3800 ausgeschaltet wird, entspricht das möglicherweise einer Einschaltdauer von
4096-(4000-3800)=3896 Ticks

Wenn Du die Hardware bei Dir vorliegen hast, dürfte es ja nicht zu schwierig sein, das herauszubekommen.

Dokumentiert ist jedenfalls nur, dass der Ausschalttick größer als der Einschalttick sein soll.

Ok, habe ich soweit verstanden. Werd damit mal ein wenig testen.
So wie ich gelesen habe, spielt ja auch die PWM-Frequenz noch eine Rolle, die man bei dem IC ja einstellen kann.

Für mich als Laien: Wie finde ich denn heraus, welche Frequenz ich benötige bzw. ob eine Frequenz zu hoch oder niedrig ist?
Das einzige Phänomen das ich bisher mit der PWM Frequenz in Verbindung setzen kann ist das Fiepen meines 24v Netzteils.

BG
THorsten

Bei LEDs reichen auch ganz niedrige Frequenzen. Das Auge ist langsam. Fernseher laufen schließlich auch nur mit 50Hz oder 100Hz (wobei es auch neuere Modelle mit mehr gibt).