Welcome to my collection of Arduino projects. As a maker, techie and mechatronics engineer I’ve been using Arduino for more then 8 years. Arduino is an incredibly versatile microcontroller with limitless possibilities for developing electronics applications and prototypes.
We can use Arduino for simple tasks such as controlling LEDs and DC motors, to controlling real CNC machines and robots. That’s right, in the following list I will share my Arduino experience with you. You will find Arduino projects for beginners and more advanced projects for Arduino enthusiast.
Even if you are just getting started with Arduino, you don’t have to worry about that. Each of the following DIY Arduino projects is covered with detailed step by step tutorial on how to do it yourself and includes circuit schematics, source codes and videos.
Using the comments section below, you can also suggest your ideas, as well as discuss anything related to these Arduino projects. I will continuously update this article with all new stuff that I make. Last update: February 2022.
Robotic Arduino Projects
As an Arduino enthusiast, I found making robots with Arduino to be most fun for me. There is so much to learn from them as a maker and an engineer. So, here are my Arduino projects related to robotics so you can learn too.
When it comes to automated manufacturing, robot arms play big role with so many applications. They are often used for welding, assembling, packing, painting, pick and place tasks and much more. This Arduino project is actually a robotic arm made out of 3D printed parts, servo motors joints and controlled using an Arduino Nano. What’s even cooler we can control the robot arm wirelessly via a smartphone and a custom build Android application.
The robot arm has 5 degrees of freedom, so we need 5 servo motors, plus an additional servo for the gripper mechanism. For the communication with the smartphone we use the HC-05 Bluetooth module.
The following project is one of the coolest Arduino project in this list. It’s an Arduino robot car which instead of normal wheels, it employs omnidirectional wheels or mecanum wheels which enable to robot to move in any direction.
The wheels are attached on four stepper motors which are individually control. By rotating the wheels in certain pattern, they exert diagonal forces due the diagonally positioned rollers on the circumference of the wheels, and so they can move in any direction. The robot car can be remotely controlled either vie Bluetooth communication and an custom build Android application. Also, we can control it using an DIY RC transmitter with the help of the NRF24L01 transceiver module.
Here’s an upgraded version of the previous mecanum wheels robot project. On top of the platform I added the DIY Arduino Robot Arm project mentioned above and now they can work together.
As the robot uses stepper motors for the wheels and servo motors for the robot arm, we can precisely control them using the custom build Android application. What’s even cooler, we can record the movements of the robot and then the robot can automatically repeat them.
Of course, as for any of my Arduino projects, the Arduino code, the custom build Android application, as well as the 3D model files can be found and downloaded from the particular project article.
SCARA robot or Selective Compliance Articulated Robot Arm is the most common and suitable option, when it comes to pick and place and small assembly applications, which require moving a part from point A to point B.
This Arduino based SCARA robot is a step-up big compared to the previous projects in every aspect. It has a better and more robust design with precisely controlled stepper motors and custom build GUI for controlling it.
As a controller it has an Arduino UNO board, combined with a CNC shield and four A4988 stepper drivers. It has 4 DOF, driven by four NEMA 17 stepper motors.
This and extension of the previous project or I converted my 3D Printed SCARA robot to work as a laser engraver robot. Instead of the gripper mechanism, here we are using a Laser module for engraving.
For controlling the robot we are using an Arduino Mega board in combination with a RAMPs board. This a popular combination used for 3D printing and it can be used for laser engraving machines as well. As for a firmware, we are using the Marlin 3D Printer firmware and the Repetier control software.
Inspired by the NASA Mars 2020 mission and the successful landing of the Mars Perseverance Rover on the plant Mars, I build a 3D printed functional replica of it. I designed this DIY 3D Printed Mars Rover in a way that it can be easily recreated by following the instructions in the tutorial.
The rover features a rocker-bogie suspension which allows the rover to run smoothly on uneven terrain, just like the real rover. It has six independently controlled DC motors for driving and four servos for steering, and it’s controlled using an Arduino MEGA board. There’s also an FPV camera located in the cameras unit of the rover which can by used for controlling the rover remotely. The remote control is done with the help of a cheap commercial RC transmitter and receiver.
Making biologically inspired robots is very popular among engineering students. This Arduino project is all about it, we will build a hexapod robot which features six legs, a tail or abdomen, a head, antennas, mandibles and even functional eyes. All of this makes the robot look like an ant.
Each leg have three joints, and for each joint we need a servo motor. That means that we need total of 18 servos for this project, and additionally 3 servos for the head movements and 1 servo for the tail. The brain of the robot is an Arduino Mega. We need MEGA because it’s the only board that can control more than 12 servos using the Servo library.
I also designed a custom PCB which acts as an Arduino Mega Shield so we can easily attach all servo connects. We can control the ant robot via Bluetooth and a smartphone, or radio communication. The ant also has built-in ultrasonic sensor in the head. With that it can detect objects in front, and it can even strike if the object is present if front of it.
CNC Machines Arduino Projects
The following projects show how capable Arduino is. A CNC or Computer Numerical Control is an automated control of machines, like mills, lathes, plasma cutters, 3D printers and etc. So, using the Arduino as a controller we are actually able to build any of these CNC machines.
For the project my goal was to build the simplest CNC machine with minimum parts possible and by using just a single power tool. On top of that, I wanted to use common materials or avoid 3D printers so I used MDF board for building the base frame.
The CNC machine is composed of just two linear rails which are secured to a base frame made of 8mm MDF board. For controlling it we are using an Arduino UNO board in combination with a CNC shield and two DRV8825 stepper drivers. As a tool it has an laser module attached so this machine is actually a CNC laser engraver.
A CNC drawing machine or a pen plotter based with automatic tool changer. An awesome way to draw anything in any color.
The idea for this Arduino project was similar to the previous one, to build a CNC machine using minimum parts possible. Here I used 3D several printed parts, and just two MGN15H linear rails for the main construction of the machine.
Building your own CNC machine might seem like a big challenge for many of you, but the following Arduino CNC Machine project shows that building a CNC machine is actually not that hard.
This CNC machine is actually a foam cutting machine. Instead of bits or lasers, the main tool of this CNC machine is a hot wire. It’s a special type of resistance wire, which gets really hot when current passes through it.
The hot wire melts the foam when passing through, and so we can precisely make any shape out the styrofoam.
Controlling stepper motors using Arduino is without a doubt one of most satisfying thing for an Arduino enthusiast. There so many machines based on this motors, like CNC machines, 3D printers, various automation machines etc. This Arduino project is all about that. It describes how you can build such a machine. It’s a machine for bending wire, where with the help of stepper motors we can precisely bend wire and make various shapes and forms out of it.
The machine features three stepper motors. With the first stepper we feed the wire to the bending mechanism. Here we have another stepper motor used for the bending the wire at the right angle. There’s also another stepper, for controlling the Z-axis. This stepper enables the machine to create three dimensional shapes. With this project we can also see how useful 3D printers are for Arduino projects of this type or for prototyping.
Radio Control (RC) Arduino Projects
Controlling Arduino projects using radio devices is quite useful and fun at the same time. I have made several radio based projects.
Many Arduino projects that I make require wireless control and that’s why I build this Arduino based wireless radio controller. With this RC transmitter I can wirelessly control pretty much with a range up to 700m in open space. It features 14 channels, 6 of which are analog and 8 digital inputs.
The brain of this Arduino project is an Arduino Pro Mini board which is the smallest Arduino board. The radio communication is based on the NRF24L01 module, it has 2 joysticks, 2 potentiometers and 4 momentary push buttons. Also an accelerometer and gyro module which can be used for controlling things with just moving around or tilting the controller. I mounted all electronic components on a custom design PCB and made a cover out of transparent acrylic.
This is a follow up project of the above one. Just like DIY RC Transmitter, this DIY Arduino RC Receiver can be used for many application. We can easily pair the two projects together and control anything wirelessly. Among others, I made an example of controlling a commercial RC car model using these DIY transmitter and receiver.
The custom PCB that I made uses the same NRF24L01 module for the radio communication. The controller is an Arduino Pro Mini and it features input/ output 9 channels.
The following Arduino project is a great example of utilizing the DIY RC transmitter from above. It’s a 3D printed hovercraft which I entirely designed on my own, and of course, the 3D printing files are available for downloading. The hovercraft uses two brushless motors, one for creating an air cushion for the lift, and the other for generating thrust or moving forward.
For the wireless control we are using the NRF24L01 module, which accepts the data coming from the RC transmitter. Then using the Arduino and two ESCs (Electronic Speed Controler) we control the BLDC motors speed. On the back side of the hovercraft there is also a servo for controlling the rudders, or for controlling the steering. I must say that driving this DIY hovercraft is so fun.
Anyone who had a chance of playing around with some RC airplanes knows how cool and fun it is. It’s even cooler and more satisfying if you build the RC airplane on your own. The following project steps the satisfaction up even further, because here I will show you how to build your own RC airplane which is 100% DIY build. Also, we have a 100% DIY radio control system based on the Arduino.
The airplane is entirely made out of Styrofoam and what’s cooler, the shapes are made with the help of my DIY Arduino CNC Foam Cutting Machine, a project already mention above. The radio communication is based on the NRF24L01 transceiver modules. For that purpose, I used my DIY Arduino RC Transmitter and DIY Arduino RC Receiver.
This Arduino project is an extension to the previous one, and here we will learn how to wirelessly control the Arduino robot car.
You can choose one of the three different methods of wireless control explained in this project, or that’s the HC-05 Blueooth module, the NRF24L01 transceiver module and the HC-12 long range wireless module. Additionally you can learn how to make your own Android app for controlling the Arduino robot car.
This Arduino project idea is rather practical because it features indoor and outdoor temperature and humidity measurement. It is based on the DHT11/ DHT22 sensor, the NRF24L01 transceiver module for the wireless communication and the DS3231 RTC. For the display we can either use 16×2 character LCD or a 3.2 inches TFT touch screen.
The outdoor unit can be powered with batteries and the indoor unit with an AC adapter. The outdoor unit measures the temperature and the humidity and sends the values to the main indoor unit. Here these values are printed on the LCD along with the data and time values from the DS3231 RTC module.
Additionally, we can use SD Card module for storing the data onto Micro SD card.
Motors Control Arduino Projects
Controlling motors using Arduino is actually quite easy, and there are some many interesting projects with can make with Arduino and motors.
Camera slider are great for capturing cinematic shots, and having pan and tilt system on top of it even further increase the possibility to capture better shots. In this project I will show you how you can build your own one, which costs way less then one found in the stores and still you can get great and super-smooth shots.
The slider has three NEMA 17 stepper motors controlled via the A4988 stepper drivers and the Arduino Nano board. Using a joystick we can control the pan and tilt movements and using a potentiometer we can control the sliding movement. With this DIY camera slider we can use the Set button to set two different IN and OUT points. Then the camera can automatically move from one to the other point.
If you are interested in building something more complex with Arduino then this project is the one for you. Although complex, you could easily recreate it as there is a detailed step by step explanation on how everything works, including circuit schematics and source codes.
The structure of the machine is made out of MDF. For discharging the items I used continuous rotation servo motors, while for the carrier system I used two NEMA17 stepper motors. For detecting the coins the machine uses an infrared proximity sensor.
The following Arduino project is a simple gimbal or a self-stabilizing platform. It can be used for keeping objects or the top platform level. The project is rather simple with just several electronic components.
Based on the MPU6050 orientation and its fused accelerometer and gyroscope data, we can control the 3 axes or servos that keep the platform level.
The combination of DC motors and Arduino is always fun, and so is this project. Here we will build our own robot car from scratch. The car will be powered with Li-ion batteries and two 12V DC motors, and controlled using the L298N driver and an analog Joystick.
Through this project we will also learn how H-Bridge and PWM motor control work.
Arduino Projects for Beginners
If you found the above projects a bit hard to start with, you can try the following projects which are good for beginners.
This is one of my most popular project and it’s really fun to build. The radar can detect objects in front of it and map them on PC screen using the Processing IDE.
For this project you just need two components along with an Arduino board, and that’s an ultrasonic sensor and small servo motor. The range of the radar can be adjusted to up to 4 meters with 180 degrees rotation.
Here’s another project utilizing the HC-SR04 ultrasonic sensor. This time we will use it to make an distance meter which can measure distances up to 4 meters, as well as, measure square area.
The project also includes and accelerometer which is used for the digital spirit level function or for measuring angle. The results are displayed on 16×2 LCD and all components are attached on a custom design PCB.
Sorting out objects or products by their color has an important real world application. These types of machines are often used for sorting fruits, seeds, plastics etc. The working concept of these machines is rather simple. All you need is a color detecting sensor and of course a system that feeds the object to the sensor and then sort it out.
In this project we will learn how to use a color detecting sensor along with the Arduino. We are going to be sorting out colored skittles but you can use the same sensor and method for sorting out anything else.
RFID technology has wide range of applications and access control is one of them. We often encounter this in hotels for accessing our room or at work for checking in or accessing restricted areas.
In this project we will learn how to use the Arduino to make an RFID controlled door lock. The system consists of an MFRC522 RFID reader and RFID tags/ cards that are based on the MIFARE protocol.
If you ever thought of making your own security system then this project is a great starting point. Here we will utilize an ultrasonic sensor for detecting movement.
If a human or object passes in front of the sensor, the alarm will be activated. For deactivating the alarm you will have to enter a password using a keypad.
In this project we will control LED Matrices using the MAX7219 driver. This driver can control up to 64 individual LEDs while using only three wires. Also we can connect up to 8 drivers in series and still using the same wires.
To make this project more interesting I also added an example where you can update the text on the LED matrixes through your smartphone using a custom-made Android app.
This game project is based on the popular Flappy Bird game for smartphones. Using the touch screen we control the bird while trying to avoid the pillars.
For this project we need a 3.2 inches TFT Touch screen, an TFT Mega shield adapter and an Arduino Mega board. The code is a bit longer but everything is explained in details.
In this project we will learn how to build our own music player. It features a touch screen, MP3 player, a temperature sensor and an alarm clock.
The code behind this project is a bit more complex with around 550 lines but everything is explained in details with comments for each lines. There is also a detailed video explanation for it.
More Arduino Projects
At first glance this table looks like a normal coffee table but once you turn on the power on it gets to a whole new level. The table has 45 sections which can glow in any color we want, plus it reacts on objects placed on top of it.
The heart of the table is an Arduino which controls the 45 WS2812B Addressable LEDs. The objects on top of the table are detected using infrared proximity sensors. What’s even cooler it has built-in Bluetooth module which enables interaction with a smartphone for selecting the LEDs colors.
Monitoring the indoor air quality is very important as it can affect us in many way. If we have a poor air quality in the room we are staying, it can lead to tiredness, headaches, loss of concentration, increased heart rate and so on.
In this Arduino project we are building an Air Quality Monitor which can measure several important air quality parameters such as PM2.5, CO2, VOC, Ozone, as well as temperature and humidity. I designed a custom PCB on which we can easily attach the sensors we need and show the results on a 2.8 inches touch display. The device can also keep track of the sensors values from the last 24 hours.
Arduino Projects Ideas
The following section of this article contains Arduino projects ideas based on my detailed tutorials on various sensors and modules, as well as your suggestions from the comments section below.
For each project idea I will point out the required components as well as the particular tutorial for each of them.
6-Axis Arduino Robot Arm with Cycloidal or Harmonic Drives as Joints
Building more robust Arduino based Robot arm which will employ either Cycloidal or Harmonic drives as joints.
Using my detailed tutorials how a cycloidal and a harmonic gearboxes work we can develop robotic joints which will have high torque and efficiency.
Cycloidal Drive working principle:
Harmonic Drive working principle:
We can use NEMA 17 or 23 stepper motors in combination with these drivers which provide high speed reduction ratios. As for controller we could use an Arduino Uno or Arduino MEGA board.
Android Smartphone Controlled Power Outlet Using Arduino
Controlling your home power outlets via a smartphone is the first step in home automation. You can easily make your own Arduino controlled power outlets utilizing the knowledge you can get from my Arduino tutorials.
For this project you just need two components along with the Arduino board. An HC-05 Bluetooth module and a 5V Relay module for which I already have detailed tutorials. For powering the Arduino and the relay you can use 220/ 110V AC to 5V DC converter.
Using your smartphone you can connect and control your power outlet via Bluetooth. You can either use some already made apps for controlling Arduino from the Play Store or create your own custom made app. In this way we can also control the power outlets through voice control commands.
Home Automation Arduino Projects
Home automation is one of the most popular Arduino projects nowadays. The goal of this project is to remotely control anything in your house like lights, appliances, temperature, security devices and so on, with a single device or your smartphone.
In order to make such a project we need decent amount of knowledge in Arduino. The following home automation concept that I suggest is based on my detailed Arduino tutorials for various sensors and modules.
So the idea here is to have a master unit which includes a touch display, and several slave units which will execute commands coming from the master. As for the wireless communication we can use the NRF24L01 radio frequency modules. Each slave unit can have various functions like, temperature monitoring, power outlet control, lights control, security alarm and so on.
Of course, there are endless possibilities and combinations for building a home automation system using the Arduino board. You can always change and add more devices. You can also make a Bluetooth communication so you can control all of this using your smartphone etc.
Arduino Gesture Control
The idea for this project is to remotely control an Arduino project using hand gestures. Let’s say we want to control the Arduino Robot Car that we mentioned above. So instead of the joystick we will use an MEMS module for the control.
We can use the GY-80 module which features an accelerometer, a gyroscope and a magnetometer. Then the data we are getting from these sensors to control the steering of the robot car. As for the wireless communication we can use the NRF24L01 transceiver modules.
You can also check my Mechatronics Final Year Project where I used a similar method for controlling a 3D model in Matab Simulink.
Feel free to ask any question in the comments section below and don’t forget to suggest some more Arduino projects.