Efectivamente não necessitas do ciclo for... Isto para não dizer que o ciclo for estraga tudo... se tu dizes que funciona, eu acredito.
Em vez de estares a fazer um array para as tuas saídas (que é uma péssima ideia por imensos motivos), podes fazer as coisas de forma mais simples usando a função bitWrite (que é igual às macros que defini no meu exemplo).
/*
SHIFT REGISTER:
Q0 LED RGB - RED
Q1 LED RGB - GREEN
Q2 LED RGB - BLUE
Q3 LCD Backlight
Q4 RELE 1
Q5 RELE 2
Q6 LED Extra
Q7 Sirene
*/
#define RGBR 0
#define RGBG 1
#define RGBB 2
#define LCD_BLT 3
#define RELE1 4
#define RELE2 5
#define LED_Extra 6
#define SIRENE 7
//imagina que queres ligar a sirene...
bitWrite(dataOut, SIRENE, 1);
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, dataOut);
digitalWrite(latchPin, 1);
//desligar a sirene...
//imagina que queres ligar a sirene...
bitWrite(dataOut, SIRENE, 0);
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, dataOut);
digitalWrite(latchPin, 1);
Muito mais simples para a memória do teu sistema e também, diga-se de passagem, muito mais informativo para quem ler o código e não souber o que é o Equipamentos[3]. ![]()