Most of the projects I personally build are microcontroller based - but what is a microcontroller? In this post we will discuss the basics of what a microcontroller is, why we use them, what basic capabilities they have, and the basics of the most commonly used microcontroller in my projects, the Adafruit ESP8266 HUZZAH Feather.
What is a microcontroller?
A microcontroller, at it's most basic form, is an integrated circuit that modifies and input and provides an output. The input can be anything from a button press, a sensor, a keystroke, sound, light, or predetermined data set. The output can be motor movement, light color or brightness, a text message, graphic display, or sound, among others.
Why do we use microcontrollers?
Microcontrollers enable cheap and easy automation of electrical systems. You can find microcontrollers in almost all electrical devices nowadays - power tools, cars, copy machines and printers, toys, appliances, and more! I use microcontrollers in my projects because they enable me to easily automate electrical systems that would otherwise be far too complicated to build via analog circuits. Development boards are microcontrollers that companies have built to be user-friendly and have many built-in features that make otherwise complex problems very easy to construct and program, such as pull up resistors, pulse width modulation, h-bridges, and built-in LED's.
Adafruit ESP8266 HUZZAH Feather
Most of the first projects I build use the Adafruit ESP8266 HUZZAH Feather board. This microcontroller has all of the basic features of common microcontrollers with one huge advantage - internet connectivity! Additionally, the Adafruit company is a huge advocate of STEM education and provides exceptional product support. They also maintain a free internet of things dashboard, Adafruit IO, that can be used to control their projects remotely!
The ESP8266 Huzzah Feather is one of the new development boards from Adafruit that is thin, light, and relatively inexpensive at less than $20. The microcontroller can be connected using a micro-USB cord and programmed using the ever-user-friendly Arduino IDE Software. There is also a JST connector for rechargeable LiPo batteries, and an integrated charging circuit for the LiPo battery that uses the micro USB as a power input.
The HUZZAH has 22 pins for connecting to power, ground, inputs, and outputs, including:
GND - ground pin
BAT - positive battery in pin, tied to JST connector
USB - positive power pin, tied to micro USB
EN - enable the 3.3V regulator to protect the board from over-voltage
3V - 3V output from EN
2 serial pins, RX and TX
5 pins for I2C and SPI communication
9 pins for GPIO digital input/output
1 pin for analog input
RST - reset pin to restart the board
CH_PD - enables/reset the wifi (ESP8266) chip on the board
In addition there are 6 unused pins called NC which stands for "not connected" that are merely placeholders. The Adafruit ESP8266 HUZZAH Feather is an excellent entry-level development board and I have had great success with projects based on this microcontroller. To learn more about this board, visit Adafruit's guide.