Arduino Programming for Beginners
A free, interactive Arduino course that starts from zero. Write real C++ sketches and run them on an Uno-compatible board next to your code: LEDs light, buttons press and the Serial monitor prints. With AI hints and a certificate of completion.
1,000+ codders enrolled
134 lessons134 challenges267 quiz questions
- Beginner friendly
AI-assisted coding help
Hands-on interactive lessons
Audio narration on every lesson
Quizzes to test your knowledge
Free certificate of completion
Run a sketch right here
Three small sketches for an Uno-compatible board. Press Run, then use the parts on the board.
Hold down the button on pin 2: the LED on pin 13 lights and the Serial monitor prints Pressed for as long as you hold it.
const int buttonPin = 2;
const int ledPin = 13;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
digitalWrite(ledPin, HIGH);
Serial.println("Pressed");
delay(200);
} else {
digitalWrite(ledPin, LOW);
}
}
Writing sketches like these yourself is the course: free, in your browser.
Syllabus
Section 1
First Circuits
Start sectionStartExpandCollapseYour first sketches on a simulated board: blink LEDs, print to the Serial monitor, store numbers in variables and make decisions with if.Hello, Board
6 lessons612Talking to Your Computer
6 lessons611Math on the Board
5 lessons510Decisions
5 lessons510Section 2
Inputs
Start sectionStartExpandCollapseRead the world: buttons, pull-up and pull-down resistors, debouncing, knobs and light sensors, commands from the Serial monitor, and your own functions.Buttons
7 lessons714Analog Inputs
7 lessons714Serial Input
4 lessons48Functions
4 lessons48Section 3
Outputs
Start sectionStartExpandCollapseMake things happen: fade LEDs with PWM, mix colours on an RGB LED, play melodies on a buzzer, chase lights with loops and arrays, and move a servo.Brightness
5 lessons510Colour
4 lessons48Sound
5 lessons510Loops and Arrays
5 lessons510Motion
5 lessons510Section 4
Timing Without Delay
Start sectionStartExpandCollapseKeep a sketch responsive: time things with millis(), run several jobs at once, organise behaviour as state machines and react instantly with interrupts.millis()
6 lessons612State Machines
5 lessons510Interrupts
4 lessons48Precise Timing
3 lessons36Section 5
Displays and Sensors
Start sectionStartExpandCollapseShow numbers and text on seven-segment displays, a character LCD and NeoPixels, and measure distance, temperature and light.Seven-Segment Displays
5 lessons510Character LCD
6 lessons612NeoPixels
6 lessons612Sensors
7 lessons714Section 6
Projects
Start sectionStartExpandCollapseSix projects built step by step: a traffic light, a reaction game, a parking sensor, Simon, a plant monitor and a NeoPixel clock.Traffic Light
4 lessons48Reaction Game
4 lessons48Parking Sensor
4 lessons48Simon
4 lessons48Plant Monitor
4 lessons48NeoPixel Clock
4 lessons48
Learn by Doing
Write real code, query databases, build websites, and master AI prompts. Our interactive lessons cover every skill modern developers need.
Build Your Streak
Stay consistent and watch your progress grow! Track your daily coding habit, protect your streak with freeze days, and earn rewards for showing up every day.
12 days streak
Return tomorrow to keep your streak!
January 2026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
21
22
23
24
25
26
27
28
29
30
Double or Nothing
Day 5 of 7
Streak Freeze
2 left
You're Not Alone
Compete on global leaderboards, invite friends to earn rewards, and celebrate each other's wins. Coding is better with friends!
Every way to learn
Read, listen, test yourself, ask the AI, or look up anything you've already covered. Every lesson meets you where you are.
A variable is a named container that stores a value you can reference later in your program.
In Python, you create one by writing the name, an equals sign, then the value you want to store.
The value can change over time - reassigning the name simply points it to a new value.
Earn a Certificate
Earn certificates for every course you complete. Add them to your LinkedIn profile and resume to showcase your coding expertise to employers.
Why learn Arduino programming with Coddy
- Your sketch and the board sit side by side. Press Run and the LEDs light, the buttons press, the knobs turn and the Serial monitor prints, while the Signals view draws every pin over time. Press Check and the lesson is graded on the server.
- Real C++, compiled with Arduino's own toolchain (avr-gcc):
setup()andloop(),pinMode,digitalWrite,analogRead,Serial, and theServo,LiquidCrystaland Adafruit NeoPixel libraries. The same code runs on a real board. - No programming needed to start. The first section goes from a blinking LED to resistors, variables,
ifandelseand a first button. Inputs and outputs come next: pull-up resistors, debouncing,analogReadandmap, PWM fades, an RGB LED, melodies withtoneand a servo. - Timing without
delay():millis(), several jobs at once, state machines withswitchandenum, interrupts andvolatile. Then a seven-segment display, a 16x2 LCD with custom characters, NeoPixels, an ultrasonic distance sensor and a temperature sensor.
Frequently asked questions about Arduino programming
Do I need an Arduino board for this course?
What programming language does Arduino use?
setup() runs once, loop() runs over and over, and functions such as pinMode, digitalWrite and analogRead control the pins. This course compiles your sketches with avr-gcc, the compiler Arduino's tools use for the Uno.Do I need to know how to code before learning Arduino?
if and else, loops, arrays and functions, one small lesson at a time.