Optische Wahrnehmung PWM-Blinken

Hallo,

ich habe ein kleines Programm geschrieben, dass die eingebaute LED am Pin 13 meines Arduino MEGA blinken lässt (mit PWM). Im Prinzip funktioniert es genauso wie der Sketch "Fading". Dennoch hier mein Code (Java):

while (true) {
	for (int i = 0; i < 256; i++) {
		output.setValue(i);
		System.out.println("i=" + i);
		Thread.sleep(4);
	}
	System.out.println("AN");

	for (int i = 255; i >= 0; i--) {
		output.setValue(i);
		System.out.println("i=" + i);
		Thread.sleep(4);
	}
	System.out.println("AUS");
}

An sich funktioniert auch alles. Nur finde ich es komisch, dass die LED im Gegensatz zum Wert i - der ja linear zu- bzw. abnimmt - augenscheinlich nicht linear (proportional zur Zeit) ihre Helligkeit ändert. So wie ich es wahrnehme, wird die Helligkeitsänderung mit Zunahme der Helligkeit kleiner. Das führt dazu, dass es so aussieht, als würde die LED von 0 auf 255 gehen, dann kurz abwarten (ca. 1s) und dann erst wieder dunkler werden, während die Zeitspanne, in der die LED aus ist, kaum bis gar nicht wahrnehmbar ist (was ja gegen den Code spricht).

Das ist normal, da sowohl das Auge, als auch die LED nicht linear sind.
Eine Abhandlung darüber findest Du hier.

Gruß Tommy

Danke!