Arduino Step by Step: Your complete guide

Learn how to create electronic projects with the Arduino, the world's friendliest electronics prototyping platform!
$20
Take This Course
  • Lectures 139
  • Video 23 hours
  • Skill Level All Levels
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 11/2013 English Closed captions available

Course Description

** Enroll to enter a draw for a $100 Amazon Gift Card (see below for details) **

Until the end of July, enroll to Arduino Step by Step and share your Arduino Creation on Twitter for a chance to win a $100 Amazon gift card

To be eligible, post a tweet with these parts: 

1. End with hashtag #txplorecreation
2. A photo of your Arduino creation,
3. A description of your creation. 

You can post multiple times as long as you feature a different creation. Even a simple blinking LED is a great post, as long as it is your own creation!

I will draw the winner by the end of the 1st week of August!

**********************************************************

The Arduino is an open-source electronics platform based on easy-to-use hardware and software. Sensing the environment by receiving inputs from many sensors, Arduino affects its surroundings by controlling lights, motors, and a number of other accessories. It's intended for anyone making interactive hardware projects.

This course is designed to introduce the Arduino hardware and programming environment to get you started on building projects as soon as possible.

Unleash Your Inner Tony Stark With this Comprehensive Course

  • Arduino Ecosystem and Programming Introduction
  • Shields, Accessories, and Sensors
  • Internet Integration and Communication
  • Advanced Integrations with Motors, Gears, and Movement
  • DIY Projects and Quick Tips

A Platform for Creating Any Device Imaginable Created in 2005 by students at the Interaction Design Institute in Italy, Arduinos are microcontrollers that make the creation of interactive electronic devices accessible and fun. In recent years have become a favorite of electronic hobbyists and DIYers because of their ease of use and extremely low cost.

Notable projects include Ardupilot, a UAV platform able to control aerial drones, and Xoscillo, an open-source oscilloscope.

Contents and Overview This course is designed for anyone interested in learning electronic design. No experience is required, and all you need is an Arduino and several low cost components.

With over 23 hours of content in 110 lectures, this course will take you from zero experience in electronics or programming to Arduino Master.

What are the requirements?

  • No materials required if you only wish to view the course
  • Computer (Windows, Linux, Mac)
  • An Arduino prototyping board
  • A detailed list of materials is provided in Lesson 1

What am I going to get from this course?

  • Program the Arduino prototyping platform
  • Understand the principles of programming micro-controllers
  • Understand and use many types of sensors and components
  • Connect your Arduino to the Internet for reporting and controlling
  • Use tools to build electronic devices
  • Understand basic principles in electronics design

What is the target audience?

  • Anyone with a curiosity for making electronics
  • People with no experience in electronics
  • People with an intermediate knowledge of electronics
  • Children over 12 years old (or younger with supervision)

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Getting started with the Arduino
01:54

This is the introduction to the course, what it's about, and a bit about Peter.

List of parts

In the resources (look at the bottom of this box) you can find a link to a Google sheet that contains the parts I am using in the demonstrations in this course. Use this sheet when you are shopping for parts.

Source code

Also in the resources, you will find a link to Github, where the source code for all sketches is available for view or download. Feel free to get this code and play. If you find any errors, or wish to recommend improvements, either email me (peter@txplore.com) or make a push request on Github.

Also...

Please take some time to review any videos in the last section, "Appendices". These videos contain hints, tips and general information that can help you better use this content. I update it as the need arises.

Please read this before continuing!
Preview
Article
IFrame

This document contains a list of the parts used throughout this course. Indicative prices and links to eBay are also included.

I realise that there are a lot of parts in this list, and the total cost can go up to a few hundreds of dollars. If you are finding it hard to find the money for everything, I suggest that you prioritise your purchases. Either focus on the parts of the course that are more interesting to you, or buy parts for the first three sections only.

The first three sections are fundamental for all the rest, so the money you spent there will have the most impact.

Another thing that you can do, which was also suggested by several students who have done it, is to use simulators. A good one is 123d.circuits.io. It will not substitute the "real hardware" but it will help you learn without any hardware expense.

A link pointing to the Google Sheet with the list of parts is available in External Resources.

05:11

Please watch this video first!

I provide some advice and instructions on how to make the most out of Arduino Step by Step.

01:33

Need to ask a question? The easiest way to do it is to use the Udemy discussion tool. 

This quick video will show you where to find it and how to use it.

07:44

Before setting up the "hello world" demo app of the electronics world (the blinking LED), let's have a really quick look at the Arduino ecosystem. The members of this ecosystem are the bits and pieces that come together when you build an Arduino project.

The Arduino ecosystem is made up of these parts:

  1. The Arduino board
  2. The Arduino IDE
  3. The Arduino core software library ("Arduino language")
  4. Third party software libraries
  5. Shields
  6. Components

