Course 4: Microcontrollers


Lesson 1: Introduction to Microcontrollers Want to learn about microcontrollers? Please start here! This lesson explains the course content, what expectations you should have and what parts are needed for the course.
Lesson 2: Hardware Hello World Building a 'hello world' application signifies a time honored approach to learning how to program. In this lesson, we will explore the first steps necessary for building and loading programs onto a microcontroller.
Lesson 3: Input and Output All microcontrollers have general purpose input and output pins, often called GPIO. Here we will take a look at how to build a program and hardware to accept push-button input in order to affect output LEDs.
Lesson 4: Timers and Timing All processors use a master clock frequency to execute instructions and microcontrollers are no different. In this lesson, we will explore the relation between processor speed, instruction timing, and internal timer modules.
Lesson 5: Analog to Digital Conversions In order to interface to the analog world, microcontrollers often have an internal analog-to-digital converter. In this lesson, we will test the converter to understand how it works.
Lesson 6: Polling vs Interrupts In order to make your system as efficient as possible, you need to build a reactive system instead of a brute force polling system. In this lesson, we will explore why interrupts are important and why polling is inefficient.
Lesson 7: Communicating with a PC Most microcontrollers operate in an environment where they need to talk to other computers. In this lesson, we will use serial communication with our laptop to send commands to our microcontroller.
Lesson 8: Design an LED Game At this point, we have tons of knowledge about microcontrollers, let's take a break and do something fun: design a game! This game will be a game of skill with push buttons and LEDs.
Lesson 9: Design a Cyclops Eye Another internal module in microcontrollers generates what is called a PWM output. In this lesson, we will explore using these PWM output modules to make a cyclops eye with fading LEDs.
Lesson 10: AVR vs Arduino The arduino platform uses the AVR ATMEGA328 microcontroller to provide an awesome introduction to using microcontrollers, but there actually exists a world underneath arduino: let's take a look at it.