Goedendag tweakers,
Ik loop een beetje vast in de volgende situatie:
Ik ben bezig met het programmeren van ledjes via arduino. Echtrer leek mij het leuk om mijn bureau leds aan te sturen via zelf geschreven software in c# en dan via serial->usb de data overdracht te doen.
Ik had het dus als volgt ingedachten:
PC -> Arduino(fastled) -> fledjes
Ik stuur de opdracht via c# PER led via bytes
In arduino verwerk ik deze code
Het probleem:
Wanneer ik geen
Thread.Sleep(5); gebruik per fastled.show worden de acties genegeerd door arduino. Echter komen ze wel aan.
Wanneer ik het zelfde uitvoer rechtstreeks op de arduino dan is er niks aan de hand.
Nu vraag ik mij af:
Wat kan het zijn? Is arduino niet geschikt om snel 90 leds te veranderen van kleur?
Alvast bedankt
Ik loop een beetje vast in de volgende situatie:
Ik ben bezig met het programmeren van ledjes via arduino. Echtrer leek mij het leuk om mijn bureau leds aan te sturen via zelf geschreven software in c# en dan via serial->usb de data overdracht te doen.
Ik had het dus als volgt ingedachten:
PC -> Arduino(fastled) -> fledjes
Ik stuur de opdracht via c# PER led via bytes
code:
1
2
3
4
5
6
7
8
9
| byte[] ChangeLed = new byte[7]; ChangeLed[0] = (byte)number; ChangeLed[1] = (byte)hue; ChangeLed[2] = (byte)sat; ChangeLed[3] = (byte)val; ChangeLed[4] = (byte)bri; ChangeLed[5] = (byte)nscale;//nscale ChangeLed[6] = (byte)fastledshow; //1 = fastled.show Arduino.Write(ChangeLed, 0, 7); |
In arduino verwerk ik deze code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| void loop() { while (Serial.available()>0){ delay(10); //small delay to allow input buffer to fill char R[5]; Serial.readBytes(R, 7); // Read 4 bytes and write it to R[4] int Led = R[0]; int Hue = R[1]; int Sat = R[2]; int Val = R[3]; int Bri = R[4]; int nscale = R[5]; int fastled_show = R[6]; if(nscale >0 ) { leds[Led].nscale8 ( nscale); }else { leds[Led] = CHSV(Hue, Sat, Val); } if(fastled_show == 1) { FastLED.show(); } Serial.write("succes"); } } |
Het probleem:
Wanneer ik geen
Thread.Sleep(5); gebruik per fastled.show worden de acties genegeerd door arduino. Echter komen ze wel aan.
Wanneer ik het zelfde uitvoer rechtstreeks op de arduino dan is er niks aan de hand.
Nu vraag ik mij af:
Wat kan het zijn? Is arduino niet geschikt om snel 90 leds te veranderen van kleur?
Alvast bedankt