This lecture looks into these parts of the Arduino ecosystem.


Notes

  1. Here is a complete list of current official Arduino boards.
  2. Download the Arduino IDE.
  3. The Arduino language references page.
Arduino ecosystem - quiz
6 questions
07:51

In this lecture I will show you the tools and process involved in prototyping with the Arduino.

I will discuss:

  1. The prototyping process
  2. Multimeters
  3. Solderless Breadboards
  4. Jumper wires
  5. Power supplies

Notes

  • Breadboard power supply from eBay.
  • An Arduino battery pack from eBay.
Tools and prototyping - quiz
3 questions
11:35

In this lecture, I discuss the Light Emitting Diode (LED), and make one blink on and off in our first Arduino sketch. I also discuss the structure of an Arduino sketch, and specifically functions and variables.

Do all diodes emit light? In the start of the video, I mention that "all diodes emit light", not just LEDs. It would have been better to qualify this statement. There is a discussion going on in the Udemy forums about this, which I encourage you to read and participated if you are interested in this topic.I am looking into the literature to better understand the light emission process before I can "safely" revise this video. I hope I am not confusing you too much with this.

LED blinking - quiz
3 questions
05:45

In the previous lecture, we created a simple circuit in which an LED blinks on and off. The Arduino sketch that drove the circuit simply wrote a HIGH or LOW value to the digital output pin 9, and the LED was turn on or off accordingly.

What we want to do in this lecture, is to make the LED not blink but fade on and off. We will be keeping the exact same circuit, and we'll only change the sketch to make this happen.

Parts

* An LED.

* A 220Ohm resistor.

LED fading - quiz
3 questions
Section 2: Sensors
03:03
This is a short introduction to the world of sensors. I enumerate the sensors that I'll be showing you in this section, and then get straight into it!
08:29

In this lecture, you will learn about how to detect and measure light using a photo-resistor. You will also learn about a common technique in electronics, the voltage divider. You will put all this in practice in a simple Arduino circuit.

Parts

* A photoresistor.

Measuring light - Quiz
3 questions
07:09

In this lecture you will learn how to measure temperature and humidity. To do this, we will use a sensor from the DHT family of temperature and humidity sensors. You will also learn about the dielectric property of certain materials, and of how to include an external software library to your Arduino sketch.

Parts

* The DHT22 or DHT11 sensor.

* A resistor.

Temperature and Humidity - Quiz
6 questions
07:11

This lecture discusses barometric pressure and how you can measure it with the BPM085 sensor. You will also learn about the I2C communications interface that this sensor uses to communicate with the Arduino.

PLEASE NOTE: A new sensor, BMP180, has been release as a drop-in replacement of the BPM085. The new device is a drop-in replacement of the old, so you can use the exact same connections schematic and library as described in this lecture. Also, Adafruit has released a new version of the library, compatible with both BPM085 and BPM180 with new useful features; I will be creating a new lecture showing how to use the new library.

Parts

* The BPM085 barometric pressure sensor.

Barometric pressure sensors - quiz
4 questions
09:04

In this lecture, we will connect a passive infrared sensor to our Arduino, calibrate it, and turn an LED on every time motion is detected. We also discuss the different technologies used to detect motion.

Parts

* HC-SR501 passive infrared sensor.

* A resistor.

* An LED.

Infrared motion sensors - Quiz
4 questions
10:11

In this lecture you will learn about how to measure distance using an ultrasonic distance sensor. This is a fairly sophisticated sensor that carries out a quite involved function when it comes to the physics of its implementation, however, as you will see, its application is as simple as it can be. You will also learn how to use a more advanced function of the Arduino language, the pulseIn function, through which you can time external events.

Parts

* HC-SR04 ultrasonic distance sensor.

Ultrasonic distance sensors - Quiz
2 questions
06:37

In this lecture, you will learn how to use a common 3-axis accelerometer, the ADXL335, to accurately measure the acceleration applied to an object. At the end of the lecture, you will be invited to create your first non-trivial circuit using this accelerometer.

Parts

* The ADXL335 sensor.

Detecting acceleration - quiz
2 questions
03:36

In this lecture, we look at the infrared line sensor, a sensor that can detect the reflection of infrared light that it emits of nearby objects. Sensors like this are used in toy robots, for detecting colour, tracking objects, even in measuring pulse in medical equipment.

Parts:

  • The QRE1113 line sensor.
Line sensor - quiz
2 questions
08:54

In this lecture, you will learn how to use a simple sensor that can detect the shock of an impact or being upside down. Even though in an earlier lecture we learned about the accelerometer, a sensor that can give us a lot of details about impact and the forces applied to it from which we can derive information about orientation, sometimes our needs are simple enough no not warrant using something as sophisticated as that. A simple switch that engages depending on its orientation or if something hits it is enough in such cases.

