Arduino Tutorials

This is the start page for our series of over fifty Arduino tutorials. Each tutorial from chapter zero to thirteen will cover a variety of topics and lessons, then from chapter fourteen each chapter will cover a particular topic.

If you are looking to learn about the world of Arduino – this is a great place for beginners to start, or for more experienced users to brush up on their knowledge. Scroll down to read the contents of each chapter. New tutorials, lessons and other articles of interest are announced via twitterGoogle+, RSS feed and by email – to keep up, subscribe using the form in the column to the right.

If you’d rather have a great book on Arduino – check out my new book “Arduino Workshop” from No Starch Press. 

But what is it? From their web page:

Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.

Arduino can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators. The microcontroller on the board is programmed using the Arduino programming language (based on Wiring) and the Arduino development environment (based on Processing). Arduino projects can be stand-alone or they can communicate with software on running on a computer (e.g. Flash, Processing,MaxMSP).

The boards can be built by hand or purchased preassembled; the software can be downloaded for free. The hardware reference designs (CAD files) are available under an open-source license, you are free to adapt them to your needs.

Arduino received an Honorary Mention in the Digital Communities section of the 2006 Ars Electronica Prix. The Arduino team is: Massimo Banzi, David Cuartielles, Tom Igoe,Gianluca Martino, and David Mellis.

Arduino Uno

If you are shopping for your first Arduino board, please don’t use an Arduino Leonardo – the pinouts vary and for some chapters of this tutorial the board will not work and is not supported here. There isn’t anything wrong with the Leonardo, it just isn’t fully backwards compatible with Uno boards.

Over semi-regular intervals you will find a new instalment of my tutorials. If you have not used the system before, please start with Chapter Zero! In the first few chapters of the tutorials we refer to the book “Getting Started with Arduino” by Massimo Banzi.

Technical support for the tutorials is available by asking a question in the Tronixstuff forum. After a few weeks I would hope that you have enough building blocks of knowledge to be able to bring your ideas to life!

Update – 04/02/2014: I have written these tutorials in a period spanning over three years. During this time several versions of the Arduino IDE have been published. I am endeavoring to update the tutorials so that they work with the latest Arduino v1.0.6 (or newer) IDE. In the meanwhile, you can run both v23 (old) and v1.0.1 (and more) on the same machine. Any tutorial noted as updated on 24/11/2012 or later works with the new IDE. Dates are in day-month-year format. Any questions – contact us.

So without further ado, beginners start at chapter zero – or choose your topic of interest:

Chapter Zero updated 24/11/2012

  • Introduction to the Arduino system
  • Basic digital outputs
  • Lots of blinking LEDs!

Chapter One  updated 24/11/2012

  • learn about electricity
  • the for loop
  • random numbers
  • pulse-width modulation
  • fun with RGB LEDs
  • reading analogue inputs
  • building a voltmeter

Chapter Two

  • sensing temperature with the Analog Devices TMP36
  • sending data back to the host PC with the serial outputs
  • libraries
  • building a digital thermometer
  • LCD modules-  please see chapter 24

Chapter Three – updated 09/01/2013

  • controlling relays to switch heavy current loads
  • creating your own functions
  • interrupts
  • having lots of fun with servos
  • building an analogue electronic thermometer

Chapter Four

  • learning about binary numbers
  • getting more output pins using the 74HC595 shift register
  • making noises with buzzers and sounds with speakers
  • understanding arrays
  • building a temperature data logger

Chapter Five

  • Controlling more than one 74HC595 shift register
  • Using 7-segment LED displays
  • build a binary quiz game – testing your ability to convert binary to base-10

Chapter Six

  • Using 4-digit 7-segment LED display modules with shift registers
  • Examining the Sharp infra-red distance sensor
  • Making our first protoshield
  • build a device to display values from an analogue sensor

Chapter Six (addendum)

  • more about using 4-digit 7-segment LED display modules

Chapter Seven

  • Hexadecimal numbers
  • Binary-coded decimal numbers
  • the switch…case function
  • introduction to the I2C bus (“two wire interface”)
  • Using the Maxim DS1307 real time clock IC
  • make our own digital clocks!

Chapter Eight

  • Some more timing with the Maxim DS1307
  • receive user input via the serial monitor box
  • control physical movement with the serial input data
  • make our own analogue clock!

Chapter Nine

  • Blink more LEDs with an 8×8 LED matrix display module
  • Spend some time considering user interfaces with our projects
  • create a function to use a potentiometer to return a number in a desired range of numbers (0~x)
  • implement a user-interface on the digital clock from Chapter Seven
  • build our own digital alarm clock!

Chapter Ten

  • Creating a minimal Arduino board using a bootrom
  • Using Arduino to control a relay with an on/off timer
  • build our own dual timer control system with various timing options

Chapter Eleven

  • Start using wireless data link modules
  • Control digital pins remotely using wireless
  • Investigate rotary encoders

Chapter Twelve

  • More about rotary encoders
  • Using common-anode LED display modules
  • Create a button board
  • Start the series of making a prototype into a product

Chapter Thirteen

  • examine piezoelectric buzzers
  • continue with our alarm clock, adding a snooze function
  • using wireless radio modules to create some remote control systems and sending various data over the airwaves.

Chapter Fourteen – updated 02/03/2013

  • A detailed yet simple introduction to using the XBee wireless data transceivers with Arduino projects

