
Advance your arduino skills with advanced environment motion position and gpa sensors, new input methods like keypads and potentiometers, and color touch screens with bluetooth and data storage.
Assume you have solid Arduino basics—inputs, outputs, pullups, breadboard, libraries, and debugging skills—and a growth mindset, with hard work ahead for serious learning.
Each lecture in this course contains several resources:
1. Videos
2. Sketches
3. Schematics
4. External resources
From time to time, I update them in order to correct errors and improve the quality of the course.
In this video, I will demonstrate how to find and access these resources quickly and get to the learning part without frustration!
This course features a large number of components and tools, and a few software applications.
The downloadable PDF file that you can download from this lecture contains an exhaustive list, broken down by section.
You do not need to have all of the parts before starting the course! This is actually not a good idea! Instead, ensure that you have the basic tools, parts and software that are listed at the top of the first page of the list. Then, only acquire the parts needed for the particular sections that you actually want to complete.
You have life-time access to this course, so do not feel in a hurry to do everything immediately! Take your time, enjoy learning, and get into each section in depth.
Plan which lectures you will complete next month and buy only the parts you need for those sections; evaluate eBay, Alibaba, SparkFun, and local stores to save money and time.
Learn how to ask good questions for Arduino projects by providing context, goals, and error details. Avoid vague inquiries and follow a structured, proactive approach.
Learn how to report errors using the error report form, including essential details to fix broken links, missing sketches, or outdated course materials.
Explore the Arduino Uno R4 Wi-Fi eight by twelve red LED matrix. Learn to display icons, scrolling text, and real-time sensor readings, and design graphics with the web editor.
Explore displaying a triangle on the Arduino Uno R4 Wi‑Fi LED matrix using frames, compare binary frame and memory‑efficient 32‑bit approaches, and preview the LED matrix editor.
Use the led matrix editor to draw shapes, generate code, and replace array values for your Arduino led matrix. Create animations by adding frames, and explore the built-in frame gallery.
Explore how to use built-in frames in the Arduino IDE documentation, load frames in a loop, display them with optional clear and delay, and reuse frames for conditional output.
Create custom animations for an LED matrix by designing frame sequences, exporting the arrow frames, loading them via load sequence, and controlling playback with the play function.
Learn to display text on the Arduino Uno R4 Wi-Fi LED matrix using the Arduino graphics library and library manager, exploring font options and text scrolling.
Learn how the Arduino Uno R4 WiFi uses the ESP32-S3 coprocessor to connect to networks and enable Arduino Cloud integration, with LEDs and web server examples.
List Wi-Fi networks on the Arduino Uno R4 Wi‑Fi using the Wi‑Fi S3 library, noting SSIDs, signal strength, and encryption types, with reference to the Wi‑Fi Nina documentation.
Learn to connect an Arduino using the Wi-Fi S3 library to a local network, fetch a url over https on port 443, and print the response to the serial monitor.
Control the built-in LED on pin 13 of the Arduino Uno R4 via a remote CSV file, fetched from an Amazon S3 bucket and parsed to toggle the LED.
Control an LED matrix via a simple web server on the Arduino Uno R4 Wi‑Fi, using a Get request to switch between frames and parse the query.
Learn how the Arduino Uno R4 Wi‑Fi’s built-in real time clock works, its battery backup limitations, and how to sync via internet time servers with the NTP client library.
Learn to use the eeprom memory in the Arduino Uno r4 wifi, including eight kilobytes and addressing ten, with read and write and the update function to prevent wear.
This is lecture 490a.
This is lecture 490b.
This is lecture 490c.
This is lecture 490d.
Discover how the MPU6050 combines a 3-axis accelerometer and a 3-axis gyroscope into one chip to detect motion, acceleration, and orientation with reduced noise.
Explore the mpu6050 datasheet, highlighting the integrated 6-axis motion sensor with gyroscope and accelerometer, the digital motion processor, i2c interface, three 16-bit adc converters, and programmable full-scale ranges.
Wire the MPU6050 to an Arduino using I2C, select the address with A0, and enable the interrupt on pin 8 to efficiently receive sensor updates.
Explore installing the i squit see library for the mpu6050, loading the dmp sketch, and viewing six degrees of freedom data from accelerometer and gyroscope via the serial monitor.
Demonstrate streaming MPU6050 accelerometer and gyroscope data from an Arduino to a Processing sketch, then visualize it in real time via serial port and libraries.
Explore how a gyroscope maintains orientation through conservation of angular momentum with a fast spinning disc and low-friction bearings, and how accelerometers measure 3-axis displacement.
Explore the HMC5883 compass magnetometer to sense magnetic fields with a three-axis, low-noise sensor, learn i2c wiring, fixed seven-bit address, and a 160 Hz refresh for compass readings.
Learn to wire the HMC5883 magnetometer: provide VCC (5V or 3.3V), ground, and I2C lines with clock and data (SCL and SDA) on the breakout.
Install libraries via the Arduino library manager and run the HMC5883 sketch. Read x, y, z magnetic values in microteslas and compute a heading corrected by declination.
Demonstrates using the HMC5883 magnetometer on a breadboard with a sketch, verified by serial monitor readings and a unique id, showing heading and north alignment under interference.
Demonstrate how a flex sensor changes resistance with bending and how to wire it in a voltage divider to measure relative bend, suitable for vr gloves and industrial controls.
Demonstrates wiring a flex sensor in a voltage divider with a fixed resistor to 5v and ground, reading the junction on an analog pin to light an LED at threshold.
Explore a practical Arduino flex sensor sketch that reads analog pin 0, prints to serial, uses a threshold to drive an output and show a 90-degree LCD reading, values ~550–850.
Explore how a membrane potentiometer, with adhesive tape, acts as a touch interface by changing resistance as you press, while the middle pin reads voltage with ground and 5 volts.
Demonstrates using a membrane potentiometer with an Arduino, wiring the middle pin to input, and reading analog values from pin 0 to show 0–1023 as pressure varies.
Explore how to use a rotary encoder, its quadrature signals and integrated button, and compare with potentiometers; learn about bouncing, wiring, and reading clean signals in sketches.
Learn how to wire a rotary encoder and read quadrature signals using an encoder library, with interrupt versus non-interrupt pins, to track and reset the encoder position.
Compare no-interrupt and interrupt-enabled rotary encoder sketches on Arduino. Use pins 5 and 6 versus 2 and 3, and note how delays affect readings.
Explore two keypad types for a four-by-four matrix, map wires to rows and columns, and read key presses with a sketch to display the value on the screen.
Learn to map keypad pins by identifying rows and columns on a four by four keypad and a three by four phone keypad using a multimeter, breadboard, and jumper wires.
Connect a flexible keypad to an arduino with a parallel wiring method, map rows and columns to specific pins, then display pressed keys on a 16x2 lcd.
Wire a four by three phone keypad to a breadboard, map its rows and columns to Arduino pins, and display pressed keys on an LCD using the keypad library.
Read a 4x4 keypad with a single analog pin on an Arduino using a resistor network to assign each button a distinct voltage, with debouncing.
wire a keypad to a breadboard with three 4.7k pull-down resistors and a 0.1 μf decoupling capacitor on pin 5 via ribbon cable, supply 5v and ground to the screen.
Install and load a keypad library from a zip for the Arduino sketch, run examples, map keys, and print pressed values on an LCD, noting ghosting and decoding options.
Connect a four-by-four keypad to a 16-key encoder to decode keys and reduce ghosting with debounce capacitors; use the data available interrupt (pin 12) and output pins 14-17.
Connect keypad to a 74922 decoder: link columns to pins 7, 8, 10, 11 and rows to pins 1, 2, 3, 4; route A–D to pins 4–7 for interrupt.
See how keypad uses the 74922 decoder IC to translate key presses into a 4-bit word and map symbols. The sketch initializes the LCD and demonstrates decoding via interrupt.
See how a four-bit word is decoded from keypad presses inside the read data function using and, or, and left-shift operations, mapped to an index and symbol array on LCD.
Explore the 1.8 inch TFT shield with a joystick and SD card, learn to set up libraries and pins, and implement a simple soft buttons user interface to select actions.
Explore the graphics library through a test sketch that draws lines, boxes, circles, triangles, and rounded rectangles on a TFT screen, using coordinates, colors, and text options.
Demonstrates loading a bitmap image from an SD card and rendering it on a 128x160 pixel TFT screen, including coordinates, initialization, and a BMP draw routine.
Learn to read a joystick and integrated button on one pin using resistors to create voltage thresholds on pin 3, detecting left, up, down, right, and select.
Learn to create a joystick-driven user interface for an Arduino 1.8-inch LCD, using a bitmap background at 128x160 and a sketch, then trigger external functions via the joystick.
Create an Arduino user interface with an example sketch, using copied components, bounce handling with a 500 ms delay, and a joystick to navigate a TFT display.
Explore wiring and setup of a 2.2 inch tft display with sd card and joystick, using a four wire spi with ili9340, 240x320 resolution, on-board voltage regulator and backlight pwm.
Wire the Arduino by connecting ground and 5 volts, connect reset to pin 8, clock to pin 13, and SD card and screen chip selects to pins 4 and 10.
Install the graphics library and ILI9340 library, run graphics tests on the 1.8 inch TFT display, draw lines, shapes, and text, and display bitmap images from an SD card.
Set up a two-inch tft display to show time, temperature, and humidity with icons, using a bitmap image and sd card libraries to render dynamic readings.
Explore the library and resources for the screen, review the header and page files, and learn how to add and reference color definitions in your sketches.
Course last updated on February 2025
In this update I added three new sections at the end of the course to cover these topics:
How to use a infrared receiver to control actions on your Arduino. This provides a low cost method of controlling your Arduino projects wirelessly, and provides an excellent alternative to radio control.
How to use an RFID module to implement security, identification, or other automation applications.
How to use a joystick as an input device.
Updated of December 2024
This update introduces advanced lectures on using the Wokwi simulator, a powerful tool that enhances your ability to design, debug, and analyze Arduino projects in a virtual environment. With these new lessons, you’ll explore professional-grade features that make learning and prototyping more efficient.
The new Section 49: Wokwi Simulator takes your simulation skills to the next level, focusing on advanced applications and tools. Here’s a breakdown of the new lectures:
• Wi-Fi with ESP32: Learn how to simulate and experiment with Wi-Fi functionality using the ESP32 microcontroller in Wokwi.
• What Is This Section About?: A brief overview of how this section expands on simulator concepts.
• Wokwi Refresher: A recap of foundational Wokwi concepts, building on knowledge from Arduino Step by Step Getting Started.
• Shift Register with 8 LEDs: An example project demonstrating how to simulate a shift register to control multiple LEDs efficiently.
• SD Card Datalogger: Learn to simulate data storage projects, including writing to and reading from an SD card.
• Interactive Debugger: Explore Wokwi’s built-in debugging tools to pinpoint and resolve issues in your code.
• Logic Analyzer: A two-part deep dive into using the logic analyzer for signal analysis and SPI protocol decoding.
About this course
Welcome to Tech Explorations Arduino Step by Step Getting Serious, where you will extend your knowledge of Arduino components and techniques and build up new skills in the largest, and the most comprehensive course on the Web!
Arduino is the world's favorite electronics learning and prototyping platform. Millions of people from around the world use it to learn electronics, engineering, programming, and create amazing things, from greenhouse controllers to tree climbing robots remotely controlled lawnmowers.
It is a gateway to a career in engineering, a tool for Science, Technology, Engineering, and Mathematics education, a vehicle for artistic and creative expression.
The course is split into 40 sections and over 250 lectures spanning more than 30 hours of video content.
In each section, you will learn a specific topic.
Each topic contains:
multiple examples of code
wiring schematics
demonstrations of a completed circuit
alternative scenarios
Peter, the instructor, and designer of this course, helps you understand the code and the circuit wiring by walking you through them, step by step and explaining every line of code and every wire of the circuit.
Students have access to:
The course repository, which contains all of the sketch code, wiring schematics and external resource links, which Peter keep up-to-date and correct
The course discussion Forum, where you can ask questions. Peter monitors this Forum regularly and responds to your questions
The Tech Explorations Makers Club private Facebook group where students can discuss their gadget ideas. Use this group to ask questions that don't fit within the context of the course, discuss your projects or help others
This course contains:
39 hours of brand new video content
12 hours of retouched video content (which I will be replacing in regular intervals with brand new content)
49 sections with totally reorganised content
More than 300 lectures (and counting)
Over 100 new and updated sketches (and counting)
Over 50 new circuit schematics (and counting)
New course repository, reorganised so that sketches, schematics and lecture external resources are easy to find (access everything at one place)
Here are some of the topics that you will learn about in this course (for a full list, please look at the course curriculum):
Advanced environment, motion, position and GPS sensors.
Using the Wokwi online simulator to develop Arduino projects in your browser, without real hardware.
New ways to receive input from the user with keypads, potentiometers, and encoders.
New ways to provide feedback to the user, with color screens, complete with a touch-sensitive surface!
Awesome ways to configure LEDs, monochrome or color.
Use matrix or LED strips, display text, graphics, and animation.
Create motion with various kinds of motors and controllers.
Networking with Ethernet and Wifi. Communications with Bluetooth, Bluetooth Low Energy,
Communications with highly-reliable packet-based radio, and simple, ultra low-cost radio for less critical applications
Multiplying your Arduino's ability to control external devices with shift registers and port expanders.
Much, much more (for a full list, please look at the course curriculum)
This course is not appropriate for people new to the Arduino. It will not teach you about the basics of the Arduino, like how to use the Arduino IDE, blink an LED or create a simple sketch and circuit. If you are a new Arduino maker, you should consider taking the Tech Explorations Arduino Step by Step Getting Started course first.
Apart from a basic understanding of the Arduino, a student of this course must be willing to work hard. You can't learn serious skills without serious work. There are a lot of courses out there that promise you a fun and easy learning experience. This is not one of them. I promise you a lot of hard work ahead.
What about tools and parts?
Other than a few essential tools and parts that you can learn about in the first section of the course (which is free to watch) I only ask that you come with an appetite to learn and a willingness to work hard. The course features a large variety of parts, but you don't need (and you shouldn't) get them all to begin learning. In fact, getting all of these parts too early is not a good idea! Watch the free lecture to understand why in the first section of this course.
Should you join right now?
Watch the free lectures in the first section of this course before you choose to join. They contain valuable information that will help you decide if this is the right course for you.
I look forward to learning with you!