Le microcontrôleur utilisé sur la carte Arduino UNO est un microcontrôleur ATMega328. C'est un
microcontrôleur ATMEL de la famille AVR
8bits.
Les principales caractéristiques sont :
FLASH = mémoire programme de 32Ko
SRAM = données (volatiles) 2Ko
EEPROM = données (non volatiles) 1Ko
Digital I/O (entrées-sorties Tout Ou Rien) =
3 ports PortB, PortC, PortD
(soit 23 broches en tout I/O)
Timers/Counters : Timer0 et Timer2
(comptage 8 bits), Timer1 (comptage 16bits)
Chaque timer peut être utilisé pour générer
deux signaux PWM. (6 broches OCxA/OCxB)
Plusieurs broches multi-fonctions : certaines
broches peuvent avoir plusieurs fonctions différentes choisies par programmation
PWM = 6 broches OC0A(PD6), OC0B(PD5), 0C1A(PB1), OC1B(PB3), OC2A(PB3),
OC2B(PD3)
Analog to Digital Converter (résolution 10bits) = 6 entrées multiplexées ADC0(PC0) à
ADC5(PC5)
Gestion bus I2C (TWI Two Wire Interface) = le bus est exploité via les broches
SDA(PC5)/SCL(PC4).
Port série (USART) = émission/réception série via les broches TXD(PD1)/RXD(PD0)
Comparateur Analogique = broches AIN0(PD6) et AIN1 (PD7) peut déclencher interruption
Watchdog Timer programmable.
Gestion d'interruptions (24 sources possibles (cf interrupt vectors)) : en résumé
– Interruptions liées aux entrées INT0 (PD2) et INT1 (PD3)
– Interruptions sur changement d'état des broches PCINT0 à PCINT23
– Interruptions liées aux Timers 0, 1 et 2 (plusieurs causes configurables)
– Interruption liée au comparateur analogique
– Interruption de fin de conversion ADC
– Interruptions du port série USART
– Interruption du bus TWI (I2C)