Parts

* A cylindrical tilt and impact sensor.

Tilt and impact sensors - quiz
3 questions
Section 3: Interaction
06:18

Buttons are everywhere!

This lecture will show you how to use a push button. You will assemble a circuit where pressing a button turns on an LED. You will also learn about the different kinds of buttons that you can use in your projects.

Parts

* Mini push button.

* Red LEDs.

* Resistors.

Buttons - quiz
1 question
07:26

In this lecture I'll show you how to use a potentiometer.

I will also explain how potentiometers work, and what Pulse Width Modulation is, avery useful feature in some of Arduino's digital pins (which we have used in an earlier lecture but did not explain).

Parts

* A linear rotary potentiometer. (See external resources for an example).

* An LED.

* A resistor.

Potentiometer - quiz
1 question
04:56

This lecture shows you how to use a flex sensor, a device for which the resistance changes when it is bent.

Parts

* A flex sensor, from Sparkfun (see External Resources for an example).

* A resistor.

Flex sensor - Quiz
2 questions
04:12

This lecture shows you how to use a membrane potentiometer, a device electricaly similar to a regular rotary potentiometer but where instead of rotating a knob in order to change the resistance of the middle pin, you can slide your finger over the sensor's surface.

Parts

* A membrane potentiometer (see example in External Resources).

Membrane potentiometer - quiz
2 questions
05:26

Generating simple tones with this little buzzer is very easy. In this lecture I'll show you how.

Parts

* A passive buzzer (example from eBay in External Resources).

* A potentiometer (example from eBay in External Resources).

Making noise with a buzzer - quiz
1 question
04:06

In this lecture, I will demonstrate how to connect a common 4x4 membrane keypad that contains numbers, letters “A”, “B”, “C”, and “D”, a “*” and a “#”. I will do it in two ways. First, I'll use the keypad library that comes with the Arduino IDE in a sketch that reads the keypad, while the keypad is connected in parallel. In demo 2 I will show you how to hack together a solution that allows a connection that uses a single signal pin.

Parts

See External Resources for links to the components I used to eBay.

Documentation

A link to the Keypad library, used in Demo 1, is available in External Resources.

12:25

This is Part 2 of 5 of the keypad lecture. In this lecture, I will go through the parallel wiring for the keypad. In Part 3 I explain the sketch that works with this hardware configuration.

Parts

See External Resources for links to the components I used to eBay.

Documentation

A link to the Keypad library, used in Demo 1, is available in External Resources.

05:14

This is Part 3 of 5 of the keypad lecture. Here I describe the sketch that works with the parallel wiring of the keypad. This configuration was demonstrated in Part 2.

Parts

See External Resources for links to the components I used to eBay.

Documentation

A link to the Keypad library, used in Demo 1, is available in External Resources.

12:35

This is Part 4 of 5 of the keypad lecture. Here I describe an alternative way to connect the keypad that only uses one signal wire. The single wire configuration concludes in Part 5.

Parts

See External Resources for links to the components I used to eBay.

Documentation

A link to the Keypad library, used in Demo 1, is available in External Resources.

11:32

This is Part 5 of 5 of the keypad lecture. Here I conclude the discussion of the single wire connection configuration.

Parts

See External Resources for links to the components I used to eBay.

Documentation

A link to the Keypad library, used in Demo 1, is available in External Resources.

Hardware button deboucing
Article
17:08

This 3-part lecture looks into the conductive rotary encoder, the most common type of rotary encoders.

In this first part of the lecture, I discuss the various types and principal of operation of this device.

13:36

This 3-part lecture looks into the conductive rotary encoder, the most common type of rotary encoders.

In this second part of the lecture, I demonstrate a minimal circuit involving a rotary encoder that doesn't work very well due to the "bouncing" effect of the encoder's electrical conductive contacts.

10:34

This 3-part lecture looks into the conductive rotary encoder, the most common type of rotary encoders.

In this third part of the lecture, I demonstrate an upgraded circuit where I add debouncing and an improved version of the sketch where I add simple software debouncing. These two additions improve the accuracy of the rotary encoder.

05:42

In this lecture I demonstrate an easy-to-use fingerprint sensor.


This sensor is internally a sophisticated device, that contains a 32-bit microprocessor dedicated to do digital signal processing of fingerprint images.


A library developed by Adafruit makes this sensor very easy to use. Connect it to your Arduino using serial or software serial pins, and you can start enrolling and recognising fingerprints within minutes.


In this first part of the lecture, I discuss the device and its features.


In the second part, I show you how to connect the device to the Arduino and enroll and recognize fingerprints using a couple of the included sketches.


In the third part I show you a small demo application that involves an electric door lock. I use the fingerprint sensor to energise the coil in the door lock and grand or deny access to my lab (when eventually the lock is installed to my door).

10:29

