int ledPin = 13; int val = 0; void setup() { pinMode(ledPin, OUTPUT); } #define HALF 2000 void loop() { val += 1; if((HALF+HALF)<val){ val = 0; }; int v = val<HALF ? val : (HALF+HALF-val); digitalWrite(ledPin, HIGH); delayMicroseconds(v+1); digitalWrite(ledPin, LOW); delayMicroseconds(HALF-v+1); }