🛠 Faire clignoter la LED 13 d'une Duemilanove (et choisir le bon ATmega)
Objectifs
Prendre en main l'Arduino Duemilanove (2009), la dernière grande carte « old-school » avant l'Uno : ATmega168 ou ATmega328 8 bits AVR à 16 MHz, logique 5 V, pont USB-série FTDI FT232RL, bootloader ATmegaBOOT. Le premier programme est un classique — faire clignoter la LED sur la broche 13 — mais il cache LE piège historique de cette carte : il existe deux puces différentes derrière le même nom de carte, et il faut choisir la bonne dans l'IDE.
Matériel
- 1 carte Arduino Duemilanove avec ATmega328 (ou ATmega168 — regardez la sérigraphie de la puce DIP-28)
- 1 câble mini-USB (les Duemilanove utilisent un connecteur mini, pas micro)
- PC : sous Windows, installer le pilote FTDI VCP (les pilotes modernes de Windows 10/11 l'incluent généralement)
- Arduino IDE avec le core « Arduino AVR Boards »
Code complet
// Blink Duemilanove — LED integree broche 13 (HIGH = allumee)
const byte LED = 13;
void setup {
pinMode(LED, OUTPUT);
}
void loop {
digitalWrite(LED, HIGH); // LED allumee
delay(1000);
digitalWrite(LED, LOW); // LED eteinte
delay(1000);
}
Dans l'IDE : Outils > Type de carte > Arduino Duemilanove or Diecimila, puis Outils > Processeur : « ATmega328 » si votre puce est une 328 (ou 328P), « ATmega168 » si c'est une 168. Sélectionnez le port série (port série USB-série FTDI, jamais un port Bluetooth) et Téléverser.
Vérification attendue
La LED « L » clignote une fois par seconde dès la fin du téléversement. Les LED TX/RX de la carte clignotent pendant le téléversement (trafic USB via la FTDI). Le programme continue sans l'USB, sur alimentation jack 7–12 V ou batterie sur les broches Vin/GND du connecteur POWER.
Erreurs fréquentes
- Mauvais processeur sélectionné : un sketch compilé pour la 328 (57600 bauds, 30720 octets) téléversé sur une 168 (19200 bauds, 14336 octets) échoue au timeout du bootloader — et l'inverse aussi. C'est LE piège de la Duemilanove : la carte s'appelle pareil mais il y a deux puces.
- Pilote FTDI absent sous Windows : aucun port COM n'apparaît ; installer le pilote VCP FTDI (les clones avec FT232R contrefaits peuvent refuser de s'énumérer après certaines mises à jour du pilote).
- Câble USB de charge seule : la LED d'alimentation s'allume mais aucun port n'apparaît.
- Confondre la LED d'alimentation (ON, fixe) avec la LED utilisateur « L » (broche 13).
- Alimentation par le jack trop faible : sous 7 V le 5 V devient instable, au-dessus de 12 V le régulateur chauffe — la Duemilanove est exigeante sur le 7–12 V recommandé.
Autres tutoriels pour cette carte
- Bouton poussoir et moniteur série sur la Duemilanove (avec ses 0,5 s de silence)
- Potentiomètre et variation LED : l'ADC 10 bits et le PWM 8 bits version AVR
- Ajouter un deuxième port série avec SoftwareSerial (GPS sur broches 10/11)
- Régler la référence de mesure avec AREF et analogReference
- Persister une calibration dans l'EEPROM de l'ATmega (512 octets ou 1 Ko)
- Convertir la Duemilanove en programmateur AVR (ArduinoISP) pour graver des puces nues
Exemples de code pour cette carte
clignotante.inoArduinobouton-led.inoArduinopwm-respiration.inoArduinopotentiometre-plotter.inoArduinoservo-balayage.inoArduinobuzzer-melodie.inoArduino