Ledstrip in 13 stukjes verdeeld
9 berichten
• Pagina 1 van 1
- Nicoooootje
- Berichten: 10
- Geregistreerd: 10 Aug 2020, 20:29
- Woonplaats: 's-Hertogenbosch (Hintham)
Ledstrip in 13 stukjes verdeeld
Heb het volgende waar ik niet uitkom. Tenminste heb het werkend maar volgens mij kan het eenvoudiger.
Heb een ledstrip WS2812b van 299 leds. Deze gebruikt ik voor mijn trap en heb deze opgedeeld in 13 strips van 23 leds. Nu heb ik een stukje code waar ik graag zou willen dat de 13 strips precies hetzelfde doen. Heb het nu als volgt opgelost maar volgens mij moet dit met veel minder code kunnen.
Heb een ledstrip WS2812b van 299 leds. Deze gebruikt ik voor mijn trap en heb deze opgedeeld in 13 strips van 23 leds. Nu heb ik een stukje code waar ik graag zou willen dat de 13 strips precies hetzelfde doen. Heb het nu als volgt opgelost maar volgens mij moet dit met veel minder code kunnen.
- Code: Alles selecteren
void OutsideToCenter(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay) {
for (int i = 0; i <= ((23 - EyeSize) / 2); i++) {
//setAll(0, 0, 0);
strip.setPixelColor(i, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 23, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 46, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 69, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 92, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 115, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 138, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 161, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 184, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 207, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 230, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 253, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 276, red / 10, green / 10, blue / 10);
for (int j = 1; j <= EyeSize; j++) {
strip.setPixelColor(i + j, red, green, blue);
strip.setPixelColor(i + 23 + j, red, green, blue);
strip.setPixelColor(i + 46 + j, red, green, blue);
strip.setPixelColor(i + 69 + j, red, green, blue);
strip.setPixelColor(i + 92 + j, red, green, blue);
strip.setPixelColor(i + 115 + j, red, green, blue);
strip.setPixelColor(i + 138 + j, red, green, blue);
strip.setPixelColor(i + 161 + j, red, green, blue);
strip.setPixelColor(i + 184 + j, red, green, blue);
strip.setPixelColor(i + 207 + j, red, green, blue);
strip.setPixelColor(i + 230 + j, red, green, blue);
strip.setPixelColor(i + 253 + j, red, green, blue);
strip.setPixelColor(i + 276 + j, red, green, blue);
}
strip.setPixelColor(i + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 23 + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 46 + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 69 + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 92 + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 115 + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 138 + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 161 + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 184 + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 207 + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 230 + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 253 + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(i + 276 + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 23 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 46 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 69 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 92 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 115 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 138 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 161 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 184 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 207 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 230 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 253 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 276 - i, red / 10, green / 10, blue / 10);
for (int j = 1; j <= EyeSize; j++) {
strip.setPixelColor(23 - i - j, red, green, blue);
strip.setPixelColor(23 + 23 - i - j, red, green, blue);
strip.setPixelColor(23 + 46 - i - j, red, green, blue);
strip.setPixelColor(23 + 69 - i - j, red, green, blue);
strip.setPixelColor(23 + 92 - i - j, red, green, blue);
strip.setPixelColor(23 + 115 - i - j, red, green, blue);
strip.setPixelColor(23 + 138 - i - j, red, green, blue);
strip.setPixelColor(23 + 161 - i - j, red, green, blue);
strip.setPixelColor(23 + 184 - i - j, red, green, blue);
strip.setPixelColor(23 + 207 - i - j, red, green, blue);
strip.setPixelColor(23 + 230 - i - j, red, green, blue);
strip.setPixelColor(23 + 253 - i - j, red, green, blue);
strip.setPixelColor(23 + 276 - i - j, red, green, blue);
}
strip.setPixelColor(23 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 23 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 46 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 69 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 92 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 115 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 138 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 161 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 184 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 207 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 230 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 253 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 + 276 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.show();
delay(SpeedDelay);
}
delay(ReturnDelay);
}
Advertisement
Re: Ledstrip in 13 stukjes verdeeld
ik zou define gebruiken dus strip[1] =23 strip[2]=46 ....
of nog simpeler for teller=0 to 13 step 1
{
strip[teller]=teller*23}
for teller 0 to 13
dan kun je dus ook strip.setpixelcolor(teller) in 1 regel zetten en die 13 keer herhalen.
en je kunt ook red/10 als een define neerzetten dus #define dimmedred 25 enz.
of nog simpeler for teller=0 to 13 step 1
{
strip[teller]=teller*23}
for teller 0 to 13
dan kun je dus ook strip.setpixelcolor(teller) in 1 regel zetten en die 13 keer herhalen.
en je kunt ook red/10 als een define neerzetten dus #define dimmedred 25 enz.
paul deelen
shooter@home.nl
shooter@home.nl
- Nicoooootje
- Berichten: 10
- Geregistreerd: 10 Aug 2020, 20:29
- Woonplaats: 's-Hertogenbosch (Hintham)
Re: Ledstrip in 13 stukjes verdeeld
Heb nu dit gedaan maar loopt niet lekker. Loopt eigenlijk helemaal niet.
- Code: Alles selecteren
void CenterToOutside(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay) {
for (uint16_t j = 0; j < 13; j++) {
int start = strip.numPixels() / 13 * j;
for (int i = ((23 - EyeSize) / 2); i >= 0; i--) {
//setAll(0, 0, 0);
strip.setPixelColor(i, red / 10, green / 10, blue / 10);
strip.setPixelColor(start + i, red / 10, green / 10, blue / 10);
for (int j = 1; j <= EyeSize; j++) {
strip.setPixelColor(i + j, red, green, blue);
strip.setPixelColor(start + i + j, red, green, blue);
}
strip.setPixelColor(i + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(start + i + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(23 - i, red / 10, green / 10, blue / 10);
strip.setPixelColor(start + i + 23 - i, red / 10, green / 10, blue / 10);
for (int j = 1; j <= EyeSize; j++) {
strip.setPixelColor(23 - i - j, red, green, blue);
strip.setPixelColor(start + i + 23 - i - j, red, green, blue);
}
strip.setPixelColor(23 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(start + i + 23 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
}
strip.show();
delay(SpeedDelay);
}
delay(ReturnDelay);
}
Re: Ledstrip in 13 stukjes verdeeld
dat snap ik wel, ik denk dat het allemaal erg snel gaat omdat de speeddelay niet op de goeie plek staat danwel er iets fout gaat met de haakjes.
paul deelen
shooter@home.nl
shooter@home.nl
- Nicoooootje
- Berichten: 10
- Geregistreerd: 10 Aug 2020, 20:29
- Woonplaats: 's-Hertogenbosch (Hintham)
Re: Ledstrip in 13 stukjes verdeeld
Heb de speed delay verplaatst en nu doet hij het. Alleen gaan de strips na elkaar aan en ze moeten alles tegelijker tijd doen. Heb de strip.show() ook al verplaatst maar zonder succes.
- Code: Alles selecteren
void CenterToOutside(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay) {
for (uint16_t j = 0; j < 13; j++) {
int start = strip.numPixels() / 13 * j;
for (int i = ((23 - EyeSize) / 2); i >= 0; i--) {
strip.setPixelColor(start + i, red / 10, green / 10, blue / 10);
for (int j = 1; j <= EyeSize; j++) {
strip.setPixelColor(start + i + j, red, green, blue);
}
strip.setPixelColor(start + i + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(start + i + 23 - i, red / 10, green / 10, blue / 10);
for (int j = 1; j <= EyeSize; j++) {
//strip.setPixelColor(23 - i - j, red, green, blue);
strip.setPixelColor(start + 23 - i - j, red, green, blue);
}
strip.setPixelColor(start + 23 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
strip.show();
delay(SpeedDelay);
}
delay(ReturnDelay);
}
}
Re: Ledstrip in 13 stukjes verdeeld
even voor je zelf een flowschema maken, en daar elke stap inzetten dan komt daar vanzelf een actievolgorde uit.
en lekker zelf puzzelen, ipv een kant en klare oplossing dioe ik je wel kan geven maar doe het niet
en lekker zelf puzzelen, ipv een kant en klare oplossing dioe ik je wel kan geven maar doe het niet
paul deelen
shooter@home.nl
shooter@home.nl
- Nicoooootje
- Berichten: 10
- Geregistreerd: 10 Aug 2020, 20:29
- Woonplaats: 's-Hertogenbosch (Hintham)
Re: Ledstrip in 13 stukjes verdeeld
Heb hem na wat uurtjes puzzelen zo als ik hem wil. maar....haha het gaat nu allemaal wat langzaam. Hoop dat je me kunt helpen om hem wat sneller te laten gaan. Heb de speeddelay en returndelay al uitgezet maar nog steeds te langzaam. Dit is wat ik nu heb.
- Code: Alles selecteren
for (int i = ((23 - EyeSize) / 2); i >= 0; i--) {
for (uint16_t j = 0; j < 13; j++) {
int start = strip.numPixels() / 13 * j;
strip.setPixelColor(start + i, red / 10, green / 10, blue / 10);
for (int j = 1; j <= EyeSize; j++) {
strip.setPixelColor(start + i + j, red, green, blue);
}
strip.setPixelColor(start + i + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(start + i + 23 - i, red / 10, green / 10, blue / 10);
for (int j = 1; j <= EyeSize; j++) {
strip.setPixelColor(start + 23 - i - j, red, green, blue);
}
strip.setPixelColor(start + 23 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
//delay(SpeedDelay);
strip.show();
}
//delay(ReturnDelay);
}
}
Re: Ledstrip in 13 stukjes verdeeld
iedere keer als je een andere toestand hebt moet je wel een strip.show doen.
paul deelen
shooter@home.nl
shooter@home.nl
- Nicoooootje
- Berichten: 10
- Geregistreerd: 10 Aug 2020, 20:29
- Woonplaats: 's-Hertogenbosch (Hintham)
Re: Ledstrip in 13 stukjes verdeeld
De show.strip stond idd verkeerd. Nu werkt het. Dankje wel
- Code: Alles selecteren
void CenterToOutside(byte red, byte green, byte blue, int EyeSize, int SpeedDelay, int ReturnDelay) {
for (int i = ((23 - EyeSize) / 2); i >= 0; i--) {
for (uint16_t j = 0; j < 13; j++) {
int start = strip.numPixels() / 13 * j;
strip.setPixelColor(start + i, red / 10, green / 10, blue / 10);
for (int j = 1; j <= EyeSize; j++) {
strip.setPixelColor(start + i + j, red, green, blue);
}
strip.setPixelColor(start + i + EyeSize + 1, red / 10, green / 10, blue / 10);
strip.setPixelColor(start + 23 - i, red / 10, green / 10, blue / 10);
for (int j = 1; j <= EyeSize; j++) {
strip.setPixelColor(start + 23 - i - j, red, green, blue);
}
strip.setPixelColor(start + 23 - i - EyeSize - 1, red / 10, green / 10, blue / 10);
}
strip.show();
delay(SpeedDelay);
}
delay(ReturnDelay);
}
9 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 21 gasten