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
An Arduino Mega 2560 (ATmega2560, 16 MHz, 5 V): 54 digital I/O, 15 PWM, 16 analog inputs, 4 hardware UARTs. 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 « Arduino Mega 2560 » and the port, then Upload. PWM on 2-13 and 44-46; UART1=18/19, UART2=16/17, UART3=14/15; SPI on 50-53.
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"));
}
}