Need help to shorten my code for my led strip pls help

while (P_p == LOW) {
//pink and purple
pixels.setPixelColor(0, pixels.Color(87, 8, 150));
pixels.setPixelColor(1, pixels.Color(87, 8, 150));
pixels.setPixelColor(2, pixels.Color(87, 8, 150));
pixels.setPixelColor(3, pixels.Color(87, 8, 150));
pixels.setPixelColor(4, pixels.Color(87, 8, 150));
pixels.setPixelColor(5, pixels.Color(0, 0, 0));
pixels.setPixelColor(6, pixels.Color(0, 0, 0));
pixels.setPixelColor(7, pixels.Color(0, 0, 0));
pixels.setPixelColor(8, pixels.Color(150, 9, 87));
pixels.setPixelColor(9, pixels.Color(150, 9, 87));
pixels.setPixelColor(10, pixels.Color(150, 9, 87));
pixels.setPixelColor(11, pixels.Color(150, 9, 87));
pixels.setPixelColor(12, pixels.Color(150, 9, 87));
pixels.setPixelColor(13, pixels.Color(0, 0, 0));
pixels.setPixelColor(14, pixels.Color(0, 0, 0));
pixels.setPixelColor(15, pixels.Color(0, 0, 0));
pixels.setPixelColor(16, pixels.Color(87, 8, 150));
pixels.setPixelColor(17, pixels.Color(87, 8, 150));
pixels.setPixelColor(18, pixels.Color(87, 8, 150));
pixels.setPixelColor(19, pixels.Color(87, 8, 150));
pixels.setPixelColor(20, pixels.Color(87, 8, 150));
pixels.setPixelColor(21, pixels.Color(0, 0, 0));
pixels.setPixelColor(22, pixels.Color(0, 0, 0));
pixels.setPixelColor(23, pixels.Color(0, 0, 0));
pixels.setPixelColor(24, pixels.Color(150, 9, 87));
pixels.setPixelColor(25, pixels.Color(150, 9, 87));
pixels.setPixelColor(26, pixels.Color(150, 9, 87));
pixels.setPixelColor(27, pixels.Color(150, 9, 87));
pixels.setPixelColor(28, pixels.Color(150, 9, 87));
pixels.setPixelColor(29, pixels.Color(0, 0, 0));
pixels.setPixelColor(30, pixels.Color(0, 0, 0));
pixels.setPixelColor(31, pixels.Color(0, 0, 0));
pixels.setPixelColor(32, pixels.Color(87, 8, 150));
pixels.setPixelColor(33, pixels.Color(87, 8, 150));
pixels.setPixelColor(34, pixels.Color(87, 8, 150));
pixels.setPixelColor(35, pixels.Color(87, 8, 150));
pixels.setPixelColor(36, pixels.Color(87, 8, 150));
pixels.setPixelColor(37, pixels.Color(0, 0, 0));
pixels.setPixelColor(38, pixels.Color(0, 0, 0));
pixels.setPixelColor(39, pixels.Color(0, 0, 0));
pixels.setPixelColor(40, pixels.Color(150, 9, 87));
pixels.setPixelColor(41, pixels.Color(150, 9, 87));
pixels.setPixelColor(42, pixels.Color(150, 9, 87));
pixels.setPixelColor(43, pixels.Color(150, 9, 87));
pixels.setPixelColor(44, pixels.Color(150, 9, 87));
pixels.setPixelColor(45, pixels.Color(0, 0, 0));
pixels.setPixelColor(46, pixels.Color(0, 0, 0));
pixels.setPixelColor(47, pixels.Color(0, 0, 0));
pixels.setPixelColor(48, pixels.Color(87, 8, 150));
pixels.setPixelColor(49, pixels.Color(87, 8, 150));
pixels.setPixelColor(50, pixels.Color(87, 8, 150));
pixels.setPixelColor(51, pixels.Color(87, 8, 150));
pixels.setPixelColor(52, pixels.Color(87, 8, 150));
pixels.setPixelColor(53, pixels.Color(0, 0, 0));
pixels.setPixelColor(54, pixels.Color(0, 0, 0));
pixels.setPixelColor(55, pixels.Color(0, 0, 0));
pixels.setPixelColor(56, pixels.Color(150, 9, 87));
pixels.setPixelColor(57, pixels.Color(150, 9, 87));
pixels.setPixelColor(58, pixels.Color(150, 9, 87));
pixels.setPixelColor(59, pixels.Color(150, 9, 87));
pixels.setPixelColor(60, pixels.Color(150, 9, 87));
pixels.setPixelColor(61, pixels.Color(0, 0, 0));
pixels.show();
delay(200);
if (digitalRead(RESET) == LOW) {
break; //reset
} pixels.setPixelColor(0, pixels.Color(0, 0, 0));
pixels.setPixelColor(1, pixels.Color(0, 0, 0));
pixels.setPixelColor(2, pixels.Color(87, 8, 150));
pixels.setPixelColor(3, pixels.Color(87, 8, 150));
pixels.setPixelColor(4, pixels.Color(87, 8, 150));
pixels.setPixelColor(5, pixels.Color(87, 8, 150));
pixels.setPixelColor(6, pixels.Color(87, 8, 150));
pixels.setPixelColor(7, pixels.Color(0, 0, 0));
pixels.setPixelColor(8, pixels.Color(0, 0, 0));
pixels.setPixelColor(9, pixels.Color(0, 0, 0));
pixels.setPixelColor(10, pixels.Color(150, 9, 87));
pixels.setPixelColor(11, pixels.Color(150, 9, 87));
pixels.setPixelColor(12, pixels.Color(150, 9, 87));
pixels.setPixelColor(13, pixels.Color(150, 9, 87));
pixels.setPixelColor(14, pixels.Color(150, 9, 87));
pixels.setPixelColor(15, pixels.Color(0, 0, 0));
pixels.setPixelColor(16, pixels.Color(0, 0, 0));
pixels.setPixelColor(17, pixels.Color(0, 0, 0));
pixels.setPixelColor(18, pixels.Color(87, 8, 150));
pixels.setPixelColor(19, pixels.Color(87, 8, 150));
pixels.setPixelColor(20, pixels.Color(87, 8, 150));
pixels.setPixelColor(21, pixels.Color(87, 8, 150));
pixels.setPixelColor(22, pixels.Color(87, 8, 150));
pixels.setPixelColor(23, pixels.Color(0, 0, 0));
pixels.setPixelColor(24, pixels.Color(0, 0, 0));
pixels.setPixelColor(25, pixels.Color(0, 0, 0));
pixels.setPixelColor(26, pixels.Color(150, 9, 87));
pixels.setPixelColor(27, pixels.Color(150, 9, 87));
pixels.setPixelColor(28, pixels.Color(150, 9, 87));
pixels.setPixelColor(29, pixels.Color(150, 9, 87));
pixels.setPixelColor(30, pixels.Color(150, 9, 87));
pixels.setPixelColor(31, pixels.Color(0, 0, 0));
pixels.setPixelColor(32, pixels.Color(0, 0, 0));
pixels.setPixelColor(33, pixels.Color(0, 0, 0));
pixels.setPixelColor(34, pixels.Color(87, 8, 150));
pixels.setPixelColor(35, pixels.Color(87, 8, 150));
pixels.setPixelColor(36, pixels.Color(87, 8, 150));
pixels.setPixelColor(37, pixels.Color(87, 8, 150));
pixels.setPixelColor(38, pixels.Color(87, 8, 150));
pixels.setPixelColor(39, pixels.Color(0, 0, 0));
pixels.setPixelColor(40, pixels.Color(0, 0, 0));
pixels.setPixelColor(41, pixels.Color(0, 0, 0));
pixels.setPixelColor(42, pixels.Color(150, 9, 87));
pixels.setPixelColor(43, pixels.Color(150, 9, 87));
pixels.setPixelColor(44, pixels.Color(150, 9, 87));
pixels.setPixelColor(45, pixels.Color(150, 9, 87));
pixels.setPixelColor(46, pixels.Color(150, 9, 87));
pixels.setPixelColor(47, pixels.Color(0, 0, 0));
pixels.setPixelColor(48, pixels.Color(0, 0, 0));
pixels.setPixelColor(49, pixels.Color(0, 0, 0));
pixels.setPixelColor(50, pixels.Color(87, 8, 150));
pixels.setPixelColor(51, pixels.Color(87, 8, 150));
pixels.setPixelColor(52, pixels.Color(87, 8, 150));
pixels.setPixelColor(53, pixels.Color(87, 8, 150));
pixels.setPixelColor(54, pixels.Color(87, 8, 150));
pixels.setPixelColor(55, pixels.Color(0, 0, 0));
pixels.setPixelColor(56, pixels.Color(0, 0, 0));
pixels.setPixelColor(57, pixels.Color(0, 0, 0));
pixels.setPixelColor(58, pixels.Color(150, 9, 87));
pixels.setPixelColor(59, pixels.Color(150, 9, 87));
pixels.setPixelColor(60, pixels.Color(150, 9, 87));
pixels.setPixelColor(61, pixels.Color(150, 9, 87));
pixels.show();
delay(200);
if (digitalRead(RESET) == LOW) {
break; //reset
} pixels.setPixelColor(0, pixels.Color(150, 9, 87));
pixels.setPixelColor(1, pixels.Color(0, 0, 0));
pixels.setPixelColor(2, pixels.Color(0, 0, 0));
pixels.setPixelColor(3, pixels.Color(0, 0, 0));
pixels.setPixelColor(4, pixels.Color(87, 8, 150));
pixels.setPixelColor(5, pixels.Color(87, 8, 150));
pixels.setPixelColor(6, pixels.Color(87, 8, 150));
pixels.setPixelColor(7, pixels.Color(87, 8, 150));
pixels.setPixelColor(8, pixels.Color(87, 8, 150));
pixels.setPixelColor(9, pixels.Color(0, 0, 0));
pixels.setPixelColor(10, pixels.Color(0, 0, 0));
pixels.setPixelColor(11, pixels.Color(0, 0, 0));
pixels.setPixelColor(12, pixels.Color(150, 9, 87));
pixels.setPixelColor(13, pixels.Color(150, 9, 87));
pixels.setPixelColor(14, pixels.Color(150, 9, 87));
pixels.setPixelColor(15, pixels.Color(150, 9, 87));
pixels.setPixelColor(16, pixels.Color(150, 9, 87));
pixels.setPixelColor(17, pixels.Color(0, 0, 0));
pixels.setPixelColor(18, pixels.Color(0, 0, 0));
pixels.setPixelColor(19, pixels.Color(0, 0, 0));
pixels.setPixelColor(20, pixels.Color(87, 8, 150));
pixels.setPixelColor(21, pixels.Color(87, 8, 150));
pixels.setPixelColor(22, pixels.Color(87, 8, 150));
pixels.setPixelColor(23, pixels.Color(87, 8, 150));
pixels.setPixelColor(24, pixels.Color(87, 8, 150));
pixels.setPixelColor(25, pixels.Color(0, 0, 0));
pixels.setPixelColor(26, pixels.Color(0, 0, 0));
pixels.setPixelColor(27, pixels.Color(0, 0, 0));
pixels.setPixelColor(28, pixels.Color(150, 9, 87));
pixels.setPixelColor(29, pixels.Color(150, 9, 87));
pixels.setPixelColor(30, pixels.Color(150, 9, 87));
pixels.setPixelColor(31, pixels.Color(150, 9, 87));
pixels.setPixelColor(32, pixels.Color(150, 9, 87));
pixels.setPixelColor(33, pixels.Color(0, 0, 0));
pixels.setPixelColor(34, pixels.Color(0, 0, 0));
pixels.setPixelColor(35, pixels.Color(0, 0, 0));
pixels.setPixelColor(36, pixels.Color(87, 8, 150));
pixels.setPixelColor(37, pixels.Color(87, 8, 150));
pixels.setPixelColor(38, pixels.Color(87, 8, 150));
pixels.setPixelColor(39, pixels.Color(87, 8, 150));
pixels.setPixelColor(40, pixels.Color(87, 8, 150));
pixels.setPixelColor(41, pixels.Color(0, 0, 0));
pixels.setPixelColor(42, pixels.Color(0, 0, 0));
pixels.setPixelColor(43, pixels.Color(0, 0, 0));
pixels.setPixelColor(44, pixels.Color(150, 9, 87));
pixels.setPixelColor(45, pixels.Color(150, 9, 87));
pixels.setPixelColor(46, pixels.Color(150, 9, 87));
pixels.setPixelColor(47, pixels.Color(150, 9, 87));
pixels.setPixelColor(48, pixels.Color(150, 9, 87));
pixels.setPixelColor(49, pixels.Color(0, 0, 0));
pixels.setPixelColor(50, pixels.Color(0, 0, 0));
pixels.setPixelColor(51, pixels.Color(0, 0, 0));
pixels.setPixelColor(52, pixels.Color(87, 8, 150));
pixels.setPixelColor(53, pixels.Color(87, 8, 150));
pixels.setPixelColor(54, pixels.Color(87, 8, 150));
pixels.setPixelColor(55, pixels.Color(87, 8, 150));
pixels.setPixelColor(56, pixels.Color(87, 8, 150));
pixels.setPixelColor(57, pixels.Color(0, 0, 0));
pixels.setPixelColor(58, pixels.Color(0, 0, 0));
pixels.setPixelColor(59, pixels.Color(0, 0, 0));
pixels.setPixelColor(60, pixels.Color(150, 9, 87));
pixels.setPixelColor(61, pixels.Color(150, 9, 87));
pixels.show();
delay(200);
if (digitalRead(RESET) == LOW) {
break; //reset
} pixels.setPixelColor(0, pixels.Color(150, 9, 87));
pixels.setPixelColor(1, pixels.Color(150, 9, 87));
pixels.setPixelColor(2, pixels.Color(150, 9, 87));
pixels.setPixelColor(3, pixels.Color(0, 0, 0));
pixels.setPixelColor(4, pixels.Color(0, 0, 0));
pixels.setPixelColor(5, pixels.Color(0, 0, 0));
pixels.setPixelColor(6, pixels.Color(87, 8, 150));
pixels.setPixelColor(7, pixels.Color(87, 8, 150));
pixels.setPixelColor(8, pixels.Color(87, 8, 150));
pixels.setPixelColor(9, pixels.Color(87, 8, 150));
pixels.setPixelColor(10, pixels.Color(87, 8, 150));
pixels.setPixelColor(11, pixels.Color(0, 0, 0));
pixels.setPixelColor(12, pixels.Color(0, 0, 0));
pixels.setPixelColor(13, pixels.Color(0, 0, 0));
pixels.setPixelColor(14, pixels.Color(150, 9, 87));
pixels.setPixelColor(15, pixels.Color(150, 9, 87));
pixels.setPixelColor(16, pixels.Color(150, 9, 87));
pixels.setPixelColor(17, pixels.Color(150, 9, 87));
pixels.setPixelColor(18, pixels.Color(150, 9, 87));
pixels.setPixelColor(19, pixels.Color(0, 0, 0));
pixels.setPixelColor(20, pixels.Color(0, 0, 0));
pixels.setPixelColor(21, pixels.Color(0, 0, 0));
pixels.setPixelColor(22, pixels.Color(87, 8, 150));
pixels.setPixelColor(23, pixels.Color(87, 8, 150));
pixels.setPixelColor(24, pixels.Color(87, 8, 150));
pixels.setPixelColor(25, pixels.Color(87, 8, 150));
pixels.setPixelColor(26, pixels.Color(87, 8, 150));
pixels.setPixelColor(27, pixels.Color(0, 0, 0));
pixels.setPixelColor(28, pixels.Color(0, 0, 0));
pixels.setPixelColor(29, pixels.Color(0, 0, 0));
pixels.setPixelColor(30, pixels.Color(150, 9, 87));
pixels.setPixelColor(31, pixels.Color(150, 9, 87));
pixels.setPixelColor(32, pixels.Color(150, 9, 87));
pixels.setPixelColor(33, pixels.Color(150, 9, 87));
pixels.setPixelColor(34, pixels.Color(150, 9, 87));
pixels.setPixelColor(35, pixels.Color(0, 0, 0));
pixels.setPixelColor(36, pixels.Color(0, 0, 0));
pixels.setPixelColor(37, pixels.Color(0, 0, 0));
pixels.setPixelColor(38, pixels.Color(87, 8, 150));
pixels.setPixelColor(39, pixels.Color(87, 8, 150));
pixels.setPixelColor(40, pixels.Color(87, 8, 150));
pixels.setPixelColor(41, pixels.Color(87, 8, 150));
pixels.setPixelColor(42, pixels.Color(87, 8, 150));
pixels.setPixelColor(43, pixels.Color(0, 0, 0));
pixels.setPixelColor(44, pixels.Color(0, 0, 0));
pixels.setPixelColor(45, pixels.Color(0, 0, 0));
pixels.setPixelColor(46, pixels.Color(150, 9, 87));
pixels.setPixelColor(47, pixels.Color(150, 9, 87));
pixels.setPixelColor(48, pixels.Color(150, 9, 87));
pixels.setPixelColor(49, pixels.Color(150, 9, 87));
pixels.setPixelColor(50, pixels.Color(150, 9, 87));
pixels.setPixelColor(51, pixels.Color(0, 0, 0));
pixels.setPixelColor(52, pixels.Color(0, 0, 0));
pixels.setPixelColor(53, pixels.Color(0, 0, 0));
pixels.setPixelColor(54, pixels.Color(87, 8, 150));
pixels.setPixelColor(55, pixels.Color(87, 8, 150));
pixels.setPixelColor(56, pixels.Color(87, 8, 150));
pixels.setPixelColor(57, pixels.Color(87, 8, 150));
pixels.setPixelColor(58, pixels.Color(87, 8, 150));
pixels.setPixelColor(59, pixels.Color(0, 0, 0));
pixels.setPixelColor(60, pixels.Color(0, 0, 0));
pixels.setPixelColor(61, pixels.Color(0, 0, 0));
pixels.show();
delay(200);
if (digitalRead(RESET) == LOW) {
break; //reset
} pixels.setPixelColor(0, pixels.Color(150, 9, 87));
pixels.setPixelColor(1, pixels.Color(150, 9, 87));
pixels.setPixelColor(2, pixels.Color(150, 9, 87));
pixels.setPixelColor(3, pixels.Color(150, 9, 87));
pixels.setPixelColor(4, pixels.Color(150, 9, 87));
pixels.setPixelColor(5, pixels.Color(0, 0, 0));
pixels.setPixelColor(6, pixels.Color(0, 0, 0));
pixels.setPixelColor(7, pixels.Color(0, 0, 0));
pixels.setPixelColor(8, pixels.Color(87, 8, 150));
pixels.setPixelColor(9, pixels.Color(87, 8, 150));
pixels.setPixelColor(10, pixels.Color(87, 8, 150));
pixels.setPixelColor(11, pixels.Color(87, 8, 150));
pixels.setPixelColor(12, pixels.Color(87, 8, 150));
pixels.setPixelColor(13, pixels.Color(0, 0, 0));
pixels.setPixelColor(14, pixels.Color(0, 0, 0));
pixels.setPixelColor(15, pixels.Color(0, 0, 0));
pixels.setPixelColor(16, pixels.Color(150, 9, 87));
pixels.setPixelColor(17, pixels.Color(150, 9, 87));
pixels.setPixelColor(18, pixels.Color(150, 9, 87));
pixels.setPixelColor(19, pixels.Color(150, 9, 87));
pixels.setPixelColor(20, pixels.Color(150, 9, 87));
pixels.setPixelColor(21, pixels.Color(0, 0, 0));
pixels.setPixelColor(22, pixels.Color(0, 0, 0));
pixels.setPixelColor(23, pixels.Color(0, 0, 0));
pixels.setPixelColor(24, pixels.Color(87, 8, 150));
pixels.setPixelColor(25, pixels.Color(87, 8, 150));
pixels.setPixelColor(26, pixels.Color(87, 8, 150));
pixels.setPixelColor(27, pixels.Color(87, 8, 150));
pixels.setPixelColor(28, pixels.Color(87, 8, 150));
pixels.setPixelColor(29, pixels.Color(0, 0, 0));
pixels.setPixelColor(30, pixels.Color(0, 0, 0));
pixels.setPixelColor(31, pixels.Color(0, 0, 0));
pixels.setPixelColor(32, pixels.Color(150, 9, 87));
pixels.setPixelColor(33, pixels.Color(150, 9, 87));
pixels.setPixelColor(34, pixels.Color(150, 9, 87));
pixels.setPixelColor(35, pixels.Color(150, 9, 87));
pixels.setPixelColor(36, pixels.Color(150, 9, 87));
pixels.setPixelColor(37, pixels.Color(0, 0, 0));
pixels.setPixelColor(38, pixels.Color(0, 0, 0));
pixels.setPixelColor(39, pixels.Color(0, 0, 0));
pixels.setPixelColor(40, pixels.Color(87, 8, 150));
pixels.setPixelColor(41, pixels.Color(87, 8, 150));
pixels.setPixelColor(42, pixels.Color(87, 8, 150));
pixels.setPixelColor(43, pixels.Color(87, 8, 150));
pixels.setPixelColor(44, pixels.Color(87, 8, 150));
pixels.setPixelColor(45, pixels.Color(0, 0, 0));
pixels.setPixelColor(46, pixels.Color(0, 0, 0));
pixels.setPixelColor(47, pixels.Color(0, 0, 0));
pixels.setPixelColor(48, pixels.Color(150, 9, 87));
pixels.setPixelColor(49, pixels.Color(150, 9, 87));
pixels.setPixelColor(50, pixels.Color(150, 9, 87));
pixels.setPixelColor(51, pixels.Color(150, 9, 87));
pixels.setPixelColor(52, pixels.Color(150, 9, 87));
pixels.setPixelColor(53, pixels.Color(0, 0, 0));
pixels.setPixelColor(54, pixels.Color(0, 0, 0));
pixels.setPixelColor(55, pixels.Color(0, 0, 0));
pixels.setPixelColor(56, pixels.Color(87, 8, 150));
pixels.setPixelColor(57, pixels.Color(87, 8, 150));
pixels.setPixelColor(58, pixels.Color(87, 8, 150));
pixels.setPixelColor(59, pixels.Color(87, 8, 150));
pixels.setPixelColor(60, pixels.Color(87, 8, 150));
pixels.setPixelColor(61, pixels.Color(0, 0, 0));
pixels.show();
delay(200);
if (digitalRead(RESET) == LOW) {
break; //reset
} pixels.setPixelColor(0, pixels.Color(0, 0, 0));
pixels.setPixelColor(1, pixels.Color(0, 0, 0));
pixels.setPixelColor(2, pixels.Color(150, 9, 87));
pixels.setPixelColor(3, pixels.Color(150, 9, 87));
pixels.setPixelColor(4, pixels.Color(150, 9, 87));
pixels.setPixelColor(5, pixels.Color(150, 9, 87));
pixels.setPixelColor(6, pixels.Color(150, 9, 87));
pixels.setPixelColor(7, pixels.Color(0, 0, 0));
pixels.setPixelColor(8, pixels.Color(0, 0, 0));
pixels.setPixelColor(9, pixels.Color(0, 0, 0));
pixels.setPixelColor(10, pixels.Color(87, 8, 150));
pixels.setPixelColor(11, pixels.Color(87, 8, 150));
pixels.setPixelColor(12, pixels.Color(87, 8, 150));
pixels.setPixelColor(13, pixels.Color(87, 8, 150));
pixels.setPixelColor(14, pixels.Color(87, 8, 150));
pixels.setPixelColor(15, pixels.Color(0, 0, 0));
pixels.setPixelColor(16, pixels.Color(0, 0, 0));
pixels.setPixelColor(17, pixels.Color(0, 0, 0));
pixels.setPixelColor(18, pixels.Color(150, 9, 87));
pixels.setPixelColor(19, pixels.Color(150, 9, 87));
pixels.setPixelColor(20, pixels.Color(150, 9, 87));
pixels.setPixelColor(21, pixels.Color(150, 9, 87));
pixels.setPixelColor(22, pixels.Color(150, 9, 87));
pixels.setPixelColor(23, pixels.Color(0, 0, 0));
pixels.setPixelColor(24, pixels.Color(0, 0, 0));
pixels.setPixelColor(25, pixels.Color(0, 0, 0));
pixels.setPixelColor(26, pixels.Color(87, 8, 150));
pixels.setPixelColor(27, pixels.Color(87, 8, 150));
pixels.setPixelColor(28, pixels.Color(87, 8, 1507));
pixels.setPixelColor(29, pixels.Color(87, 8, 150));
pixels.setPixelColor(30, pixels.Color(87, 8, 150));
pixels.setPixelColor(31, pixels.Color(0, 0, 0));
pixels.setPixelColor(32, pixels.Color(0, 0, 0));
pixels.setPixelColor(33, pixels.Color(0, 0, 0));
pixels.setPixelColor(34, pixels.Color(150, 9, 87));
pixels.setPixelColor(35, pixels.Color(150, 9, 87));
pixels.setPixelColor(36, pixels.Color(150, 9, 87));
pixels.setPixelColor(37, pixels.Color(150, 9, 87));
pixels.setPixelColor(38, pixels.Color(150, 9, 87));
pixels.setPixelColor(39, pixels.Color(0, 0, 0));
pixels.setPixelColor(40, pixels.Color(0, 0, 0));
pixels.setPixelColor(41, pixels.Color(0, 0, 0));
pixels.setPixelColor(42, pixels.Color(87, 8, 150));
pixels.setPixelColor(43, pixels.Color(87, 8, 150));
pixels.setPixelColor(44, pixels.Color(87, 8, 150));
pixels.setPixelColor(45, pixels.Color(87, 8, 150));
pixels.setPixelColor(46, pixels.Color(87, 8, 150));
pixels.setPixelColor(47, pixels.Color(0, 0, 0));
pixels.setPixelColor(48, pixels.Color(0, 0, 0));
pixels.setPixelColor(49, pixels.Color(0, 0, 0));
pixels.setPixelColor(50, pixels.Color(150, 9, 87));
pixels.setPixelColor(51, pixels.Color(150, 9, 87));
pixels.setPixelColor(52, pixels.Color(150, 9, 87));
pixels.setPixelColor(53, pixels.Color(150, 9, 87));
pixels.setPixelColor(54, pixels.Color(150, 9, 87));
pixels.setPixelColor(55, pixels.Color(0, 0, 0));
pixels.setPixelColor(56, pixels.Color(0, 0, 0));
pixels.setPixelColor(57, pixels.Color(0, 0, 0));
pixels.setPixelColor(58, pixels.Color(87, 8, 150));
pixels.setPixelColor(59, pixels.Color(87, 8, 150));
pixels.setPixelColor(60, pixels.Color(87, 8, 150));
pixels.setPixelColor(61, pixels.Color(87, 8, 150));
pixels.show();
delay(200);
if (digitalRead(RESET) == LOW) {
break; //reset
} pixels.setPixelColor(0, pixels.Color(87, 8, 150));
pixels.setPixelColor(1, pixels.Color(0, 0, 0));
pixels.setPixelColor(2, pixels.Color(0, 0, 0));
pixels.setPixelColor(3, pixels.Color(0, 0, 0));
pixels.setPixelColor(4, pixels.Color(150, 9, 87));
pixels.setPixelColor(5, pixels.Color(150, 9, 87));
pixels.setPixelColor(6, pixels.Color(150, 9, 87));
pixels.setPixelColor(7, pixels.Color(150, 9, 87));
pixels.setPixelColor(8, pixels.Color(150, 9, 87));
pixels.setPixelColor(9, pixels.Color(0, 0, 0));
pixels.setPixelColor(10, pixels.Color(0, 0, 0));
pixels.setPixelColor(11, pixels.Color(0, 0, 0));
pixels.setPixelColor(12, pixels.Color(87, 8, 150));
pixels.setPixelColor(13, pixels.Color(87, 8, 150));
pixels.setPixelColor(14, pixels.Color(87, 8, 150));
pixels.setPixelColor(15, pixels.Color(87, 8, 150));
pixels.setPixelColor(16, pixels.Color(87, 8, 150));
pixels.setPixelColor(17, pixels.Color(0, 0, 0));
pixels.setPixelColor(18, pixels.Color(0, 0, 0));
pixels.setPixelColor(19, pixels.Color(0, 0, 0));
pixels.setPixelColor(20, pixels.Color(150, 9, 87));
pixels.setPixelColor(21, pixels.Color(150, 9, 87));
pixels.setPixelColor(22, pixels.Color(150, 9, 87));
pixels.setPixelColor(23, pixels.Color(150, 9, 87));
pixels.setPixelColor(24, pixels.Color(150, 9, 87));
pixels.setPixelColor(25, pixels.Color(0, 0, 0));
pixels.setPixelColor(26, pixels.Color(0, 0, 0));
pixels.setPixelColor(27, pixels.Color(0, 0, 0));
pixels.setPixelColor(28, pixels.Color(87, 8, 150));
pixels.setPixelColor(29, pixels.Color(87, 8, 150));
pixels.setPixelColor(30, pixels.Color(87, 8, 150));
pixels.setPixelColor(31, pixels.Color(87, 8, 150));
pixels.setPixelColor(32, pixels.Color(87, 8, 150));
pixels.setPixelColor(33, pixels.Color(0, 0, 0));
pixels.setPixelColor(34, pixels.Color(0, 0, 0));
pixels.setPixelColor(35, pixels.Color(0, 0, 0));
pixels.setPixelColor(36, pixels.Color(150, 9, 87));
pixels.setPixelColor(37, pixels.Color(150, 9, 87));
pixels.setPixelColor(38, pixels.Color(150, 9, 87));
pixels.setPixelColor(39, pixels.Color(150, 9, 87));
pixels.setPixelColor(40, pixels.Color(150, 9, 87));
pixels.setPixelColor(41, pixels.Color(0, 0, 0));
pixels.setPixelColor(42, pixels.Color(0, 0, 0));
pixels.setPixelColor(43, pixels.Color(0, 0, 0));
pixels.setPixelColor(44, pixels.Color(87, 8, 150));
pixels.setPixelColor(45, pixels.Color(87, 8, 150));
pixels.setPixelColor(46, pixels.Color(87, 8, 150));
pixels.setPixelColor(47, pixels.Color(87, 8, 150));
pixels.setPixelColor(48, pixels.Color(87, 8, 150));
pixels.setPixelColor(49, pixels.Color(0, 0, 0));
pixels.setPixelColor(50, pixels.Color(0, 0, 0));
pixels.setPixelColor(51, pixels.Color(0, 0, 0));
pixels.setPixelColor(52, pixels.Color(150, 9, 87));
pixels.setPixelColor(53, pixels.Color(150, 9, 87));
pixels.setPixelColor(54, pixels.Color(150, 9, 87));
pixels.setPixelColor(55, pixels.Color(150, 9, 87));
pixels.setPixelColor(56, pixels.Color(150, 9, 87));
pixels.setPixelColor(57, pixels.Color(0, 0, 0));
pixels.setPixelColor(58, pixels.Color(0, 0, 0));
pixels.setPixelColor(59, pixels.Color(0, 0, 0));
pixels.setPixelColor(60, pixels.Color(87, 8, 150));
pixels.setPixelColor(61, pixels.Color(87, 8, 150));
pixels.show();
delay(200);
if (digitalRead(RESET) == LOW) {
break; //reset
} pixels.setPixelColor(0, pixels.Color(87, 8, 150));
pixels.setPixelColor(1, pixels.Color(87, 8, 150));
pixels.setPixelColor(2, pixels.Color(87, 8, 150));
pixels.setPixelColor(3, pixels.Color(0, 0, 0));
pixels.setPixelColor(4, pixels.Color(0, 0, 0));
pixels.setPixelColor(5, pixels.Color(0, 0, 0));
pixels.setPixelColor(6, pixels.Color(150, 9, 87));
pixels.setPixelColor(7, pixels.Color(150, 9, 87));
pixels.setPixelColor(8, pixels.Color(150, 9, 87));
pixels.setPixelColor(9, pixels.Color(150, 9, 87));
pixels.setPixelColor(10, pixels.Color(150, 9, 87));
pixels.setPixelColor(11, pixels.Color(0, 0, 0));
pixels.setPixelColor(12, pixels.Color(0, 0, 0));
pixels.setPixelColor(13, pixels.Color(0, 0, 0));
pixels.setPixelColor(14, pixels.Color(87, 8, 150));
pixels.setPixelColor(15, pixels.Color(87, 8, 150));
pixels.setPixelColor(16, pixels.Color(87, 8, 150));
pixels.setPixelColor(17, pixels.Color(87, 8, 150));
pixels.setPixelColor(18, pixels.Color(87, 8, 150));
pixels.setPixelColor(19, pixels.Color(0, 0, 0));
pixels.setPixelColor(20, pixels.Color(0, 0, 0));
pixels.setPixelColor(21, pixels.Color(0, 0, 0));
pixels.setPixelColor(22, pixels.Color(150, 9, 87));
pixels.setPixelColor(23, pixels.Color(150, 9, 87));
pixels.setPixelColor(24, pixels.Color(150, 9, 87));
pixels.setPixelColor(25, pixels.Color(150, 9, 87));
pixels.setPixelColor(26, pixels.Color(150, 9, 87));
pixels.setPixelColor(27, pixels.Color(0, 0, 0));
pixels.setPixelColor(28, pixels.Color(0, 0, 0));
pixels.setPixelColor(29, pixels.Color(0, 0, 0));
pixels.setPixelColor(30, pixels.Color(87, 8, 150));
pixels.setPixelColor(31, pixels.Color(87, 8, 150));
pixels.setPixelColor(32, pixels.Color(87, 8, 150));
pixels.setPixelColor(33, pixels.Color(87, 8, 150));
pixels.setPixelColor(34, pixels.Color(87, 8, 150));
pixels.setPixelColor(35, pixels.Color(0, 0, 0));
pixels.setPixelColor(36, pixels.Color(0, 0, 0));
pixels.setPixelColor(37, pixels.Color(0, 0, 0));
pixels.setPixelColor(38, pixels.Color(150, 9, 87));
pixels.setPixelColor(39, pixels.Color(150, 9, 87));
pixels.setPixelColor(40, pixels.Color(150, 9, 87));
pixels.setPixelColor(41, pixels.Color(150, 9, 87));
pixels.setPixelColor(42, pixels.Color(150, 9, 87));
pixels.setPixelColor(43, pixels.Color(0, 0, 0));
pixels.setPixelColor(44, pixels.Color(0, 0, 0));
pixels.setPixelColor(45, pixels.Color(0, 0, 0));
pixels.setPixelColor(46, pixels.Color(87, 8, 150));
pixels.setPixelColor(47, pixels.Color(87, 8, 150));
pixels.setPixelColor(48, pixels.Color(87, 8, 150));
pixels.setPixelColor(49, pixels.Color(87, 8, 150));
pixels.setPixelColor(50, pixels.Color(87, 8, 150));
pixels.setPixelColor(51, pixels.Color(0, 0, 0));
pixels.setPixelColor(52, pixels.Color(0, 0, 0));
pixels.setPixelColor(53, pixels.Color(0, 0, 0));
pixels.setPixelColor(54, pixels.Color(150, 9, 87));
pixels.setPixelColor(55, pixels.Color(150, 9, 87));
pixels.setPixelColor(56, pixels.Color(150, 9, 87));
pixels.setPixelColor(57, pixels.Color(150, 9, 87));
pixels.setPixelColor(58, pixels.Color(150, 9, 87));
pixels.setPixelColor(59, pixels.Color(0, 0, 0));
pixels.show();
delay(200);
if (digitalRead(RESET) == LOW) {
break; //reset
}
}

