Arduino Class C++

Hi Ash,

See if this is helpful for you...

Cheers,
John

class Blinker{
  public:
  Blinker(int pin)
  {
    pinMode(pin,OUTPUT);
    _pin=pin;
    state=0;
    delayms = 100;
  }
  void loop()
  {
    long now = millis();
    switch(state)
    {
    case 0:
      digitalWrite(_pin,HIGH);
      timer=now;
      state = 1;
      break;
    case 1:
      if (now-timer>=delayms)
      {
        state=2;
      }
      break;
    case 2:
      digitalWrite(_pin,LOW);
      timer=now;
      state=3;
      break;
    case 3:
      if (now-timer>=delayms)
      {
        state=0;
      }
    }
  }
  void setDelayMs(long dms){ delayms=dms; }
private:
  unsigned long timer;
  int pin;
  int _pin;
  int state;
  long delayms;
};


Blinker led1(13);  // pin 13
Blinker led2(11);  // pin 11

void setup()
{
  led2.setDelayMs(250);  // led2 will be constant at  2 cycles per second
}

void loop()
{ 
  // make led1 speed up over the course of 30 seconds
  long delay = 1000 - (millis()/1000)%30 * 30;
  led1.setDelayMs(delay);

  led1.loop();
  led2.loop();
}