Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

The University of Texas at Austin

Embedded Systems - Shape The World: Microcontroller Input/Output

The University of Texas at Austin via edX


Learn how electronic gadgets are designed, developed, and built as embedded systems that shape the world.

This is part one of a two part sequence. Together these are hands-on, learn-by-doing courses that show you how to build solutions to real-world problems using embedded systems. In this course, we take a bottom-up approach to problem solving, building gradually from simple interfacing of switches and LEDs to complex concepts like a microcontroller-based pacemaker, digital lock, and a traffic light controller. We will present both general principles and practical tips for building circuits and programming the microcontroller in the C programming language. You will develop debugging skills using oscilloscopes, logic analyzers, and software instrumentation. Laboratory assignments are first performed in simulation, and then you will build and debug your system on the real microcontroller. At the conclusion of this part 1 you will possess the knowledge to build your own traffic light controller from the ground up.

This is the fourth time we have offered this course. Since the reviews have been overwhelmingly positive we do not plan major changes over the previous offerings of the course. We did however break the large class into two smaller classes. There are eight labs in part 1 and six labs in part 2. Students can pick and choose a subset of labs to achieve certification. The three labs that students found most rewarding in this part were designing the software algorithm for a demand pacemaker, interfacing switches and LEDS, and the finite state machine traffic light controller.

To complete this course, you will be required to purchase a Texas Instruments TM4C123 microcontroller kit and a few electronic components.

This microcontroller has a state-of-the-art ARM Cortex-M4 processor.

We will provide instructions about purchasing the kit and installing required software at:


The best way to understand what you will learn in this class is to list the labs you will complete and the example projects we will build. You will complete each lab first in simulation and then on the real board. For each module we will design a system and you will build and test a similar system.

Module 1: Welcome and introduction to course and staff

*Module 2: Fundamental concepts: numbers, computers, and the ARM Cortex M processor *

Lab 2. Run existing project on LaunchPad with switch input and LED output

___ Module 3: Electronics: resistors, voltage, current and Ohm’s Law _**

* Module 4: Digital Logic: transistors, flip flops and logic functions *

Lab 4. Debug a system with two inputs and two outputs

* Module 5: Introduction to C programming *

Lab 5. Write a C function and perform input/output

* Module 6: Microcontroller Input/Output *

Lab 6. Write C software that inputs from a switch and toggles an LED output

* Module 7: Design and Development Process *

Lab 7. Write C functions that inputs from a switch and outputs to two LEDs, which is a virtual pacemaker

* Module 8: Interfacing Switches and LEDs *

Lab 8. Interface an external switch and LED and write input/output software

* Module 9: Arrays and Functional Debugging *

Lab 9. Write C functions using array data structures that collect/debug your system

* Module 10: Finite State Machines *

Lab 10. Interface 3 switches and 6 LEDs and create a traffic light finite state machine

Taught by

Jonathan Valvano and Ramesh Yerraballi


4.5 rating, based on 15 Class Central reviews

Start your review of Embedded Systems - Shape The World: Microcontroller Input/Output

  • Pratik
    This is a great course for anyone who is interested in getting hands on experience with Embedded Systems. For those who have some prior knowledge, the first few weeks can be a little boring. The selection of course material is very good. With some additional reading, this is a great course for a beginner to get involved in embedded systems.
  • Anonymous
    Great class and a lot of work. We covered many aspects of embedded systems design using the TM4C123G.
  • Alex Lako
    An excellent introduction to microcontrollers. The course uses a Texas Intruments LaunchPad microcontroller to teach the concepts. The parts required to complete the course a relatively inexpensive. The instructors make the learning fun and enjoyable. I would highly recommend this course to get you started.
  • Nuno Goncalves
    I's very good, the team add developed this formation in acordance with the best practices, is very useful to begining developent in arm devices.
  • Akos Szekacs
    One of the best online courses that I ever participated in.
    Staff is awesome, Jonathan Valvano's and Ramesh Yerraballi's enthusiasm was so good to see and it inspired me a lot.
  • Vpm
    Great course. I found it pretty challenging and some of the sections were not new to me. The grading system was really effective, I don't know of any other embedded course that can actually test the device you are working on.
  • Profile image for Bhuvan N
    Bhuvan N
  • Chad Condon
  • Profile image for Baser Kandehir
    Baser Kandehir
  • Profile image for Jose Fco
    Jose Fco
  • Surya Venkata Raju K
  • David Chaínho
  • Andrey

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.