Hi all, Thank you for all of your help and posts/links. It was definitely more work than I had assumed, but found a similar code to the ones you recommended. I think I am more or less there, but if you see any issues/developments please shout. I have it set to a 15second repeat.
int ledPin9 = 9;
int ledPin8 = 8;
int ledPin7 = 7;
int ledPin6 = 6;
int ledPin5 = 5;
int ledPin4 = 4;
int ledPin3 = 3;
int ledPin2 = 2;
int ledPin10 = 10;
int ledPin11 = 11;
int ledPin12 = 12;
int ledPin13 = 13;
/// 1 East Cardinal Mark
/// 2 South Cardinal Mark
/// 3 West Cardinal Mark
/// 4 North Cardinal Mark (cont)
/// 5 QF continuous
/// 6
/// 7 Port/Stbd FL.R/G.3s
/// 8
/// 9 L.FL.R/G
/// 10
/// 11 FL.(2).R/G
/// 12 Racing Mark FL(4)
byte ledSequ [][12] {
///1 2 3 4 5 6 7 8 9 10 11 12
{1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1},
{1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1},
{1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1},
{1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1},
{1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0},
{0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
{1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1},
{1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1},
{1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0},
{0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
{0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1},
{0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1},
{0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0},
{0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0},
{0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0},
{0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
{0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0},
{0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
};
// new
byte leds[] {ledPin13, ledPin12, ledPin11, ledPin10, ledPin9, ledPin8, ledPin7, ledPin6, ledPin5, ledPin4, ledPin3, ledPin2};
void setup()
{
Serial.begin(9600);
pinMode(ledPin13, OUTPUT);
pinMode(ledPin12, OUTPUT);
pinMode(ledPin11, OUTPUT);
pinMode(ledPin10, OUTPUT);
pinMode(ledPin9, OUTPUT);
pinMode(ledPin8, OUTPUT);
pinMode(ledPin7, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin2, OUTPUT);
}
void loop() {
const unsigned long blink = 250;
static unsigned long blinkMillis;
if (millis() - blinkMillis >= blink ) {
static int nummer;
blinkMillis = millis();
Serial.println("blink");
for (unsigned int n=0; n<sizeof(leds); n++) digitalWrite(leds[n],ledSequ[nummer][n]);
nummer++;
nummer = nummer % (sizeof(ledSequ)/sizeof(leds));
}
}