Projects for everyone
Copyrighted materials. All of the projects on this website are provided freely for personal use only. A written permission is required for an organization to use this material in public or if there is any charge to the student whether it is for profit or not. Email to copyright@robotsforfun.com to request permission for using this material.
Check out these sources for getting your parts to build all of these projects.
Click here for the teacher's instructions. And here for 中文.
Projects | Level | Hardware Stuff You'll Learn | Software Stuff You'll Learn | |
---|---|---|---|---|
Outputs | ||||
1 | My First Arduino Project | Beginner | Arduino IDE, LED |
setup,
loop,
; (semicolon),
{ } (curly braces),
// and /* */ (comments), pinMode, OUTPUT, digitalWrite, HIGH and LOW, delay |
2 | Making music | Beginner | digital output pin, buzzer, breadboard | tone, noTone, #define, #include, functions |
3 | External LED | Beginner | Arduino IDE, LED, resistor, breadboard |
int (variable declaration),
= (variable assignment) |
4 | Two LEDs | Beginner | LED, resistor, breadboard |
int (variable declaration),
= (variable assignment) |
5 | Fading LED | Beginner | analog output pin, LED, resistor, breadboard |
analogWrite,
for,
++ (increment),
- - (decrement), <, >= |
Inputs | ||||
6 | Potentiometer | Beginner | potentiometer | analogRead, Serial.begin, Serial.write, if, else |
7 | Push button | Beginner | push button, internal pull-up and pull-down resistors |
digitalRead,
INPUT, OUTPUT, if, ==, random, while |
8 | 4x3 Keypad | Intermediate | Keypad | #include, Keypad library |
Displays | ||||
9 | RGB LED | Beginner | RGB LED |
analogWrite,
for,
++ (increment),
- - (decrement), <, >= |
10 | 7-segment LED display | Beginner | 7-segment LED display | functions, switch...case, break, random number |
11 | Rainbow lights | Intermediate | RGB LED ring, WS2812 | #include, WS2812_RobotsForFun library |
12 | 8x7-segment LED displays | Advance | 3/4-digit 7-segment LED displays, MAX7219 | #include, LedControl library |
13 | 8x8 dot maxtrix LED display | Advance | 8x8 dot matrix, MAX7219 | #include, LedControl library |
14 | Liquid Crystal Display (LCD) | Advance | LCD display | LiquidCrystal library, functions |
15 | Organic LED (OLED) display | Advance | OLED display | functions |
Sensors | ||||
16 | Light sensor | Beginner | photo resistor | analogRead, Serial.begin, Serial.println, if, else |
17 | Tilt sensor | Beginner | tilt sensor, internal pull-up and pull-down resistors | pinMode, digitalRead |
18 | IR black/white/object sensor | Beginner | Object sensor and black/white sensor | digitalRead |
19 | Ultrasonic distance sensor | Beginner | Distance sensor | delayMicroseconds, pulseIn, functions |
20 | Time of Flight distance sensor | Beginner | Distance sensor | |
21 | Motion sensor | Beginner | Motion sensor | digitalRead, if, else |
22 | Sound sensor | Beginner | Sense when there is sound | digitalRead |
23 | Temperature and Humidity sensor | Intermediate | Temperature and Humidity sensor | #include, DHT library |
24 | Color sensor | Intermediate | Sense the color of an object | |
25 | Gas sensor | Intermediate | Sense flammable gas | |
26 | Magnetic compass | Advance | Sense the earth's magnetic fields | |
27 | Gyroscope and accelorometer | Advance | Sense the spin, tilt, and acceleration of an object | #include, MPU6050_RobotsForFun library |
Motors and electromagnets | ||||
28 | Servo motor | Beginner | Servo motor | #include, Servo.h library, attach, write, for |
29 | Stepper motor | Intermediate | Stepper motor | |
30 | Robot car chassis | Intermediate | ||
31 | DC motor | Intermediate | DC motor | |
32 | Robot car | Intermediate | ||
33 | Electromagnet | Intermediate | Electromagnet, transistor, diode | |
34 | Relay | Intermediate | Relay, high voltage | |
Clock, audio, and data saving | ||||
35 | Internet NTP clock | Beginner | Network Time Protocol (NTP) clock | DateTime_RobotsForFun library |
36 | Real-time clock | Intermediate | Real-time clock | I2C protocol, Wire library, Time_master library |
37 | EEPROM | Beginner | EEPROM library, non-volatile memory | |
38 | SD Card | Intermediate | SD card | SPI library, SD library |
39 | Audio Player - DFPlayer | Advance | DFPlayer Mini audio player | DFPlayer library |
40 | Audio Player - Music Shield | Advance | Music Shield audio player | Music_Shield_V2_0 library |
Communication | ||||
41 | WiFi and the Internet Of Things (IOT) | Advance | ESP8266 | WiFi_RobotsForFun library, Web page, HTML |
42 | WiFi using the ESP32 | Advance | ESP32 | WiFi |
43 | Serial (RS232) Communication | Advance | SoftwareSerial library | |
44 | Bluetooth | Advance | HC-05/06 | Bluetooth library |
45 | I2C protocol | Advance | I2C protocol | |
46 | Over The Air (OTA) upload | Advance | ESP8266 | |
Full projects | ||||
47 | Lights for your Wheels | Intermediate | RGB LED, WS2812, buttons, buzzer | WS2812_RobotsForFun library |
48 | Clocks with no Knobs | Advance | ESP8266 WiFi, 7-segment displays | WiFi_RobotsForFun library, LedControl library |
49 | Self Balancing Robot | Advance | Gyroscope and accelerometer, H-bridge, motors | MPU6050_RobotsForFun library, PID library |
50 | Robotic arm | Advance | ESP8266, stepper motor, servo motor, RGB LED | Web page, HTML |
51 | Wireless Analog Data Acquisition System | Advance | Bluetooth, FPGA, microcontrollers | Android |
Getting the Parts
Check out these sources for getting your parts to build all of these projects.