clignotante.ino
The go-to sanity check: the LED on pin 13 blinks at 1 Hz. millis() replaces delay() to keep the loop free. If nothing blinks, suspect the upload or the board selection.
Hardware required
A LilyPad Arduino (ATmega168V/328V, 8 MHz, 3.3 V) with its sew tabs, programmed via an FTDI cable (breakout) and powered by 3.7 V (LiPo) or 5 V on V-REG. No external component: the onboard user LED is enough.
Wiring
Nothing to wire, the LED sits on pin 13 behind a current-limiting resistor.
How it works
Each loop pass compares millis() with the last change; after 500 ms the pin state flips. In the Arduino IDE, select « LilyPad Arduino » and the FTDI port, then Upload. Conductive thread adds a few ohms of resistance: keep runs short and insulate crossings.
Going further
Vary PERIODE, or add an external LED with a 330 Ω resistor on another pin.
clignotante.ino
// Clignotement de la LED integree (broche 13, alias LED_BUILTIN).
const long PERIODE = 500; // ms entre deux changements d'etat
bool etat = false;
unsigned long precedent = 0;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
Serial.println(F("Clignotement demarre"));
}
void loop() {
unsigned long t = millis();
if (t - precedent >= PERIODE) {
precedent = t;
etat = !etat;
digitalWrite(LED_BUILTIN, etat ? HIGH : LOW);
Serial.println(etat ? F("ON") : F("OFF"));
}
}