Microcontrollers contain a processing core, flash memory, RAM, I/O peripherals, and are used for specific tasks. The Arduino is an open-source physical computing platform based on a microcontroller board with a USB plug and uses a version of Processing for programming. Arduino boards can be programmed using the Arduino IDE and expanded with shields to add additional functionality.