
Explore Arduino programming and hardware fundamentals, learn to use LEDs, motors, accelerometers, LCDs, and sensors, and build IoT and interactive projects through project-based learning.
Discover how Arduino unites hardware and software, learn about microcontrollers and Gpio pins, and see how the Arduino IDE and wiring enable easy programming for automated watering systems.
Learn to write a blink program on an Arduino, establishing pin 13 as an output, using setup and loop, and uploading code to see a pulsing led.
Learn to use arithmetic operators in Arduino, including assignment, addition, subtraction, multiplication, division, and modulo. Explore integer vs floating-point calculations, order of operations, and compound shortcuts like += and *=.
Explore how electricity moves in a circuit, covering voltage, current, resistance, Ohm's law, breadboard basics, and how a power source, load, and ground form a loop.
Learn to read circuit schematics by identifying symbols for resistors, capacitors, diodes, LEDs, switches, and ICs, and understand how nodes, flags, and power connections link Arduino projects.
Explore how diodes control current flow in one direction, including forward and reverse bias, breakdown, and their use in rectifiers and protection. Understand the non-linear I–V behavior and symbol.
Explore general purpose input output on arduino by configuring digital pins as input or output and controlling voltages from code, including led experiments and pwm on suitable pins.
Learn how to use a shift register to expand Arduino outputs by receiving serial data, a clock signal, and a latch to drive eight leds from only three pins.
Explore using Arduino digital and analog pins as inputs to respond to user interactions with switches, buttons, and knobs, and read digital levels and voltages on pins 0–13 and a0–a5.
Learn how push buttons work, including normally open and normally closed types, their symbols, and how to wire them on a breadboard using opposite corner pins.
Learn how external pull-up resistors set a digital input to a known high, read button states with an Arduino, and drive an LED, while understanding historical TTL vs CMOS reasons.
Learn to read analog voltages with Arduino by wiring a red LED and resistor to A0, measure 0–5V, compute voltage as val*5/1023, and print to the serial monitor.
Learn how a potentiometer acts as an adjustable voltage divider with a movable wiper, providing analog input read by Arduino to control a led dimmer.
Design a mood lighting controller by integrating LEDs, user inputs, and fundamentals from Arduino programming; adjust brightness with a button and color with a knob using Neopixels as an example.
Learn to generate simple tones with an Arduino Uno using a mini speaker and a square wave via the tone function, playing 440 hz notes for 500 ms.
Explore how dc motors convert electrical energy to mechanical motion, compare direct and gear motors for torque, and control them with a transistor, flyback diode, and an Arduino setup.
Learn how an h-bridge uses four switches to reverse motor current and direction, control speed with PWM, and drive up to two motors with the L293D and Arduino.
Design and build a simple navigating rover project called Mousebot with two motors and an ultrasonic distance sensor, using Arduino, that backs up at walls, turns, and moves forward.
Post sensor data to ThingSpeak channels with an ESP8266. Create channel with a field, note the channel id and API key, and publish values via ThingSpeak library every 30 seconds.
Learn the Arduino platform and programming language to create robots, interactive art displays, electronic toys, home automation tools, and much more. This course was created in collaboration with Hackster.
Master the skills needed to bring your projects to life through electronics.
A versatile tool for prototyping, playing, and making
Arduino is both a hardware platform and programming language. By learning how to build circuits and code, you can add a new level of interactivity to your projects, prototype potential products, and gain new skills (while hopefully having fun).
The Arduino programming language is based on a combination of C and C++. With an understanding of these coding fundamentals, you will be able to more easily learn new languages, such as Java, Python, JavaScript, C#, and Swift, which are in high demand in the job market.
Course Overview
The first version of Arduino was released in 2003 and has exploded in popularity among makers, hobbyists, and tinkerers, who build everything from animatronic sculptures to interactive wearables. Professional engineers and entrepreneurs sometimes start with an Arduino to create a prototype before developing a finished product. The iconic blue board has even found its way into classrooms, where educators use it to teach programming, electronics, critical thinking, and problem solving skills.
I designed this course with the absolute beginner in mind: if you do not have any experience with programming or electronics, that’s OK! The first few sections walk you through the basics behind programming in C/C++ as part of the Arduino framework as well as how to build simple circuits that flash lights and spin motors. Following that, we continue our adventure into making noise, sensing the environment, and building a robot. Finally, we dive into the world of IoT, where we learn how to pass messages over the Internet, which allows us to do things like turn on a light with our smartphone!
Each video lecture is designed to give you one building block of knowledge. Almost every lecture is followed by a hands-on exercise where I ask you to expand on that building block or combine several previous blocks. I provide solutions to each exercise to help you learn. Additionally, most of the sections contain a project that challenges you to synthesize many of the concepts found in that section and from previous sections.
Upon completing this course, you will have the skills and knowledge needed to create fun and useful Arduino projects.