Looks like it is time for you to learn how to write and use functions

And for loops...

1 Like

Maybe describe what effect you are going for or better yet shoot a video of your working code and put it on youtube.

It's hard to see it, but there's gotta be a pattern in there that could be expressed with vastly fewer lines of code.

If you used cut and paste and editing to make each block before the show calls, that would be a major clue, so tell us.

a7

It is not clear what pixels.color() returns, but if it would be of type Colour, perhaps something like this would work.

Colour colour[] = {
  pixels.Color(87, 8, 150),
  pixels.Color(87, 8, 150),
  pixels.Color(87, 8, 150),
  pixels.Color(87, 8, 150),
  pixels.Color(87, 8, 150),
  pixels.Color(0, 0, 0),
  pixels.Color(0, 0, 0),
  pixels.Color(0, 0, 0),
  pixels.Color(150, 9, 87),
  pixels.Color(150, 9, 87),
  pixels.Color(150, 9, 87),
  pixels.Color(150, 9, 87),
  pixels.Color(150, 9, 87),
  pixels.Color(0, 0, 0),
  pixels.Color(0, 0, 0),
  pixels.Color(0, 0, 0)};

while (not (P_p or digitalRead(RESET))) {
  for (size_t i = 0; i < 8; i ++) {
    for (size_t j = 0; j < 62; j++) {
      pixels.setPixelColor(j, colour[(14 * i + j) % 16]);
    }
    pixels.show();
    delay(200);
  }
}