Chapter Fifteen – updated 19/11/2013

  • A beginner’s guide to RFID with Arduino and RDM630 – Build RFID tag/card readers, RFID control systems, and an RFID data logger with time, date and so on

Chapter Sixteen – updated 06/12/2013

  • Getting started with using Ethernet and Arduino

Chapter Seventeen – updated 14/01/2014

  • Getting started with using EM406A GPS receivers and Arduino

Chapter Eighteen  – 

  • awaiting update

Chapter Nineteen – updated 15/01/2014

Chapter Twenty updated 28/11/2014

  • Arduino and the I2C bus. We learn the basics of reading and writing data to various I2C devices, in preparation for future tutorials.

Chapter Twenty-one – updated 28/11/2014

  • More on Arduino and the I2C bus, including I/O expanders and EEPROM use

Chapter Twenty-two – updated 12/12/2013

  • Arduino and the AREF pin

Chapter Twenty-three – updated 19/01/2013

  • Arduino and the touch-screen

Chapter Twenty-four

  • Arduino and monochrome LCDs (both character and graphical)

Chapter Twenty-five – updated 14/03/2013

  • Using analog input to read multiple buttons

Chapter Twenty-six – updated 15/01/20014

  • Arduino and GSM cellular – using SM5100B and Arduino Uno

Chapter Twenty-seven – updated 18/01/2014

  • Arduino and GSM cellular – using SM5100B and Arduino Mega

Chapter Twenty-eight – updated 03/02/2014

  • Arduino and a colour LCD shield

Chapter Twenty-nine – 

  • Arduino and a TFT LCD screen (coming soon…)

Chapter Thirty – updated 16/04/2014

  • Arduino and twitter.

Chapter Thirty-one – updated 09/01/2013

  • Arduino’s inbuilt EEPROM

Chapter Thirty-two – updated 10/07/2013

  • Arduino and infra-red remote control

Chapter Thirty-three – updated 02/03/2013

  • Control AC power outlets via SMS
Chapter Thirty-four – updated 10/01/2013
  • Arduino and the SPI bus (part one)
Chapter Thirty-five – updated 10/01/2013
  • Arduino and video out
Chapter Thirty-six – updated 10/01/2013
  • Arduino and the SPI bus (part two)
Chapter Thirty-seven – updated 19/01/2013
  • Timing applications with millis()
Chapter Thirty-eight – updated 05/02/2013
  • Thermal printer!
Chapter Thirty-nine – updated 11/06/2013
  • How to use the NXP SAA1064 4-digit LED display driver IC with our Arduino systems
Chapter Forty – updated 19/01/2013
Chapter Forty-One – updated 04/12/2014
  • Using one Microchip MCP023017 to add 16 digital I/O ports to your Arduino
Chapter Forty-Two  – updated 16/12/13
  • Arduino and Numeric Keypads
Chapter Forty-three – updated 19/01/13
  • I/O Port Manipulation
Chapter Forty-four – updated 07/10/2014
  • Using an ATtiny45/85 with Arduino software
Chapter Forty-five – updated 05/02/2013
  • Parallax Ping))) Ultrasonic Sensor
Chapter Forty-six – updated 19/01/2013
  • Using an analog input pin to read four buttons

Chapter Forty-seven – updated 24/11/2012

  • Internet-controlled relays
Chapter Forty-eightupdated 31/01/2013
  • Arduino and the MSGEQ7 Spectrum Analyzer
Chapter Forty-nine – updated 11/03/2013
  • Arduino and KTM-S1201 LCD modules

Chapter Fifty – updated 26/04/2013

  • Arduino and ILI9325 colour TFT LCD modules

Chapter Fifty-one  – updated 12/05/2013

  • using MC14489 LED display driver ICs
 Chapter Fifty-two – updated 17/06/2013
  • add analogue-to-digital and digital-to-analogue to your Arduino with the NXP PCF8591
 Chapter Fifty-three – updated 02/07/2013
  • learn how to use the Texas Instruments ADS1110 16-bit analogue-to-digtal converter
Chapter Fifty-four – updated 20/08/2013
Chapter Fifty-five – updated 14/02/2014
  • First chapter in using popular /nd inexpensive SIM900 GSM shields with Arduino

Chapter Fifty-six – updated 11/10/2013

  • Using the MAX7219 LED driver IC to control LED matrix modules and numeric LED displays

Chapter Fifty-seven – updated 21/10/2013

  • Controlling LEDs and servos with the TI TLC5940 16-channel LED driver IC

Chapter Fifty-eight – updated 24/09/2014

  • Using PCF8574 serial LCD backpacks

Chapter Fifty-nineupdated 25/11/2014

  • Controlling DC motors and stepper motors with the L298N H-bridge module

Chapter Sixty – updated 01/12/2014

  • Using DS1307 and DS3231 real-time clock modules with Arduino

Chapter Sixty-one

Subscribe to keep up to date – see top-right of this page.

All the original material in these tutorials, unless noted otherwise, is published under a Creative Commons Attribution-Non Commercial-Share Alike v3.0 license. If you would like to use the work in other situations, please email me at john (at) tronixstuff dot com. Feedback, comments, and constructive criticism is always welcome – don’t be shy!

Subscribe via email

Receive notifications of new posts by email.

The Arduino Book

Arduino Workshop

Für unsere deutschen Freunde

Dla naszych polskich przyjaciół ...

Australian Electronics!

Buy and support Silicon Chip - Australia's only Electronics Magazine.

Use of our content…

%d bloggers like this: