Come già detto, per lo stesso problema esistono infinite soluzioni
...
.. ovviamente Silente e successivamente il codice che ti ho messo io (che, come ho segnalato era una ottimizzazione del suo), sono stati fatti per trattare la tua "String".
Nella reltà invece, quel codice si scrive ottimizzato in poche righe, usando il valore ottenuto dalla digitalread() come valore del bit che comunque viene shiftato e messo in un unsigned long ![]()
Qualche cosa del tipo:
for (uint8_t i = 0; i < 24; i++) {
digitalWrite(3, HIGH);
valore |= ((uint32_t)digitalRead(4) << i);
digitalWrite(3, LOW);
}
... ottimizzandolo ancora per usare direttamente i PIN e PORT (al posto delle digitalWrite e digitalRead) ed accelerare moltissimo il tutto ![]()
Guglielmo