Hello abrilxcx
I´ve found a "Knight Rider" sketch in my sketch box for used sketches. Try and check it. Put this sketch in your box with the name "how to use structured arrays very easy".
/* BLOCK COMMENT
ATTENTION: This Sketch contains elements of C++.
https://www.learncpp.com/cpp-tutorial/
Many thanks to LarryD
https://europe1.discourse-cdn.com/arduino/original/4X/7/e/0/7e0ee1e51f1df32e30893550c85f0dd33244fb0e.jpeg
https://forum.arduino.cc/t/a-led-doesnt-turn-on/970981
Tested with Arduino: Mega[ ] - UNO [ ] - Nano [ ]
*/
#define ProjectName "Knight Rider "
// HARDWARE AND TIMER SETTINGS
// YOU MAY NEED TO CHANGE THESE CONSTANTS TO YOUR HARDWARE AND NEEDS
constexpr byte PotPin {A5};
constexpr byte LedPins[] {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // portPin o---|220|---|LED|---GND
struct LEDPATTERN {
byte content[10];
};
LEDPATTERN ledPattern[] {
{false, false, false, false, false, false, false, false, false, false},
{false, true, false, false, false, false, false, false, true, false},
{false, false, true, false, false, false, false, true, false, false},
{false, false, false, true, false, false, true, false, false, false},
{false, false, false, false, true, true, false, false, false, false},
{false, false, false, true, false, false, true, false, false, false},
{false, false, true, false, false, false, false, true, false, false},
{false, true, false, false, false, false, false, false, true, false},
{true, false, false, false, false, false, false, false, false, true},
};
// -------------------------------------------------------------------
void setup() {
Serial.begin(9600);
Serial.println(F("."));
Serial.print(F("File : ")), Serial.println(__FILE__);
Serial.print(F("Date : ")), Serial.println(__DATE__);
Serial.print(F("Project: ")), Serial.println(ProjectName);
pinMode (LED_BUILTIN, OUTPUT); // used as heartbeat indicator
// https://www.learncpp.com/cpp-tutorial/for-each-loops/
for (auto Output_ : LedPins) pinMode(Output_, OUTPUT);
}
void loop () {
unsigned long currentTime = millis();
digitalWrite(LED_BUILTIN, (currentTime / 500) % 2);
static unsigned long myMillis;
if (currentTime - myMillis >= (unsigned long) map(analogRead(PotPin), 0, 1023, 10, 200)) {
myMillis = currentTime;
static int patternCounter {0};
int element {0};
for (auto LedPin : LedPins) digitalWrite(LedPin, ledPattern[patternCounter].content[element++]);
patternCounter = (patternCounter + 1) % (sizeof(ledPattern) / sizeof(ledPattern[0]));
}
}
Have a nice day and enjoy coding in C++.