Digital Electronics: Robotics, learn by building module II
4.7 (416 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
9,243 students enrolled

Digital Electronics: Robotics, learn by building module II

Over 7,000 enrolled! Open doors to careers and hobbies and have fun while learning digital electronics!
4.7 (416 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
9,243 students enrolled
Created by Ian Juby
Last updated 1/2020
Italian [Auto]
Current price: $69.99 Original price: $99.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 13 hours on-demand video
  • 1 article
  • 67 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Design and construct digital electronic circuits, use microcontrollers to control real world items like robots you build!
  • You will be able to program microcontrollers like the PIC and Arduino.
  • You will need knowledge of analog electronics and the parts listed in the first lesson.
  • No prior experience or knowledge in digital electronics is needed - just some basic math and computer skills!

Building on the knowledge you gained in the Analog Electronics module opens even more doors to diverse careers and hobbies. Think about how many industries / businesses / hobbies that involve computers or computer control. Even automobiles are chock full of digital electronics now. All of this involves digital electronics, and you want in on it today. In this module 2 course, you will build digital electronic circuits, use and program microcontrollers like the PIC and Arduino, and connect to the real world with them. You'll need a good understanding of basic electronics (i.e., you've completed the Robotics: Learn by building, module I), some basic math skills, a computer, and that's it!

With over 7,000 students enrolled and more than 300 five star ratings, students aged 8 to 60+ have enjoyed the course and its projects.

No prior knowledge of digital electronics or programming is required, and yet by the end of this course you'll have built functioning digital electronic circuits like a digital memory, and programmed microcontrollers which are basically a computer on a microchip. You will connect these to the real world for home automation and of course, controlling your robots. All courses have captions for the hearing impaired.

Course materials:

You will need the analog electronic parts and a breadboard, which you can purchase as an accompanying kit (i.e., the Analog Electronics Kit from module I) or provide your own.

You will also need the digital electronics kit which again you can purchase as an accompanying kit or provide your own parts. The first lesson is a walk-through of what is in the kit and acts as a parts list for this module.

This series of "Robotics: Learn by building" modules has an end-goal focus on the diverse field of robotics. In module I we learned the basics of electricity and electronics. In this module II you further develop your knowledge and skills to include digital electronics and practice your skills on real-life digital components. 

This course is the prerequisite for the module III course where you'll learn robotic drive systems and physics, and gain a wide variety of skills in prototyping so you can actually build your own robots and manufacture your own parts. In module IV, you'll culminate all you've learned so far as you build a 3D printer from scratch, hook it up to a desktop computer and make your own plastic parts. The 3D printer is, in effect, a robot which you can then use to make parts for your other robot designs. In module V you can take your robot design and construction skills to the next level with a hands-on approach to autonomous robotic systems: learning about various sensors to know where you are and what your robot is doing, GPS navigation, basic artificial intelligence, powerful microchips known as FPGA's where you literally design a custom circuit on the chip, vision systems and more.

Lesson overview:

In this course we'll be covering:

What is digital?

Binary & Hexadecimal system and ASCII
Analog to digital and digital to analog conversion
Logic gates and you'll make your own RAM
Digital Addressing/demultiplexing

Microprocessors & microcontrollers - what are they?

Programming & using PIC microcontrollers to:

-display information on an LCD display

-Read both digital and analog inputs

-PWM control a DC motor and servo motor

-Read keypad matrixes

-control LED displays

-writing to flash memory on board for remote systems

What is Arduino?
-using Arduino for all of the PIC projects above, as well as using full-colour TFT touch screens

Building our mobile robot

Giving our mobile robot a "brain"
Ultrasonics and ultrasonic radar / external sensing
Programmable IR remote

and more!

Who this course is for:
  • You have a desire to learn computer control and electronics, especially geared towards building and controlling robots.
  • You want to understand the heartbeat of computers and digital systems, and want to build your own digital electronic devices.
Course content
Expand 70 lectures 13:05:44
+ Introduction to digital electronics
70 lectures 13:05:44

An introduction to the digital electronics kit and what you'll need parts wise for this course.

Preview 09:35

So just what is "digital?" What does that even mean? In this lecture Ian gives a down-to-earth explanation of what digital is and why it's so powerful.

Preview 08:28

How on earth do you communicate large volumes of information using only a 1 or a 0? Ian explains the binary system and how to use it to even communicate letters.

Binary and ASCII

Binary is a base-2 system, Hexadecimal is a base-16 system which is also used extensively in digital electronics. Ian explains what hex is and how to interpret it.


Digital logic gates simple to understand and are the heart hiding in the background of most digital circuits.  Here you learn what they are and how they work.

Logic gates

Not only do you learn what a register is and how to use it, but you build one!  Registers are critical components in digital systems, built up from logic gates to store a 1 or a 0.

Registers and memory

Using logic gates, we can give an "address" to a specific digital element and control it using demultiplexing.  In this lecture you will learn what demultiplexing is and even solve some demultiplexing problems.


In this lesson, we learn what a microprocessor is by exploring its internal workings and functions.

Preview 12:15

In this lecture we learn what the stack is and how it works and the Arithmetic Logic Unit or ALU for short.

Microprocessors, Part II: The stack and the ALU

In this lesson, we explore what a microcontroller is and its advantages.

Please note: In the video I show what was supposed to be the PIC16F1455 chip on the anti-static foam. Well apparently I've gotten to that age in life where I need to wear glasses more often, as I instead grabbed a 556 chip (also a 14 pin DIP socket chip) during the filming!  So no, your eyes aren't fooling you, my eyes fooled me.  :)