Disclaimer: this is untested.

Even if there's no pattern, there's surely a reason to use an array of values here.
C

This is obvsly wrong but you on to something. And I'm off for a nap.

  for (size_t j = 0; j < 8; j += 14) {

Fix it here:

I see you editing it furiously, why not run it? :expressionless:

a7

I tested it later on my computer. This seems to work.

#include <iostream>

using std::cout;


void getColour(size_t const i) {
  if (i < 5) {
    cout << "87, 8, 150\n";
    return;
  }
  if (i > 7 and i < 13) {
    cout << "150, 9, 87\n";
    return;
  }
  cout << "0, 0, 0\n";
}


int main() {
  for (size_t i = 0; i < 8; i++) {
    for (size_t j = 0; j < 62; j++) {
      getColour((14 * i + j) % 16);
    }
    cout << '\n';
  }
}

I will have a look at your suggestion.

[edit] The result, with thanks to @alto777:

1 Like

First, you're calling pixels.Color() much more often than you need to.
(Assuming Adafruit neopixel library, you don't need it at all, since there is an alternate form: setPixelColor(b, RedVal, GreenVal, BlueVal) on an AVR, that may actually be somewhat faster than using the 32bit "color.")
At the start of your sketch, do something like:

const uint32_t   PINK= Adafruit_NeoPixel::Color(150, 9, 87),
   PURPLE = Adafruit_NeoPixel::Color(87, 8, 150),
   BLACK = Adafruit_NeoPixel::Color(0,0,0);

Or (using the separate R, G, B values):

#define PINK  150, 9, 87
#define PURPLE 87, 8, 150
#define BLACK 0, 0, 0
// ...
   pixeks,setPixelColor(54, PINK);

The second thing to notice is that there is a pixels.fill(color, firstPixel, length) method in the library that fills in more than one pixel at a time, so

#if 0   // Instead of
pixels.setPixelColor(46, pixels.Color(87, 8, 150));
pixels.setPixelColor(47, pixels.Color(87, 8, 150));
pixels.setPixelColor(48, pixels.Color(87, 8, 150));
pixels.setPixelColor(49, pixels.Color(87, 8, 150));
pixels.setPixelColor(50, pixels.Color(87, 8, 150));
#else
//
// could become:
pixels.fill(PURPLE, 46, 5);

(This does need the 32bit form for the color, though.)

And THAT sets you up for something called "run length encoding", where you can set up a data structure like:

struct RLLData {
  uint32_t color;
  uint32_t length;
};
RLLData Pattern1[] = {
  {PINK, 5},
  {BLACK, 3},
  {PURPLE, 5},
  {BLACK, 3},
  {0, 0}    // 0 length means end
};

RLLData Pattern2[] = {
  {PURPLE, 5},
  {BLACK, 3},
  {PINK, 5},
  {BLACK, 3},
  {0, 0}    // 0 length means end
};
//  Later
/*
   Repeat the pattern (an array of color/length pairs) for the whole strip.
*/
void repeatPattern(Adafruit_NeoPixel &pix, RLLData pat[]) {
  byte totLen = pix.numPixels();
  byte thisRLL = 0;  // which piece of the pattern
  byte pixNum = 0;  // which pixel we're on
  pix.clear();
  while (pixNum < totLen) {
    if (pat[thisRLL].len == 0) {  // end of pattern ?
      thisRLL = 0;                // reset to start of pattern
    }
    pix.fill(pat[thisRLL].color, pixNum, pat[thisRLL].len);
    pixNum += pat[thisRLL].len;  // next set of pixels
    thisRLL++;                      // to be set to next RLL encoding
  }
  pix.show();
}

// still later
   repeatPattern(pixels, Pattern1);
   delay(300);
   repeatPattern(pixels, Pattern2);
4 Likes

this is my solution thank you so much

Beat me to it

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.