This week’s task was to make a smart circuit that can be controlled and has more than one action output. I decided to make a smart desk lamp with a built-in timer and LCD screen. The idea is simple: you can set a task duration with a potentiometer, and the lamp helps you track your time by counting down.
I care about this idea because I personally struggle with keeping track of how long I spend on tasks, and I wanted something that’s both useful and practical on my desk. The inspiration mostly came from study lamps and productivity timers like the Pomodoro technique.
For the design I used KiCad to make my circuit diagram since it’s more flexible than TinkerCAD.
Coding and uploading the code to the Arduino Uno was done using Arduino IDE
Materials and components used
Lightweight Plastic Hose for the lamp arm
Glue gun and glue sticks to fix pieces to cardboard
Sheesh Tawok sticks to add support and extend motor shaft
Plastic Food Containers for the base
Cutter to cut cardboard and sticks
Cardboard to make the chassis of the project
Electrical components
Arduino UNO – main controller for the project
Relay Module – to control the lamp
Potentiometer 1K ohm – used to set the timer duration
2ْx Push Buttons - to start and end tasks
LCD Screen (I2C) – displays task duration and countdown
Capacitive soil moisture sensor (as a touch sensor) – toggles the lamp ON and OFF
DC 9 Volt power supply - Power ups Arduino and control circuit
Buzzer – beeps when time is up or when a task is completed
Breadboard & Jumper Wires – for connections
Desk Lamp (through relay) – actual load being controlled
Arduino UNO
Relay Module
DC 9 Volt power supply
Jumper Wires
Potentiometer 1K ohm
Breadboard
LCD Screen (I2C)
Capacitive soil moisture sensor
5V Buzzer
Desk Lamp
The following are the steps to test each component before final assembly
Testing Soil Capacitance Sensor (as Touch Sensor)
In this test I connected the soil capacitance sensor to A1 and used Pin 3 to drive an LED.
The sensor value is read using `analogRead(A1)`.
If the value is between 200 and 400, it means the sensor is being touched → the LED on Pin 3 turns ON and the serial monitor prints “TOUTCHYYY!!”.
If the value is outside that range, the LED turns OFF and the serial monitor prints “no toutchy”.
This way I confirmed that the sensor was working and could be used like a touch input.
Test video for the touch idea:
Testing Potentiometer with LED
In this test I connected the potentiometer to A0 and used Pin 3 for an LED output.
The potentiometer value is read using `analogRead(A0)`.
The value is divided into 10 steps (0–9).
Each step is then mapped into brightness values (0–255) for the LED.
By turning the potentiometer, the LED brightness changes smoothly.
This confirmed that the potentiometer works properly and can be used to set a timer duration later.
Test video for the touch idea:
I first sketched out the logic of how I wanted the lamp to work: set a timer → start → countdown → alarm when done → option to reset early. Then I built the wiring diagram in KiCad and wrote the Arduino code to handle both the timer logic and the lamp control.
Circuit Documentation
The project uses a potentiometer to set the duration (between 10–100 minutes). Once you press the start button, the countdown begins and is displayed on the LCD screen.
The lamp relay can be toggled with a touch sensor, so the lamp can be turned on/off while the timer is running.
When the timer finishes, the buzzer sounds for a few seconds and the LCD shows “Time’s up!”. If the user presses the done button before the timer ends, it resets and displays “Task Completed!”.
Components Used:
1 × Arduino UNO – main controller
1 × LCD with I2C module – connected to SDA (A4) and SCL (A5)
1 × Relay Module (to control lamp) – connected to Pin 5
1 × Potentiometer (to set task duration) – connected to A0 input
1 × Touch Sensor – connected to A1 input
1 × Buzzer – connected to Pin 6
2 × Push Buttons:
Start Button → Pin 2
Done/Reset Button → Pin 3
Flow chart of the code:
Connections:
Ultrasonic Sensor
VCC → 5V on Arduino
GND → GND on Arduino
TRIG → Pin 7 on Arduino
ECHO → Pin 6 on Arduino
PIR Sensor
VCC → 5V on Arduino
GND → GND on Arduino
OUT → Pin 3 on Arduino
Servo Motor
Signal (yellow/orange wire) → Pin 0 on Arduino
VCC (red wire) → 5V on Arduino
GND (brown/black wire) → GND on Arduino
LEDs
Green LED #1 → Pin 10 (with resistor to GND)
Red LED #2 → Pin 8 (with resistor to GND)
Buzzer
Positive (+) → Pin 11 on Arduino
Negative (–) → GND on Arduino
Power Supply
Arduino powered by USB or 9V battery (through barrel jack).
Simulation of the circuit: (testing out the relay using avo meter)
Simulation of the circuit: (full electronics assembly)
I am so bad at doing cardboard, so I thought of making the base out of a plastic food container I had and used clue as well as sticks to make it stronger
Most of these steps ended up failing by the end due to my poor implementation, the thing collapsed under its own weight by the end
Demonstration video (works somewhat)
cardboard cardbaord boarddboarddddd:
my challenge seems to always make something that could be considered at least presentable. my issue is I cant imagine the design or the steps and sometimes even when I plan everything, things still fall apart
some examples:
this LCD i tried fixing with screws, cardboard and some glue
It seemed fine but still failed by the end due to the exterior failing
The head of the lamp:
I had the idea to turn one of old kitchen flexibly hoses into the lamp head, Also failed as I couldnt find it so I went with plan B which was to make it out of a normal hose.
also failed as the head had too much weight.
In short my mistakes could have been avoided if I took my time and planed things for what they needed to be used for not what I imagined them for.
Another issue I had was in the code, I had 130+ lines of code by the end, so searching on how functions work to make the code more readable was really helpful
Thankfully didn't need to do much debugging as I already made the important pieces on there own, and after making the flowchart I just followed it and it worked (without the cardboard)😂
Would minimize cardboard cuz i hate it 😶🌫️
We had