A microcontroller (uC, uC, mCU) is a programmable integrated circuit that executes commands recorded in its memory. It consists of a central processing unit (CPU), different types of memories (ROM, EEPROM, FLASH, RAM) and a variety of input/output peripherals (Timers, ADCs, PWM, GPIOs, I2C ports, SPI, CAN, UARTs).