What is a microcontroller?

A quick walk through on obtaining and installing the MPLAB software from Microchip to program your PIC microcontroller.

Installing IDE
Our first PIC program

In this lesson, we'll cover the most common pitfalls you'll encounter as you attempt to program your PIC.

Troubleshooting our program

In this lesson we will go line by line through our program to see what it did and how.

Preview 17:13

In this lesson we learn two new instructions while we build a binary counter.

Preview 10:05

Here we take our binary counter and build the circuit and program so as to manually trigger the count...with a small surprise at the end.

PIC program #3: Pushbutton binary counter

In this lesson we explain why the previous circuit and program behave erratically, and what we do about it - a very important process called debouncing. 

Preview 10:31

I made a mistake and also wanted to cover a mistake before it was made.  :)

Two quick points

Please note: A student kindly pointed out a source of confusion I caused.  Towards the end of the lesson, I use the example of 50 instead of d'50'.  I should have had the d’50’ because it was decimal. Because I didn’t include the d or ”, the compiler defaults to hex, so it would assume that was H50, not D’50’ My bad.

In this lesson, we explore what a variable is and why it is useful.


In this lesson we are introduced to a few new instructions and then given your first coding challenge!

KITT car challenge!

In this lecture we learn how to communicate with and control the Hitachi LCD displays.

Preview 14:14
Using the Hitachi LCD displays, part 2

In this lesson, we interface our PIC microcontroller to the LCD display.

Interfacing the PIC with the LCD display, project 1, part 1

In this lesson, we finalize the code involved in interfacing the PIC and LCD display.

Interfacing the PIC with LCD display, project 1, part 2
Tables on the PIC and interfacing to the LCD, project 2, part 1
Tables on the PIC and interfacing to the LCD, project 2, part 2

In this lesson, we are introduced to the concept of analog and digital conversion.

Analog and digital converting

In this lesson, we cover the various techniques of converting an analog signal into digital numbers, how the processes work and the time involved.

Preview 09:58

In this lesson, you will learn of the importance and methods of obtaining direct feedback from the microcontroller, and the why's and how's of calibration.

Direct feedback and calibration

This lesson walks us through what's involved in setting up and reading the A/D converter, and then displaying it on our LCD display.

A/D converter to LCD display, part I
A/D converter to LCD display, part 2

In this lesson we discover the dead-easy way to set the "fuses" on board the PIC microcontrollers

Configuration settings on the PIC microcontrollers

You will get a quick grasp on what Arduino is and why it's all the rage.

Preview 16:48

You can download and install the IDE needed to program the Arduino.  Here's how.

Installing Arduino IDE

Please note: the IDE installs a more recent version of the "Blink" file.  The old version which I used in the lesson is available in the downloads section as a zipped file. Download it, unzip it somewhere on your computer, and then from the Arduino IDE go FILE > OPEN and select the unzipped old_blink.ino file.  It will ask you if you want to put it in a folder and open it, just select yes.

Just like we did previously with the PIC microcontroller, we'll kick off Arduino by flashing an LED in a typical "Hello world" first program.

