Can someone please help

I am very new and need some guidance please.
I am a scale model builder and want to setup an Arduino Nano board for lighting.
I want to setup the board for Strobe lights and also Navigation lights on the same board.
I used the default example for the blink in the software for the strobes and I just changed the blink rates. It is using pin 13. I would like to also use pin 12 for the Nav lights but do not know how to program the output for pin 12. Right now my board is programed as follows.

/*
Blink

Turns an LED on for one second, then off for one second, repeatedly.

Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino
model, check the Technical Specs of your board at:
https://www.arduino.cc/en/Main/Products

modified 8 May 2014
by Scott Fitzgerald
modified 2 Sep 2016
by Arturo Guadalupi
modified 8 Sep 2016
by Colby Newman

This example code is in the public domain.

https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(10); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(2000); // wait for a second
}

I would like to use pin 12 for the same code and just adjust the delays to 200 and 2900 but don't know hot to program that pin without messing up the original code.

I hope someone can help.

Thank you

See the multitasking tutorial.

Example code using millis() multitasking.

const byte led_13Pin = 13;
const byte led_12Pin = 12;

bool led_13State = false;
bool led_12State = false;

void setup()
{
   Serial.begin(115200);
   pinMode(led_13Pin, OUTPUT);
   pinMode(led_12Pin, OUTPUT);
}

void loop()
{
   flash_13();
   flash_12();
}



void flash_13()
{
  static unsigned long timer = 0;
  static unsigned long interval = 200;
  if(millis() - timer >= interval)
  {
    timer = millis();
    led_13State = !led_13State;
    if(led_13State)
    {
      interval = 10;  // on time     
    }
    else
    {
      interval = 2000;  // off time
    }
    digitalWrite(led_13Pin, led_13State);
  }
}

void flash_12()
{
  static unsigned long timer = 0;
  static unsigned long interval = 200;
  if(millis() - timer >= interval)
  {
    timer = millis();
    led_12State = !led_12State;
    if(led_12State)
    {
      interval = 200;     
    }
    else
    {
      interval = 2900;
    }
    digitalWrite(led_12Pin, led_12State);
  }
}

Wow thank you very much. That code is doing exactly what I need.. Again thank you!!!!

Is it for the Enterprise? There was a really good thread about nav/strobe lights for a model in the forum several months ago. Try the forum search with some appropriate key words.

Enterprise-A and Voyager

Engage!

Search for username "secretreeve" - a fellow modeller

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