Arduino
Introduction
Cette fiche résume les fonctions Arduino mappées aux périphériques internes du microcontrôleur ATmega328P.
⚠️ L’Arduino Uno est basé sur le ATmega328P, ce document s’applique donc directement à cette carte.
Elle permet d’identifier les appels de haut niveau associés à chaque module matériel.
GPIO – Entrées/Sorties numériques
| Fonctionnalité | Fonctions Arduino |
|---|---|
| Définir une broche | pinMode(pin, mode) |
| Lire un niveau | digitalRead(pin) |
| Écrire un niveau | digitalWrite(pin, value) |
PWM / Timers
| Fonctionnalité | Fonctions Arduino |
|---|---|
| PWM matériel | analogWrite(pin, value) |
| Attente millisecondes | delay(ms) |
| Attente microsecondes | delayMicroseconds(us) |
| Temps écoulé (ms) | millis() |
| Temps écoulé (µs) | micros() |
Timers utilisés :
Timer0 →millis,micros,delay, PWM sur broches 5, 6
Timer1 → PWM sur broches 9, 10
Timer2 → PWM sur broches 3, 11
UART / Série (USART)
| Fonctionnalité | Fonctions Arduino |
|---|---|
| Initialisation | Serial.begin(baudrate) |
| Envoi de données | Serial.print(), Serial.write() |
| Réception de données | Serial.read(), Serial.available() |
Utilise l’USART matériel de l’ATmega328P (broches 0, 1).
SPI
| Fonctionnalité | Fonctions Arduino |
|---|---|
| Initialisation | SPI.begin() |
| Transfert de données | SPI.transfer(data) |
Nécessite
#include <SPI.h>
Broches SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
I2C / TWI
| Fonctionnalité | Fonctions Arduino |
|---|---|
| Initialisation | Wire.begin() |
| Transmission | Wire.beginTransmission(address), Wire.write(data) |
| Réception | Wire.requestFrom(address, quantity), Wire.read() |
Nécessite
#include <Wire.h>
Broches I2C : A4 (SDA), A5 (SCL)
ADC – Convertisseur Analogique / Numérique
| Fonctionnalité | Fonctions Arduino |
|---|---|
| Lecture analogique | analogRead(pin) |
| Référence ADC | analogReference(type) |
Entrées analogiques : A0 à A7
Résolution : 10 bits (valeurs 0 à 1023)
EEPROM
| Fonctionnalité | Fonctions Arduino |
|---|---|
| Lecture | EEPROM.read(address) |
| Écriture | EEPROM.write(address, value) |
| Écriture conditionnelle | EEPROM.update(address, value) |
Nécessite
#include <EEPROM.h>
Capacité : 1 Ko
Interruptions externes
| Fonctionnalité | Fonctions Arduino |
|---|---|
| Attacher une ISR | attachInterrupt(digitalPinToInterrupt(pin), ISR, mode) |
| Détacher l’ISR | detachInterrupt(digitalPinToInterrupt(pin)) |
Broches supportées :
INT0(D2),INT1(D3)
Watchdog
| Fonctionnalité | Fonctions AVR (non Arduino) |
|---|---|
| Activer le Watchdog | wdt_enable(timeout) |
| Désactiver le Watchdog | wdt_disable() |
Nécessite
#include <avr/wdt.h>
Mémoire Flash (stockage programme)
| Fonctionnalité | Fonctions Arduino / AVR |
|---|---|
| Stockage constant en Flash | const __flash ou PROGMEM |
| Accès depuis Flash | pgm_read_byte(), pgm_read_word() |
Nécessite
#include <avr/pgmspace.h>
Comparateur analogique
| Fonctionnalité | Accès direct uniquement (pas Arduino) |
|---|---|
| Détection analogique rapide | Configuration par registre (ACSR) |
Oscillateurs & Horloge
| Fonctionnalité | Configuration |
|---|---|
| Horloge système | Définie par les fuse bits (ex: 16 MHz) |
| Oscillateur RTC (Timer2) | 32.768 kHz possible (asynchrone) |