Guide to Arduino microcontroller projects from first blink to advanced builds, covering board selection, circuit design, programming fundamentals, and progressive project ideas.
A skill is a written procedure a bot loads when a job calls for it. This one is a single file, SKILL.md, and the whole file is on this page.
Guide to Arduino microcontroller projects from first blink to advanced builds, covering board selection, circuit design, programming fundamentals, and progressive project ideas.
How much does it cost?+
Nothing. It ships with Murage, which is open source. Your bots run on the AI plan you already have.
Can I change it?+
Yes. Open it in Settings → Skills to read, edit or duplicate it. Skill Guard scans it again after every edit.
Give your first job to Murage.
Download the app, connect the AI you already pay for, and tell your Chief of Staff what needs doing. Plan on about ten minutes from install to a working team.
// Every Arduino sketch has two required functions:
void setup() {
// Runs once at startup
pinMode(13, OUTPUT); // Configure pin as output
Serial.begin(9600); // Start serial communication
}
void loop() {
// Runs repeatedly forever
digitalWrite(13, HIGH); // Turn LED on
delay(1000); // Wait 1 second
digitalWrite(13, LOW); // Turn LED off
delay(1000); // Wait 1 second
}
Variables and Data Types
int - Whole numbers (-32,768 to 32,767)
long - Large whole numbers
float - Decimal numbers (use sparingly, slow on Arduino)
bool - true/false
char - Single character
String - Text (capital S, uses more memory)
Control Structures
if / else if / else - Conditional execution
for loop - Repeat a known number of times
while loop - Repeat while condition is true
switch/case - Multiple condition branches
Common Functions
pinMode(pin, INPUT/OUTPUT) - Configure pin direction
digitalWrite(pin, HIGH/LOW) - Set pin on/off
digitalRead(pin) - Read pin state (0 or 1)
analogRead(pin) - Read analog value (0-1023)
analogWrite(pin, value) - PWM output (0-255)
map(value, fromLow, fromHigh, toLow, toHigh) - Scale a number range
millis() - Milliseconds since startup (use instead of delay for multitasking)
Avoiding delay() - Using millis()
cpp
unsigned long previousMillis = 0;
const long interval = 1000;
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
// Do your timed action here
}
// Other code runs without blocking
}
Progressive Project Ideas
Beginner Projects (Week 1-4)
Traffic Light Simulator - Three LEDs cycling through green, yellow, red with proper timing
Night Light - Photoresistor controls LED brightness automatically
Temperature Display - DHT11 sensor reading shown on 16x2 LCD
Melody Player - Piezo buzzer plays songs using tone() function
Reaction Time Game - LED lights up, measure button press response time
Intermediate Projects (Month 2-3)
Weather Station - DHT22 + BMP280 sensors, OLED display, data logging to SD card
Plant Watering System - Soil moisture sensor triggers pump via relay
Ultrasonic Parking Sensor - HC-SR04 distance sensor with LED bar graph and buzzer
RFID Door Lock - RFID reader controls servo-operated lock mechanism
LED Matrix Animations - 8x8 or WS2812B strip with patterns and effects
Advanced Projects (Month 4+)
Home Automation Hub - ESP32 with MQTT, controls lights/fans, web dashboard
Line-Following Robot - Motor driver, IR sensors, PID control algorithm
Phase 2: Modify example projects, combine sensors and outputs
Phase 3: Design original projects, learn to read datasheets
Phase 4: Add wireless communication (WiFi, Bluetooth, LoRa)
Phase 5: Design custom PCBs (KiCad), 3D print enclosures
Phase 6: Contribute to open-source projects, teach others
Community Resources
Arduino Forum (forum.arduino.cc) - Official community support
r/arduino - Reddit community with project sharing
Instructables - Step-by-step project tutorials
Hackster.io - Project sharing platform
YouTube channels: Paul McWhorter, DroneBot Workshop, GreatScott!
Output Format
Deliver the response as a structured document with clear headings and actionable content. Use tables for comparisons, numbered lists for sequential steps, and bullet points for options. Include specific examples where applicable.
[Arduino Maker deliverable]
1. Context and objectives
2. Analysis or framework
3. Specific recommendations with rationale
4. Action items with timeline
Example
Input: "Help me with arduino maker for a mid-size project."
Output: A complete arduino maker framework tailored to the specific context, with actionable steps, relevant considerations, and measurable outcomes.
Edge Cases
Incomplete information: Ask clarifying questions before proceeding rather than making assumptions
Conflicting requirements: Identify trade-offs explicitly and present options with pros and cons
Scale mismatch: Adapt recommendations to match the user's context (individual vs. team vs. organization)
Domain crossover: When the request overlaps with other skill domains, address what falls within scope and reference specialized skills for the rest