What the heck is an “Arduino”?

Before I can explain Arduino, I need to explain microcontrollers:

A microcontroller is a miniaturized computer on a single chip, which may contain any number of inputs and outputs. They are usually much more minimal and constrained in what they are capable of, compared to what people usually think when you say “computer”, but they are physically quite small and use very little electricity. They are called “microcontrollers” because they are often used as controllers: when a minimal, autonomous solution to control a machine or process is required. To put these size differences in context: your PC could have a 2.5GHz quad core processor, 8GB of RAM, 500GB or more of storage available, and can handle an arbitrarily large number of inputs (it can communicate with many devices simultaneously, some at very fast speeds). A microcontroller, like the one you’d find in a microwave or vending machine, might have a 25MHz clock (1/100 the speed of your pc), ~128Kb or less of memory, and could only handle 15-30 simple binary inputs. However, your PC is 2 feet tall, 6 inches wide and a foot deep, and requires 300-500 watts to power; a microcontroller, on the other hand, might be just a few square millimeters in size and some can operate on milliwatts of power or less.

For example, your refrigerator has a microcontroller inside that controls the heat pump and fans. It would have a temperature sensor and the temperature control knob as inputs, and the outputs are connected to relays that activate the heat pump. The microcontroller would be programmed to repeat the same loop over and over: read the internal temperature of the fridge from the temperature sensor and compare that value to the desired temperature (as determined by the control knob); then, if the actual temperature is higher than the desired temperature, it will activate the heat pump to start lowering the temperature within the box. It will leave the heat pump on until it measures the internal temperature to be equal to or lower than the desired temperature, whereupon it will open the heat pump relay, turning it off. The microcontroller will loop this same program indefinitely, until the fridge is unplugged.

So what’s the point? Well, compared to your laptop, iPad, or desktop computer, the microcontroller is very small, but completely sufficient for running simple math operations and controlling simple outputs. Microcontrollers are everywhere and in everything: automated toilets, printers, toll booths, all sorts of kitchen appliances, televisions, etc. Microcontroller programs are often simpler and smaller than programs for full-sized computers, no more complicated than they need to be. However, most microcontrollers require advanced hardware and knowledge of manufacturing/fabrication techniques to use. To create a project using raw hardware requires circuit fabrication materials and knowledge of techniques, oscilloscopes and logic analyzers for debugging, and special hardware to load the programming onto the chip; such a setup can cost upwards of tens of thousands of dollars. In addition, programs are often written in Assembly language, which is unique to each microprocessor architecture, and each with its own esoteric (and in some cases, quite archaic) set of commands and syntax rules.




Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s