A microcontroller is effectively a small, low-cost computer designed to perform a small number of specific tasks. Unlike a common desktop computer, a microcontroller will often run a single program, compared to the thousands of programs a computer can run. They are often low-power devices as well, able to be run off of standard battery power, and thus can be used in portable devices.
The basic task of a microcontroller is to receive input from the device it is controlling, then using a programmable processing chip it reads its program from the small memory storage, and then controls the device by sending signals to different components within the device. For example, the microcontroller inside a TV takes input from the remote control and displays output on the TV screen, controlling the channel selector, the speaker system and certain adjustments on the picture such as tint and brightness.
Microcontrollers are often "embedded" inside some other device so that they can control the features or actions of the product, thus they are also referred to as an "embedded controller."
Most microcontrollers fall into one of four main architectures:
- 8051 - An 8-bit microcontroller with 4kb of ROM (on-chip programmable space) and 128 bytes of RAM space which is inbuilt. (From Electronics Hub)
- PIC - A family of 8-bit microcontrollers with additional peripherals which are able to be programmed via serial communication. (From Electronics Hub)
- AVR - a customized Harvard architecture 8-bit RISC solitary chip micro-controller, capable of utilizing on-board flash memory storage. (From Electronics Hub)
- ARM - a 32 bit genuine RISC architecture which is particularly designed for micro-controller devices, it is simple to be trained and make use of however powerful enough for the most challenging embedded devices. It is the common choice for development boards like the Arduino. (From Electronics Hub)
Common Types of Microcontrollers
Individual, low-cost chips built on the PIC framework, which can be programmed in a very simple to learn BASIC language or via graphical flowcharts. More info at http://www.picaxe.com/.
A family of credit card-size controllers which can be directly programmed from a computer using a number of programming languages, the most common model being the Arduino UNO. The Arduino can be used as a stand-alone system or as a means to communicate with other computers. Multiple "shields" are also used in conjunction with Arduino for providing specific abilities. The fact that its design is open source has created a huge community for sharing projects and helping with problems in their forum. More info at https://www.arduino.cc/