#include <Servo.h>
Servo servo;
const uint8_t ledPin = LED_BUILTIN;
const uint8_t servoPin = 9;
void setup()
{
Serial.begin( 115200 );
pinMode( ledPin, OUTPUT );
servo.attach( servoPin );
}
void loop()
{
const uint32_t now = millis();
static uint32_t past = now;
static uint16_t interval = 15;
if ( now - past >= interval )
{
past = now;
static bool wait = false;
if ( wait == false )
{
static uint8_t pos = 0;
static bool invert = false;
if ( ( invert == false && ++pos == 180 )
|| ( invert == true && --pos == 0 ) )
{
invert = !invert;
wait = true;
interval = 2000;
Serial.print( "LED " );
Serial.println( invert ? "ON" : "OFF" );
digitalWrite( ledPin, invert ? HIGH : LOW );
}
servo.write( pos );
}
else
{
wait = false;
interval = 15;
}
}
}