The Octopart blog has a good read on ‘how to choose a microcontroller‘ – it’ll get you thinking (or at least aware) of the pros and cons of several common microcontroller offerings out there.
The microcontroller is the brains behind any project, performing thousands of tasks every second. Choosing familiar microcontrollers or what has worked previously can help in the process, but doesn’t necessarily fit every project.
Starting off, let’s look at the difference between a microprocessor and a microcontroller. These are often confused with each other. Microprocessors generally consist of just the Central Processing Unit (CPU), which performs all the instructions in a computer program, including arithmetic, logic, control and input/output operations. Microcontrollers contain one or more CPUs with RAM, ROM and programmable input/output peripherals. Microprocessors tend to operate at much greater clock speeds on general application tasks, like gaming, photo editing and software development, whereas microcontrollers are designed for more specific tasks in smaller embedded systems like keyboards, mice, electronic toys and vending machines.
In short, it’s easier to turn on and off an LED with a microcontroller as it has direct access to the output pin, whereas microprocessors have to communicate with the external peripherals (ICs) to control the LED.
As an example, the Raspberry Pi uses the BCM2835/BCM2836 Broadcom microprocessors and the Arduino uses the ATMEGA328p/ATMEGA2560 microcontrollers.