Arduino Multi-File LED Controller
Learn functions, headers and non-blocking timing across multiple files.
Project files
Starter — led_controller.ino
#include "led.h"
void setup(){ ledBegin(); }
void loop(){ /* TODO: call ledUpdate */ }Completed — led_controller.ino
#include "led.h"
void setup(){ ledBegin(); Serial.begin(115200); }
void loop(){ ledUpdate(); }Starter — led.h
#pragma once
void ledBegin();
void ledUpdate();Completed — led.h
#pragma once
void ledBegin();
void ledUpdate();Starter — led.cpp
#include <Arduino.h>
#include "led.h"
void ledBegin(){ pinMode(LED_BUILTIN,OUTPUT); }
void ledUpdate(){ /* TODO */ }Completed — led.cpp
#include <Arduino.h>
#include "led.h"
void ledBegin(){ pinMode(LED_BUILTIN,OUTPUT); }
void ledUpdate(){ static unsigned long last=0; if(millis()-last>=500){ last=millis(); digitalWrite(LED_BUILTIN,!digitalRead(LED_BUILTIN)); Serial.println(digitalRead(LED_BUILTIN)); }}Toolchain and dependencies
IDE requirements
Arduino IDE 2.x or Arduino CLI
Compatible targets
Arduino Uno, Nano, Mega or compatible
Libraries/dependencies
- Arduino core (built in)
Serial output examples
Serial Monitor
LED state: 1 LED state: 0 LED state: 1
Serial Plotter
Compiler-error explanations
undefined reference to ledUpdate
Likely cause: led.cpp is missing or function signature differs
Fix: Add led.cpp and match the declaration exactly
led.h: No such file or directory
Likely cause: Header is absent or named differently
Fix: Put led.h in the same sketch folder
Submit your code
Log in to edit the starter files and submit your solution for instructor review.
Log in to submit