"Hello world" on the Arduino

After you see some basic programming rules, you're given your first programming challenge: Program a traffic light!

Arduino programming basics

After a brief look at one of the possible ways to accomplish our traffic light challenge, we venture in to how timing is accomplished on the Arduino.

Timing on the Arduino

In this lesson you will invoke a digital input to control a digital output. Easy peasy!

Preview 09:43

In this lesson you'll learn to perform digital tests with the If, Else function.

If, Else statements

In this lesson, you'll explore variables and how they're used in the Arduino programming language.

Variables on the Arduino

In this lesson, we'll get introduced to the basics of Pulse Width Modulation on the Arduino by controlling the brightness of an LED.

PWM on the Arduino

In this lesson we see how to use the dead-simple, yet very powerful L298 H-bridge board combined with our Arduino to control a DC motor.

July 2018, Please note an error in the original sample code was pointed out to me. The video shows the correct code, but mysteriously the sample code (which I used in the video!) got altered between filming and uploading all the files. The correct code is now provided.

The L298 H-bridge and Arduino

In this lesson, we'll use a combination of PWM with our H-bridge to control both the speed and direction of a DC motor.

Using PWM and an H-bridge

After discussing the unique challenges and characteristics of PWM on the Arduino and why it won't work for driving hobby servos, we then look at a new instruction and a way to control the servos.

driving servos with the Arduino

Here you learn the basics of serial communication and how to use it in powerful ways.

Serial Communication

In this lesson, we make use of the serial monitor - a very useful tool in the Arduino IDE.

Using the serial monitor

Now we'll walk through the super simple to use and very powerful analog to digital conversion on the Arduino.

Preview 06:11
Internal Pull-up resistors
Loops in Arduino

In this lesson we learn how to use the membrane keypad from our kits, a common style of keypad for Arduino. Learning how to read matrix keypads also helps us to understand standard computer keyboards as well.

Keypad and keyboards

We briefly go over how to represent the different base numbering systems in the Arduino IDE.

Base numbering in Arduino

In this lecture, we ask "What on earth is a shift register?"  Oh, we also answer that question.

Shift registers

In this lecture, we learn how to write to the venerable TM1638 controller and its "LED & KEY" circuit board. Super cheap, very useful, dead easy to use controller that is so versatile. Horrible documentation, so we try and rectify that little problem with easy to follow steps.

Preview 15:54

Part 2, we explore some more details about using boards with the TM1638 controller and look at two more example codes.

Preview 08:19

In this lesson, we look at the last function of the TM1638 controller: the button matrix.

Reading buttons on the TM1638 controller

In this lesson, we'll learn how our reflective infrared emitter/receiver pair works and how to make use of it with our Arduino in preparation for our mobile robot.

Using our reflective Infrared sensor with Arduino

In this lesson, we go over the actual assembly of our mobile robot platform.

Assembling our mobile robot

In this lesson, we'll add our computer control and electronics to our mobile robot/smart car platform.

Adding electronics to our mobile robot

In this lesson, we calibrate and program our mobile robot and teach it some dance moves.

Preview 19:45

In this lesson we mount and use our infrared proximity sensor for basic obstacle avoidance and navigation. We also mount some googly eyes.

Obstacle avoidance with infrared sensor

In this lesson we explore functions in the Arduino programming language.

Subroutines, aka functions in Arduino

In this lesson, we briefly explain what libraries are and install a couple in preparation for our next few lessons.

Libraries in Arduino

In this lesson, we'll put our ultrasonic sensor to work, measuring distances in non-destructive, no-contact ways.

Using our ultrasonic shield

Before we move on to using our Hitachi & full colour LCD touch screens, we need to learn what "arrays" are and what "string variables" are. Here we go.

Arrays & String variables

Here we'll dive into multidimensional arrays cause, you know, single arrays just weren't complicated enough.

Multidimensional arrays

In this lesson, we'll actually put into practice using Arduino libraries to manage our Hitachi display.

Preview 05:24

In this lesson, we attempt to cut down the confusion regarding these beautiful full-colour, TFT LCD displays. We then wire them for use in preparation for the next lesson.

Preview 19:37

In this lesson we go through the startup and initialization sequence for our TFT display.

Starting up our TFT display

This bonus lesson is in response to a student's excellent question about a line following robot challenge. Here's how to do it.

Preview 03:48