In this lecture I demonstrate an easy-to-use fingerprint sensor.


This sensor is internally a sophisticated device, that contains a 32-bit microprocessor dedicated to do digital signal processing of fingerprint images.


A library developed by Adafruit makes this sensor very easy to use. Connect it to your Arduino using serial or software serial pins, and you can start enrolling and recognising fingerprints within minutes.


In the first part of the lecture, I discuss the device and its features.


In this second part, I show you how to connect the device to the Arduino and enroll and recognise fingerprints using a couple of the included sketches.


In the third part I show you a small demo application that involves an electric door lock. I use the fingerprint sensor to energise the coil in the door lock and grand or deny access to my lab (when eventually the lock is installed to my door).

07:40

In this lecture I demonstrate an easy-to-use fingerprint sensor.


This sensor is internally a sophisticated device, that contains a 32-bit microprocessor dedicated to do digital signal processing of fingerprint images.


A library developed by Adafruit makes this sensor very easy to use. Connect it to your Arduino using serial or software serial pins, and you can start enrolling and recognising fingerprints within minutes.


In the first part of the lecture, I discuss the device and its features.


In the second part, I show you how to connect the device to the Arduino and enroll and recognise fingerprints using a couple of the included sketches.


In this third part I show you a small demo application that involves an electric door lock. I use the fingerprint sensor to energise the coil in the door lock and grand or deny access to my lab (when eventually the lock is installed to my door).

Section 4: Displays
14:35

This 2-part lecture will show you how to connect and use and LCD character screen. In part 1, I'll show you how to wire up the screen and display a message on it. And in part 2, we'll connect a sensor and display its readings to the screen.

Parts

* An LCD screen. See External Resources for an example from eBay. No need for a shield unless you really want to. Also, best NOT to buy an 2x8 screen since those come with their pins arranged in two rows which makes it a big pain to connect to your Arduino. When pins are arranged in two rows, you can't use a breadboard as is, you will need to make an adaptor. Avoid!

* The DHT22 or DHT11 sensor.

* A potentiometer.

06:49

This is part 2 of the lecture on the LCD screen. In this lecture, we expand the project from part 1 by adding a DHT22 sensor and displaying its readings to the screen.

Parts

* An LCD screen. See External Resources for an example from eBay. No need for a shield unless you really want to. Also, best NOT to buy an 2x8 screen since those come with their pins arranged in two rows which makes it a big pain to connect to your Arduino. When pins are arranged in two rows, you can't use a breadboard as is, you will need to make an adaptor. Avoid!

* The DHT22 or DHT11 sensor.

* A potentiometer.

15:40

In the LCD Lecture, you learned how to display text in a LCD screen. Although this was a simple way to show useful information to the user, the sheer number of wires required to make the LCD screen work makes this solution far from elegant.

In this lecture, I will show you a much-improved solution to the same problem, one that involves a single data wire (plus power).

To achieve this reduction in total number of wires we have to switch the type of interface we use to connect the screen to the Arduino. Natively, the screen uses a parallel interface, where each of the 8 bits that make up a character encoding uses up a wire. You may remember that in Lecture 24, use used a 4-bit parallel mode instead of the full 8-bits in order to save 4 wires. Still, even 4 wires are too many for transferring data. We also needed wires for power, and for the screen backlit.

To improve the design, we'll use an adaptor that allows us to connect the parallel LCD screen to the Arduino using the I2C serial bus.

The adapter I'll use in the demos is the 1602LCD Display I2C board.

In this part 1, I'll show you how to connect the LCD adaptor to the screen and to the Arduino, and make sure it works.

In Part 2, I'll show you how to connect a second I2C device to the circuit from Demo 1 (in Part 1 of this lecture). The second device is a real-time clock.

IMPORTANT! If your I2C adaptor uses a different I2C address to mine, you will need to change it in your sketch. If you don't know what your adaptor's address is, you can find it by running an I2C scanner sketch on your Arduino with the adaptor connected. The address for the I2C scanner sketch is in the External Resources.

Parts

* An Arduino Uno

* A 16x2 LCD screen (see External Resources for an example).

* A 1602LCD Display I2C board (see External Resources for an example).

* A few jumper wires, including one 4-pin jumper (Dupont) cable for the adapter (see External Resources for an example).

07:41

In the LCD Lecture, you learned how to display text in a LCD screen. Although this was a simple way to show useful information to the user, the sheer number of wires required to make the LCD screen work makes this solution far from elegant.

In this lecture, I will show you a much improved solution to the same problem, one that involves a single data wire (plus power).

To achieve this reduction in total number of wires we have to switch the type of interface we use to connect the screen to the Arduino. Natively, the screen uses a parallel interface, where each of the 8 bits that make up a character encoding uses up a wire. You may remember that in Lecture 24, use used a 4-bit parallel mode instead of the full 8-bits in order to save 4 wires. Still, even 4 wires are too many for transferring data. We also needed wires for power, and for the screen back lit.

