
Start a practical, from-scratch Arduino journey for beginners with hands-on circuits and programs. Explore step-by-step projects, simulations, and a final obstacle-detection project to become an autonomous Arduino maker.
Explore how Arduino merges hardware and software for beginner projects, using open source boards like Arduino Uno, Nano, and Mir to enable home automation, robotics, and IoT.
Explore essential hardware for this Arduino course, from a starter kit to a free simulation tool, and learn to use leds, resistors, push-buttons, ultrasonic sensor, potentiometer, lcd screen, infrared receiver.
Explore a free online simulator called Tinker Cat in your browser to create, save, code, and simulate Arduino projects with interactive components.
Start from the beginning and let the Arduino lessons build on each other, then engage in activities and challenges, solving them solo before viewing the solutions, and have fun.
Install the Arduino software on Windows, Linux, and Mac OS, use the integrated development environment to upload code to your Arduino with a USB cable, and simulate with Jinko Card.
Install the Arduino IDE from arduino.cc, choosing legacy version one or the latest version two for Windows, Linux, or macOS. Run installer and open Arduino IDE from the desktop shortcut.
Adjust the Arduino IDE to improve readability by changing font size and interface scale. Select themes, enable line numbers, and customize font family for both version 1 and version 2.
Connect your Arduino board to your computer with the USB cable, open the Arduino IDE, select the correct board and port, then verify and upload.
Create a TinkerCAD account and run Arduino simulations directly in your browser, with no installation. Sign up, design circuits, write code in text mode, run simulations, and save changes.
Set up your Arduino environment, write and upload your first program, and learn how to restart an output. Use the USB cable and Tinker Card simulation guidance, and watch lessons.
Explore how to structure Arduino sketches with setup and loop, writing the minimum code to initialize sensors and communication. Observe how setup runs once and loop repeats infinitely until restart.
Learn to build your first Arduino project that makes an LED blink on pin 13 by configuring pin mode to output and using delay, then upload.
Debug Arduino projects by using the serial monitor to view program output, initialize serial communication at a matching baud rate, and print messages from setup and loop for real-time logging.
Explore practical ways to restart your Arduino program, including unplugging the USB, pressing the reset button, closing and reopening the serial monitor, and re-uploading code.
Learn to write your first Arduino program and debug it in the online simulation, using the blink example on pin 13, digital write high, delays, and reset to observe behavior.
Combine two beginner programs to change the LED blink rate and print messages when the LED turns on and off, practicing debugging with the hardware setup.
Demonstrate the first activity solution by blinking an led on pin 13, initializing digital output, and printing energy on/off with two-second on and one-second off.
Learn how to use a breadboard with your first Arduino program, including resistor color codes, building your first circuit, and simulating in Tinkercad to test ideas before real hardware.
Discover how a breadboard helps you prototype Arduino circuits by linking components to power and ground. Learn the layout of rails and dotted connections that keep circuits reliable.
Learn to use resistor color codes to determine values for Arduino projects, understanding four-band and five-band codes, multipliers, tolerances, and practical examples.
Prioritize safety before Arduino hardware manipulation by powering off, double-checking circuits, and ensuring all components share a common ground to prevent short circuits and component damage.
Create a circuit with one led and a 220 ohm resistor on a breadboard, wiring the led's anode to Arduino digital pin 12 and the cathode to ground.
learn to make an led blink on an arduino by configuring pin mode, using digital write high and low in setup and loop, and uploading to the board.
Explore practical programming basics for Arduino, learn a subset of C/C++, and start experimenting with real projects quickly, even if you’re new to code.
Declare and initialize variables in Arduino to store and reuse values, using integers in setup and loop. Use define to create constant variables for pins that cannot be changed.
Explore Arduino data types from integers and floats to booleans and strings, and learn how overflow, scope, and meaningful naming affect variables and constants.
Explore how to create and use functions in Arduino to build reusable code blocks, pass integer inputs, return results, and call functions from setup and loop.
Explore how variable scope in Arduino C++ determines accessibility across global, setup, and loop. Understand global vs local and parameter variables, and avoid scope errors and name collisions.
Explore for and while loops in Arduino, counting from zero to ten, with i and i++, and learn when to use for repetitions versus while conditions.
Learn how to store related values with arrays in Arduino C/C++. Declare fixed-size arrays, initialize and modify elements by index, and iterate through them with a for loop.
Review the essential programming fundamentals and prepare to practice with real Arduino projects through upcoming activities, aided by the recap pdf and revisiting prior lessons.
Explore how to use standard components like a red button with Arduino pins, dive into advanced functionalities and sensors, and build a complete project starting from an LCD blinking program.
Explore how digital pins on Arduino work as output pins, set pin mode to output, and switch between high and low binary states to power or deactivate connected components.
Define pin 12 as a constant, set its mode to output with pinMode, then use digitalWrite to drive the led high and low with delays to create a blink.
Explore how Arduino digital pins can output PWM signals with duty cycles, using high/low states or analog write values from 0 to 255 to control voltage.
Configure a pwm pin as an output and use analogWrite to vary led brightness with values from 0 to 255, illustrating the duty cycle and off/on extremes.
Learn to fade an LED in and out on an Arduino by using PWM, looping from 0 to 255 and back with four for loops and a 5 ms delay.
Learn to implement the fade in and fade out using two loops from zero to 255 and back, analog write, and serial monitor debugging with delays.
Explore how push buttons function as sensor inputs in Arduino, read their state in code, and use that data to drive actions like turning an LED on.
Add a push button to your Arduino circuit in Tinkercad, duplicating a project, wiring the button between ground and 5V with a pull-down resistor and reading on digital pin 2.
Configure a digital pin as an input to read a digital high or low, where high near five volts and low near zero; analog values aren't read with digital inputs.
Read a push button state on digital pin two with digital read, set the pin to input. Print high/low using an if statement and a short delay.
Combine the energy with a push button by initializing components, looping, and using an if statement to power the energy only when the button is pressed.
Initialize pins 11 for energy and 2 for the button, and configure them in setup. Read the button state with digitalRead and drive energy with digitalWrite when pressed, otherwise off.
Visualize live serial data with the Arduino IDE's serial plotter by printing digital read values from a push button, and learn to use digital pins as input and output.
Explore how a potential meter yields a range of values for fine-grained control, like volume, instead of two states. The lesson covers reading these values and previewing a button addition.
Learn to add a common 10k potentiometer to your Arduino circuit, wiring the potentiometer's outer pins to ground and 5 volts, and the middle pin to an analog input.
Discover how Arduino analog pins read voltages as 0–1023, mapping 0–5 volts to that range, defaulting to input, with no need for pinMode and no analogWrite on analog pins.
Define the potentiometer pin and read its analog value with analogRead, printing to the serial monitor at about ten hertz, showing 0–1023 values and plotting the results.
Set the LED brightness from a potentiometer by reading the potentiometer with analog read. Scale 0–1023 to 0–255 and use analogWrite on pin 11 to achieve full PWM brightness.
Read a potentiometer with analogRead, scale the value by four to yield 0–255, and apply it to a PWM pin with analogWrite to adjust LED brightness.
Learn to use an analog pin as a digital pin by setting its mode and driving high and low values, enabling flexible use when digital pins run out.
Explore digital and analog Arduino pins, learn input and output modes, and practice reading high/low and 0–1023 values while writing 0–255 analog signals.
Add two more LEDs to your Arduino circuit and expand to a traffic light setup with red, yellow, and green LEDs, using 220-ohm resistors and correct ground connections.
Create a small traffic light system using red, green, and yellow lights, cycling red for three seconds, green for three seconds, then yellow for one second in a continuous loop.
Build a three-LED traffic light on Arduino by defining pins, setting them as outputs, and cycling red, yellow, and green with timed delays.
This activity teaches blinking three LEDs with a push-button: blink intervals of 300 ms, pause when pressed, and resume when released, using setup and loop logic.
Implement a push-button controlled led blink sequence that stops when pressed and resumes when released, using an Arduino state machine with initialized pins, digitalRead checks, and a 300 ms delay.
Improve the previous Arduino project by refactoring with an array for three entity pins and functions to set modes, initialize, and toggle states.
This activity refactors Arduino program to blink three LEDs using a button, setup function, arrays and for loops, adds a set_in_mode function, and modularizes with a clean loop and tests.
Advance your Arduino skills by mastering cellular communication, building on installation and programming basics, and exploring two-way data exchange with ultrasonic sensors, LCDs, infrared remotes, and photoresistors.
Learn to set up serial communication between an Arduino and your computer, choose a baud rate such as 9600, print messages, upload code, and view output in the serial monitor.
Learn to send data from your computer to an Arduino via serial, initialize communication, detect available data, and read integers, longs, floats, and strings with timeout and line ending considerations.
Increase the baud rate to speed up serial communication, balancing performance with potential errors. Use 115200 as a common value for reliable, fast Arduino communication.
Set an led blink rate via serial monitor by sending a number to adjust the delay between 100 and 1000 milliseconds, with input validation and a default until data arrives.
Learn to implement an Arduino activity solution by receiving a delay value via serial, validating 100 to 1000, and updating a blink rate while illustrating timing issues with blocking delays.
You are learning Arduino from scratch, and you don’t know where to start? Or… you already have an Arduino board but you feel stuck?
At the end of this complete course, you will have a strong Arduino foundation, and you will be able to start any custom Arduino project you want.
I will take you from a complete beginner - starting from scratch - to a confident Arduino Maker.
And to get started with the course, NO need to know anything about Arduino, programming, hardware, or engineering. I will teach you everything, step by step, starting from zero.
You just need the motivation to learn Arduino.
→ Why this course?
When I look at the online resources to learn Arduino, I see many tutorials and courses who just explain the final result of a project, and focus on making you run this project as quickly as possible, to make you feel you’ve made great progress. The reality is that if you’ve just scratched the surface, and then good luck for creating a new project on your own.
No cover of the basics, jumping to advanced or even unrelated hardware concepts, and no hands-on demonstration of how it works.
I’ve created this course so you can really understand what you’re doing. You can start from scratch and get the necessary foundation you need, and learn - through practice and hands-on lessons - the complete process to create Arduino projects.
Also, with over 100 000 students on the platform and 25 000 reviews over 4.7/5 , I’ve had the time to experiment a lot and find what works better to teach efficiently.
And I’m not just teaching Arduino without real experience with it. As an example, a few years ago I used the Arduino environment to create a complete 6 axis robotic arm, now sold in the market as a real product. This was a real challenge and this made me develop a practical mindset, as well as understand what is really important to learn, and in what order.
This course is the result of many years of learning, practice, development of real commercial products, and teaching.
→ How will you learn, how do I teach?
Quite simple. First:
Focus on the why first
Hands-on lessons
Step by step progress
Complete explanations, No copy and paste
And then:
Many challenges for you to practice (20 activities) and make you think.
A big final project to practice more and make the link between every functionality/concepts you’ve seen in the course.
This course is focused on the practical side, and has a clear and ordered structure. Each new learning block is built on the previous ones. No jumping around concepts in an unordered way!
And no crap to make the course longer, no useless and distracting stuff. I go to the point to teach you what you really need to learn now, to be able to create your own projects.
→ What will you do and learn in the course?
The course is divided into 4 main parts:
First you will set up the Arduino IDE (or the free online simulator), create your own circuit, learn the Arduino programming fundamentals, understand and work with digital/analog pins, to control LEDs, push buttons, potentiometers.
After this “basic Arduino foundation” package, time to get to know new Arduino functionalities to go further with your projects: time, multitasking, debounce, interrupts, Serial, EEPROM.
Now you’ll be really more confident to create any Arduino program or project. Here you will work with new hardware components, such as an ultrasonic sensor, LCD display screen, infrared remote controller, photoresistor.
And to finish, a big final project: an interactive obstacle detection application. You will get a nice challenge to create a real and useful Arduino project, that you can reuse and modify for your own purpose.
Bonus point: you can complete the course with just a free online simulation tool, no hardware needed if you don’t want to.
For each section (20), to make it easier to progress, you’ll find:
Hands-on circuit setup for new components, both with the simulation and the real components.
If needed, a quick and to-the-point visual explanation of a new concept/functionality.
Hands-on lessons to experiment directly with the concepts/functionalities/components.
Mini projects (that I call activities) to put into practice what you’ve just seen, to make you think in a challenging way, and to make the link between the current and previous sections of the course.
So, you want to learn Arduino in a fun, practical and efficient way? Don’t wait anymore and start your Arduino journey with this complete course today!
Not only will you get a great Arduino foundation to start any Arduino project with confidence, but you will also:
Become more autonomous and rely less on what you may (or may not) find on the Internet.
Develop engineer-level thinking skills to solve any technical problem.
Learn best practices from the start.
Oh, and you also get a 30 days money-back guarantee if you’re not fully satisfied - no questions asked :)
See you in the course!
Note - This course is not for you if:
You’re already at an advanced level with your Arduino.
You just want a copy/paste solution to your problems.