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)

Source