To improve the design, we'll use an adapter that allows us to connect the parallel LCD screen to the Arduino using the I2C serial bus.

The adaptor I'll use in the demos is the 1602LCD Display I2C board.

In this Part 2, I'll show you how to connect a second I2C device to the circuit from Demo 1 (in Part 1 of this lecture). The second device is a real-time clock.

IMPORTANT! If your I2C adaptor uses a different I2C address to mine, you will need to change it in your sketch. If you don't know what your adaptor's address is, you can find it by running an I2C scanner sketch on your Arduino with the adaptor connected. The address for the I2C scanner sketch is in the External Resources.

Parts

* An Arduino Uno

* A 16x2 LCD screen (see External Resources for an example).

* A 1602LCD Display I2C board (see External Resources for an example).

* A few jumper wires, including one 4-pin jumper (Dupont) cable for the adapter (see External Resources for an example).

Article

This is a mini project to test your skill and knowledge. Bragging rights are awarded on succesful completion!

Exercises for the LCD with I2C lectures
4 questions
16:42

In this lecture, I show you have to add a TFT LCD screen to your Arduino project in order to produce colourful text and shapes. The lecture contains two demos in which I demonstrate one of the common TFT LCD shields. In the first one, I show you how to use the screen itself, while in the second how to use the 5-button joystick that is integrated into the screen shield.

Parts

* Apart from the Arduino Uno or compatible, you will need a TFT LCD screen. The one I used, is this.

Documentation

The documentation for the screen I use in this lecture is here.

Quiz for the LCD TFT lecture
1 question
11:31

In this lecture, you will learn how to use a seven segment display using only three wires: one for data, one for clock, and one for the latch. Because there are so many SSD out there, I will assume that you don't have your particular display's datasheet and have no idea which pin controls the pins. I will describe the process of figuring out the correct wiring and then constructing the numerical symbols in the sketch.

Please consider watching the Lectures on Shift Registers if you are not familiar with this component as it is central to driving the seven-segment display. The lectures on shift registers is in the section titled "Integrated Circuits Peripherals".

In part one, I show you how to assemble the circuit. In part two, I discuss the sketch.

Parts:

* Arduino Uno

* A common anode seven segment LED display

* A 9-volt battery or battery pack, or an external power supply that can provide 9 to 15V power.

* A 595 shift register

* A 1.5V coin battery

* A 5mm LED

* Lot's of jumper wires

* A mini breadboard

* A 220 Ohm resistor (or better, one 220 Ohm resistor for each LED on the display)

A list of all parts is available on Google Drive.

14:31

In this lecture, we will build on our knowledge from Lecture 60, where you learned how to use a shift register in order to control multiple LEDs using only three wires: one for data, one for clock, and one for the latch. Because there are so many SSD out there, I will assume that you don't have your particular display's datasheet and have no idea which pin controls the pins. I will describe the process of figuring out the correct wiring and then constructing the numerical symbols in the sketch.

Please consider watching the Lectures on Shift Registers if you are not familiar with this component as it is central to driving the seven-segment display. The lectures on shift registers is in the section titled "Integrated Circuits Peripherals"

In part one, I show you how to assemble the circuit. In part two, I discuss the sketch.

Parts

* Arduino Uno

* A common anode seven segment LED display

* A 9-volt battery or battery pack, or an external power supply that can provide 9 to 15V power.

* A 595 shift register

* A 1.5V coin battery

* A 5mm LED

* Lot's of jumper wires

* A mini breadboard

* A 220 Ohm resistor (or better, one 220 Ohm resistor for each LED on the display)

A list of all parts is available on Google Drive.

23:05

In this lecture, I will show you how to use the MAX7219 LED controller IC with a single 8x8 matrix LED display. You can combine these two components together to create large LED matrix displays, but in this lecture we'll keep it simple. In the following lecture, we'll expand to multi-display setups.

06:24
In this lecture, I will show you how to use the MAX7219 LED controller IC with four 8x8 matrix LED display.

In the previous lecture, I showed you how to setup a single 8x8 matrix LED display with the MAX7219 LED controller IC and explained some of the considerations of this controller.

06:58

In this Part 2 of the MAX7219 lecture, we'll create a simple visualisation from data coming out of an accelerometer.

The sketch is available on Github.

Section 5: Motors
17:32

In this lecture I will show you how to use a DC motor through a series of demos. All involve two geared DC motors (why use just one when we can use two?) and a motor break-out circuit. I'll explain what these are in a minute. Here's what we are going to build in this lecture:

  • First, we'll just hook the motors to the Arduino via the motor break-out board, and make them spin in a single direction. This is part 1 of 3.
  • Second, we'll get the motors spinning forwards and backwards using a potentiometer as a controller. This is part 2 of 3.
  • Third, we'll use an ultrasonic sensor to get the motors to spin faster or slower depending on the distance between the sensor and an object in front of it. This is part 3 of 3.

