Hallo,
ich habe das jetzt mal mit dem IO16 ausprobiert.
Allerdings macht es erst Sinn, wenn man 125Hz verwendet. Denn sonst flackert es. Also praktisch 8 Helligkeitsstufen. Was prinzipiell erstmal ok wäre. Komischerweise klappt das nur, wenn ich die LEDs von einem IO16 am Port A mit dieser Methode anspreche. Wenn ich zusätzlich Port B von dem IO16 anspreche flackert es wieder und klappt nur, wenn ich die Freqzenz verdopple.
Hier mal eine kleines Codebeispiel (Java) dazu:
static void setIntensity(BrickletIO16 io, int intensity)
{
long start = System.currentTimeMillis();
int runtime = 1000;
int hz = 125; //1000/8
int maxIntensity = 255;
while(start + runtime > System.currentTimeMillis())
{
for(int i=0;i<(1000/hz);++i)
{
if (i<(int)(((1000/hz)/(float)maxIntensity)*intensity))
{
io.setPortConfiguration('a', (short)(0xFF), 'o', true);
//io.setPortConfiguration('b', (short)(0xFF), 'o', true);
}
else
{
io.setPortConfiguration('a', (short)(0xFF), 'o', false);
//io.setPortConfiguration('b', (short)(0xFF), 'o', false);
}
try {Thread.sleep(1);} catch (InterruptedException e) {}
}
}
io.setPortConfiguration('a', (short)(0xFF), 'o', false);
//io.setPortConfiguration('b', (short)(0xFF), 'o', false);
}
...
setIntensity(io, 50);
setIntensity(io, 100);
setIntensity(io, 150);
setIntensity(io, 200);
setIntensity(io, 255);
Ist es irgendwie möglich die Daten an Port A und Port B gleichzeitig zu senden? Denn wenn ich insgesamt 4x IO16 Bricklets mit dieser Methode nutzen möchte, dann könnte ich (durch die Frequenzverdopplung) letztendlich nur 2 Helligkeitsstufen (ein/aus) nutzen.
Danke