Because this lecture turned out to be fairly large, I have broken it into three parts.

Parts

* A DC motor, perhaps from an old toy.

* A motor controller board containing the L298N IC.

* A battery powerpack (preferred) or external power supply that can provide 10V-18V.

* A potentiometer.

07:52

This is Part 2 of the lecture on the direct current motor. In this part, you will learn about how to control the speed and direction of rotation of a motor using a potentiometer.

Parts

* A DC motor, perhaps from an old toy.

* A motor controller board containing the L298N IC.

* A battery powerpack (preferred) or external power supply that can provide 10V-18V.

* A potentiometer.

12:00

This is Part 3 of the lecture on the direct current motor. In this part, you will learn about how to control the speed and direction of rotation of a motor using an ultrasonic distance sensor. After that, you could go ahead and design your fist autonomous driving vehicle.

Exercises for the Direct Current motor lectures
2 questions
15:18

In this Lecture, we will learn about how to use a servo motor. We will use both the build-in servo motor library that comes standard with the Arduino IDE, and a third party library that adds a bunch of very useful features.

Parts

* Servos. Most of these will work just fine. Price depends on the rated torque, materials used (plastic the least expensive), and bundled accessories.

* Capacitors.

* Potentiometer

11:52

This is part 2 of the lecture on the servo motor in which I show you how to use a third party library that adds a bunch of very useful features on top of what is available through the build-in servo library.

Parts

* Servos. Most of these will work just fine. Price depends on the rated torque, materials used (plastic the least expensive), and bundled accessories.

* Capacitors.

* Potentiometer

Exercises for the servo motor lectures
1 question
Article

Here's a mini project to stretch your understanding of servo motors and LCD screens!

07:32

This lecture will introduce you to stepper motors.

In Part 1, I discuss the basics of stepper motors and their most typical configurations.

All demo sketches are available on Github (see External Resources below for a link).

Parts

* 12V DC 48 Step motor (see External Resources below for a link)

* L298N motor controller (see External Resources below for a link)

Notes

* Small stepper motors (see External Resources below for a link)

* About DC motors (see External Resources below for a link)

* A presentation on stepper motors (see External Resources below for a link)

* Stepper motors on Wikipedia (see External Resources below for a link)

11:39

This lecture will introduce you to stepper motors.

In Part 2, I show you how to wire up and use a unipolar un-geared motor.

All demo sketches are available on Github (see External Resources below for a link).

Parts

* 12V DC 48 Step motor (see External Resources below for a link)

* L298N motor controller (see External Resources below for a link)

Notes

* Small stepper motors (see External Resources below for a link)

* About DC motors (see External Resources below for a link)

* A presentation on stepper motors (see External Resources below for a link)

* Stepper motors on Wikipedia (see External Resources below for a link)

06:17

This lecture will introduce you to stepper motors.

In Part 3, I show you how to control the speed of an un-geared using a potentiometer.

All demo sketches are available on Github (see External Resources below for a link).

Parts

* 12V DC 48 Step motor (see External Resources below for a link)

* L298N motor controller (see External Resources below for a link)

* a 10KOhm potentiometer

Notes

* Small stepper motors (see External Resources below for a link)

* About DC motors (see External Resources below for a link)

* A presentation on stepper motors (see External Resources below for a link)

* Stepper motors on Wikipedia (see External Resources below for a link)

05:05

This lecture will introduce you to stepper motors.

In Part 4, I show how to connect a unipolar geared motor.

All demo sketches are available on Github (see External Resources below for a link).

Parts

* 12V DC 48 Step motor (see External Resources below for a link)

* L298N motor controller (see External Resources below for a link)

Notes

* Small stepper motors (see External Resources below for a link)

* About DC motors (see External Resources below for a link)

* A presentation on stepper motors (see External Resources below for a link)

* Stepper motors on Wikipedia (see External Resources below for a link)

07:49

This lecture will introduce you to stepper motors.

In Part 5, I show how to connect a unipolar geared motor and control it using the AccellStep library.

All demo sketches are available on Github (see External Resources below for a link).

Parts

* 12V DC 48 Step motor (see External Resources below for a link)

* L298N motor controller (see External Resources below for a link)

Notes

* Small stepper motors (see External Resources below for a link)

* About DC motors (see External Resources below for a link)

* A presentation on stepper motors (see External Resources below for a link)

* Stepper motors on Wikipedia (see External Resources below for a link)

18:29

In this lecture I show you how to control a NEMA17 stepper motor with the popular EasyDriver breakout board.

The demo sketches are available from the Arduino SbS Github repository (link is in External Resources below).

Section 6: Ethernet and Internet communications
24:08

In this 2-part lecture I will show you how to get your Arduino gadget to speak to the Internet! In part 1, I will show you how to connect your Ethernet shield, and how to make your Arduino part of your local network. Specifically, I will show you how to connect to the network by automatically acquiring an IP address via DHCP, or how to acquire an IP address manually.

In the 2nd part, I will show you how to turn on and off an LED, and to read light intensity through a Telnet connection to your Arduino from your computer.

IMPORTANT:

In this lecture, I use the original Arduino Ethernet shield that is based on the w5100 chip. Ethernet shields with the w5200 chip are more common these days. To use a w5200-based shield, you will need to download the Ethernet_V2 library and use it instead of the one I use in the lecture. I link to Seedstudio which contains this library is available in the external resources.

Parts

* Arduino Uno

* Arduino Ethernet shield.

14:17

In this 2-part lecture I will show you how to get your Arduino gadget to speak to the Internet!

In part 1, I will showed you how to connect your Ethernet shield, and how to make your Arduino part of your local network. Specifically, I will show you how to connect to the network by automatically acquiring an IP address via DHCP, or how to acquire an IP address manually.

In this 2nd part, I will show you how to turn on and off an LED, and to read light intensity through a Telnet connection to your Arduino from your computer.

IMPORTANT:

In this lecture, I use the original Arduino Ethernet shield that is based on the w5100 chip. Ethernet shields with the w5200 chip are more common these days. To use a w5200-based shield, you will need to download the Ethernet_V2 library and use it instead of the one I use in the lecture. I link to Seedstudio which contains this library is available in the external resources.

Parts

* Arduino Uno

* Arduino Ethernet shield.

* An LED

* A 1kΩ resistor

Student code

Check out Ed Cassel's sketch. Some students have mentioned that the sketch in my demo results in the Arduino not always being able to recognise a command. Ed's sketch addresses this. The link is in the list of resources below.

Ethernet shield - Quiz
2 questions
05:04

In this lecture, we'll look into the scenario of using a web server running on the Arduino that reports values from its sensors.

In part 1 (of 3), I discuss the basic principals of running a web server on the Arduino.

In part 2, we will examine the web server example that comes with the Arduino IDE.

In part 3, we look at a custom web server that reports temperature, humidity, and light intensity.

Parts

To complete the experiments in all three parts of this lecture, you will need:

* An Arduino

* An Arduino Ethernet shield

* A DHT11 or 22 sensor

* A photo-resistor

* A 10KΩ resistor

Sketches

The sketches shown in this lecture are available on Github. Please look at External Resources for a link.

19:39

This is Part 2 (of 3) of the reporting web server lecture.

In this lecture, we look into the scenario of using a web server running on the Arduino that reports values from its sensors.

In part 1 (of 3), I discuss the basic principals of running a web server on the Arduino.

In part 2, we will examine the web server example that comes with the Arduino IDE.

In part 3, we look at a custom web server that reports temperature, humidity, and light intensity.

Parts

To complete the experiments in all three parts of this lecture, you will need:

* An Arduino

* An Arduino Ethernet shield

* A DHT11 or 22 sensor

* A photo-resistor

* A 10KΩ resistor

Sketches

The sketches shown in this lecture are available on Github. Please look at External Resources for a link.

10:33

This is Part 3 (of 3) of the reporting web server lecture.

In this lecture, we look into the scenario of using a web server running on the Arduino that reports values from its sensors.

In part 1 (of 3), I discuss the basic principals of running a web server on the Arduino.

In part 2, we will examine the web server example that comes with the Arduino IDE.

In part 3, we look at a custom web server that reports temperature, humidity, and light intensity.

----------------

Please note: In the schematic I used for this lecture, I have not included a pull-up resistor of 10KOhms between the data pin (#2) and the Vcc pin (#1) of the DHT22 sensor. Please remember to include this resistor in your circuit!

----------------

Parts

To complete the experiments in all three parts of this lecture, you will need:

* An Arduino

* An Arduino Ethernet shield

* A DHT11 or 22 sensor

* A photo-resistor

* A 10KΩ resistor

Sketches

The sketches shown in this lecture are available on Github. Please look at External Resources for a link.

Simple reporting server - Quiz
1 question
25:29

In this lecture, I will show you how to setup a web server on the Arduino that allows you to control LEDs via a web browser. You could replace the LEDs for other devices, like motors, without having to introduce significant changes to the sketch we’ll see here. We will do this in the next lecture (Lecture 39).

Just like in lecture 35, we first look at the HTTP request parsing issues that we will need to deal with before implementing the controlling web server sketch. Because the web browser will be sending information with instructions to the Arduino, the Arduino’s web server HTTP parser will have a lot more work to do.

Parts

* An Arduino

* An Arduino Ethernet shield

* One red LED

* One yellow LED

* Two 10KΩ resistors

* Four jumper wires

Controlling web server - Quiz
3 questions
16:40

In this lecture, I’ll show you how to send HTTP GET requests that contain values other than 1s and 0s as we did in the previous Lectures. To do that I will demonstrate how you can control a DC motor through your web browser. Motor control requires sending direction and speed values to the Arduino from your web browser, and this adds realism to our controlling web server.

Parts

* An Arduino

* An Arduino Ethernet shield

* One or two DC motors

* An L298N motor control bridge

* A battery pack with 4 x 1.5V AA bateries or a 18V-9V power supply

* A bunch of jumper wires

Web motor control - Quiz
2 questions
08:58

In this lecture I show you how to use a cloud logging service, Nimbits, to record your Arduino's sensor data. Nimbits is one of several such services, but I prefer it to others because it is fully open-source software, which means that you can even setup your own logging server with Nimbits.

In part 1 of this lecture, I will talk a bit about logging services and show you how to setup your Nimbits account.

In part 2, I will walk through the logging sketch and post photo-resistor values to Nimbits.

IMPORTANT PLEASE READ BEFORE WATCHING THIS LECTURE:

Updated 27 March 2016: It appears that Nimbits is no operating at the moment. There is a discussion thread about this that you can follow (https://groups.google.com/forum/#!forum/nimbits). I will add and update here once the site is back up. 

Remember that you can also setup your own instance on Nimbits if you prefer.

Nimbits has released a new version of their API which has rendered part of this lecture out of date.

I have updated the sketch on Github so that it works with the latest changes in Nimbits.

Please read the notes in the root of the folder on Github, there's a couple of things worth knowing about the changes. The code is still fairly simple. (The link to the sketch on Github is below)

Any problems, please let me know. I'll be updating the video as soon as possible.


Parts

* An Arduino

* An Arduino Ethernet shield

18:48

In this lecture I show you how to use a cloud logging service, Nimbits, to record your Arduino's sensor data. Nimbits is one of several such services, but I prefer it to others because it is fully open-source software, which means that you can even setup your own logging server with Nimbits.

In part 1 of this lecture, I will talk a bit about logging services and show you how to setup your Nimbits account.

In part 2, I will walk through the logging sketch and post photo-resistor values to Nimbits.

IMPORTANT PLEASE READ BEFORE WATCHING THIS LECTURE:

Updated 27 March 2016: It appears that Nimbits is no operating at the moment. There is a discussion thread about this that you can follow (https://groups.google.com/forum/#!forum/nimbits). I will add and update here once the site is back up. 

Remember that you can also setup your own instance on Nimbits if you prefer.

Nimbits has released a new version of their API which has rendered part of this lecture out of date.

I have updated the sketch on Github so that it works with the latest changes in Nimbits.

Please read the notes in the root of the folder on Github, there's a couple of things worth knowing about the changes. The code is still fairly simple. (The link to the sketch on Github is below)

Any problems, please let me know. I'll be updating the video as soon as possible.

Parts

* An Arduino

* An Arduino Ethernet shield

16:33

In this lecture I will show you how to post your Arduino sensor data to Twitter using the arduinoTweet proxy server and library. You can setup your own instance of this proxy on your own server (you can use a free virtual server on Google's App Engine cloud service) so that you can control privacy and access, or use public instances like arduino-tweet.appspot.com or my own asbs-twitter.appspot.com.

In this lecture, I'll show you how to set up your tweeting Arduino using asbs-twitter.appspot.com as the proxy. In the first demo, you will learn about getting the first tweet out there, and in the second, to post sensor data.

Parts

* An Arduino Uno

* An Arduino Ethernet shield

* An analog sensor, which ever you have handy.

Logging to Twitter - Quiz
1 question

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Peter is Chief Explorer at Tech Explorations. He is fascinated by technology because of its ability to make amazing things happen, and science because of its ability to make nature transparent.

He is an Electrical and Computer Engineer, has a PhD (most of which was spent reading philosophy of knowledge) and a couple of Masters in Information Systems.

He has been a lecturer for over 13 years in a variety of IT (and occasionally management) subjects. During this time, he has developed a hands-on teaching style, whereby he invites and challenges his students to learn by doing. He has taught thousands of students in dozens of undergraduate and postgraduate courses.

Peter is also a software developer at Futureshock Enterprises, making applications using Ruby, Ruby on Rails, and iOS.

Peter has been an electronics enthusiast since he remembers himself when he wrecked his sister's digital watch and his parents VCR. He replaced the watch but managed to fix the VCR.

Now, he is particularly fascinated by the rapid prototyping opportunities that the Arduino and similar platforms has brought about.

He lives in Sydney, Australia.

Ready to start learning?
Take This Course