Welcome to Max's Object Blog

This is the place where I will showcase my design process for my 2026 projects.

Project 1: Simple Circuits

Material list

  • Power Delivery Breadboard
  • 9v
  • Multimeter
  • Push button
  • 220Ω resistor
  • 100Ω resistor (in theory)
  • Red LED
  • Breadboard

For this first Lab we learned the basics of simple circuits. First I used my multimeter to test my 9V battery, I got a reading of 9.1V.

Multimeter reading of 9V

I then set up my power delivery board. I tested my left power line, and got a reading of 3.3V.

Multimeter reading right power rail I then tested the right 5V power rail, getting a reading of 5V. Multimeter reading left power rail

I have my own large electornics kit that I've used over the years and unfortunatley I only had a 220Ω resistor. Please forgvie me, I promise you im a circuit god. 3.3V divided by 220Ωs, this gave me 15mA which I knew was still above the forward current. I then wired up my circuit with the 220Ω resistor wired to the cathode and the ground line, I then used a jumper between the power rail and the anode.

Simple Circuit 3.3v Simple Circuit diagram

If we wanted to power the LED with a 5v source, with a goal of 25mA, then we would need a 200Ω resitor, this is perfect as the lowest resistor I currently have is 220Ω.

Simple Circuit 5v

Lastly, I switched back to the 3.3V circuit, then added a button in series to control the power flow.

Extra Volt

For this I created a circuit that would naturally power the LED, and then I added a button in parallel so that when pressed, the circuit 'shorts' and the power goes through the button instead. The opperator this demonstrates is the ! not operator.

Project 2: React-I/O-n

Part 1:

Before I started this project I made sure to Ground myself as I shocked myself earlier today on a door. Thankfully my arduino has a plastic base so it can't be shorted on a metal surface. I already have the IDE downloaded so everything was set up. I plugged in my Arduino UNO R4, updated my libraries, then selected the right board. I then opened the blink example and uploaded it to my arduino

Part 2:

Material list

  • Arduino Uno R4
  • USB-C Cable
  • Breadboard
  • 220Ω resistor
  • LED
  • Multimeter
  • Jumper Wires

Now I want to make an external LED blink. I chose pin 10 and set it's pinmode to output. I then wrote my loop so that it sets pin 10 to high for a second, then to low for a second. I then started to set-up my circuit, I chose a Red LED and connected it's cathode to the ground via a 220Ω resistor. With my arduino unplugged, I connected the ground pin to my breadboard's ground line using a jumper wire, I repeated this with the 5v connections. My last step was to connect the Annnode to the power rail, I did this, then uploaded my program. Once it was uploaded I realized my silly mistake, I had connected the LED to the Arduino 5v line, when in reality it should've been pin 10. I swapped the pins and everything worked!

Simple Circuit 5v

I then decided to make a shorter, uneven blink. I decided to have pin 10 stay high longer than it was low. I set the low delay to 500ms, this wasn't super noticeable so I reduced to to 100ms.

Part 3:

Material list

  • Arduino Uno R4
  • USB-C Cable
  • Breadboard
  • Button
  • 220Ω resistor
  • 10kΩ pull-down resistor
  • LED
  • Multimeter
  • Jumper Wires

Now we need to add an input method to control this LED through button press. Based on the diagram in our lab document, pin 7 will normally be 0V as it's pulled down to ground, but due to the extreme resistance, whenever the button is pressed it will go to 5V. I will use this to control the LED. If we didn't have a connection to ground, then the pin will be floating and will pickup random electrical interference. Additionally, if the button loop had no resistor in series, then it would easily short circuit and generate a ton of heat. So for my setup, I connected the button to pin 9 and to ground through a 10kΩ resistor. I then connected the 5V rail to the other side of the button. For the LED, I connected the cathode to ground through a 220Ω resistor, and the anode to pin 10.

Simple Circuit diagram Simple Circuit 5v Simple Circuit 5v

I then wrote the code so that each loop we check the state of the button and then apply it to the LED via pin 10. I had to set pin 9 to input so we can detect the button state. I then used digitalRead(9), to get the pin state and then used digitalWrite(10, buttonState) to set the LED state. I also added some print statments to print the button state just to make sure everything was working. I made sure to add a slight delay to my loop to avoid any bugs. unfortunatley when I uploded the code the LED was on which shouldnt be the case, I added some print statments to give me an idea of what section of the if statment I was in. After this I realized that I was passing the pin number to the if statment, rather than my pinState bool which I only intialized. After fixing this my circuit worked perfectly!

For the serial output part of this assignment, I chose to print the message "hiii prof" to the serial monitor. At first I used a lowercase 's' in Serial so it didn't work but after fixing this it worked perfectly.

Simple Circuit diagram

I modified my intital code and instead nested my pinState detection within a while loop, this ensures that waiting is only printed once.

I noticed that the button oscillates when I press it once, this is due to the speed that we check the button state, how long im holding the button and the fact the program loops as soon as a press is detected. If I added a variable that checks if the button has been pressed, then i can apply that so that I stay within the while loop.

Part 4:

I now need to program a game in which an LED will turn on after a random time interval, the player will try to press the button as soon as they notice. I setup my program so that it welcomes you within the setup, then inside the loop is all my game round logic. I've used random before so I chose an empty pin to generate a random seed. Once the game prints ready, the timer starts, once the timer ends the program imediatley turns the LED on and then enters a while loop that will detect each buttopns state and will only terminate when the button is pressed. Once a button is pressed, the while loop will exit. The program then prints the total milliseconds it took for you to react to the LED. Lastly, the program waits 5 second and starts another round/loop. I ran into two problems after finishing the draft of my code, I called my random seed in my loop which caused the random seed to restart and call the same number. My last error was that I had my startTime and millis() swapped causing an overflow error. once I fixed these my game worked perfectly, I got a little to into it...

Extra Volt

Material list

  • Arduino Uno R4
  • USB-C Cable
  • Breadboard
  • 2 buttons
  • 220Ω resistor
  • 2 10kΩ pull-down resistor
  • LED
  • Multimeter
  • Jumper Wires

The first thing I modified for this was adding distinct variables which held the button state variables. I also removed the mechanism for tracking how much time the reaction was. Once either button has been pressed, the while loop exits, then an if statement checks which button was pressed and prints a message congratulating the relevant player. The program then waits 5 seconds before starting again. At first, I thought I had messed my code up, when in reality I had misaligned the power rail with the player 2 button. Once fixing this the game worked and me and my roomate faught while playing it.

Simple Circuit diagram

Project 3: I Came, I Saw, I Soldered

Part 1:

Material list

  • Two solid core wire
  • 1 short stranded wire
  • 1 long stranded wire.
  • Soldering Iron
  • Exhaust Fan
  • Solder
  • Flux
  • Proto-board
  • Wire-cutters

For this project we Soldered in the BTU, I used my own Fnirsi Soldering Iron rather than the ones provided. Personally I didnt use a solder sucker as I find them annoying to use.

Photo of soldering station setup

I have soldered many, many times before, I've even done console mods, here are my go to saftey steps.

Safety list

  • Make sure the Iron is in it's holder before you turn it on.
  • Grab the Iron only by it's handle.
  • Keep iron on stand when not in use.
  • Keep an extractor fan on
  • Wash hands after soldering
  • Don't eat or drink near solder station
  • Always wear saftey glasses
  • Breadboard

Part 2:

I've soldered to protoboards many times before, I've ruined many protoboards as well. I tinned my soldering iron, so that it would remove the oxidation on the tip.

Photo of tinned soldering iron tip

I set the solder station to 330C, turned on the exhuast fan, then stripped my stranded wire leaving about 2mm of exposed wire, I twisted the strands together pulling them tighter, it was kind of annoying to get it through the holes of my protobopard but once I did I bent the wires flush to the board. I then added solder to my iron and touched the tip to the wire and the protoboard joint. My first joints were fine, but my solid core joints all looked perfect. Solid core was pretty much the same process besides twisting the wires, I tinned my iron then held it against the pad for about 3 seconds and my joints looked perfect. I definitley think that solid-core was easier in this situation.

Photo of 6 through hole joints Photo of 3 wire  loops

Part 3:

I've made bridges before, they werent the easiest in the beginning but I found using a bare solidcore wire as a guide was the best solution for me. My wries were soldered far apart, so to make it easy for me, I used a solidcore wire for the long one, and then did standard solder blob bridges for the two short leads.

Photo of 3 bridges

Part 4:

I've spliced many wires together, I got my start soldering with installing car radios. For this I just twisted the wires together, tinned my iron, and then held it to the twist for about 3 second, I repeated this for all segements of the wire.

Photo of 1st joint Photo of 2nd joint Photo of 3rd joint Photo of 3 splices

Extra Volt

Material list

  • Soldering setup
  • Double Pin Header
  • 220Ω Reisistor
  • Red LED
  • Small Protoboard

I only had 15 minutes left in class so I rused into getting this done, I pushed my pin headers into the rubber matt, this held them in place perfectly so I soldered them to the protoboard. After this I decided to solder my resistor, I messed up the first time and soldered on the wrong side, this wouldnt have been a problem but I kinda forgot you need to CONNECT the joints... so I redid it in a way where I was able to solder it right throguh the pin header, I then soldered in the LED so that one of it's legs was connected to the pin header through the resistor and so that the other leg was connected to a bear pin header.

Top photo of soldered circuit Bottom photo of soldered circuit

Project 4: Whack-A-MoLED

Material list

  • 5 assorted LED's
  • Arduino Uno
  • Potentiometer
  • 5 220Ω Resistors
  • Breadboard
  • Jumper Wires
  • Analog Joystick Module

Part 1:

For this project we started exploring analog input. We started by connecting the fixed ends of the potentiometer to power and ground, then I connected the variable pin to an analog input pin on the Arduino. I then uploaded ReadAnalogInput to my arduino and observed the values changing as I turned the potentiometer.

Schematic of potentiometer circuit Photo of arduino connected to potentiometer

I then used analogRead to create my own sketch. I put the read and a print statement in my code to see the values change in the serial monitor. I had to set my serial monitor to 115200 as I was using an r4.

Part 2:

I then used the potentiometer to create an interactive LED visual. I wired my LED's so that theyre individually controllable and each have their own resistor. I kept my arduino wired to the potentiometer and used the analog input value to control the brightness of each LED.

Photo of breadboard with 5 led's connected

We use map to convert our analog input to a more manageable range for controlling which LED is on. Our Y min should be 0, if we want each LED to be controlled, at minimum our max should be 5 giving us 6 possible combinations. I created a sketch that checks the pot value every loop, ever checking this value, we convert it to a value between 0 and 5 to control which LED is on with the map() function. On first attempt 4/5 LED's worked, my function was struggling to hit the max value of the ADC so i bumped the max down by about 5. I fixed this, then realized I needed a way to turn the LED's off, and I needed 6 possible states with all LED's off. I modified the map function and added a loop to turn off LED's that shouldnt be active. I made those changes and everything worked smoothly after.

Part 3: Joystick for Arudino

To set up my joystick I followed the wiring diagram in canvas. GND -> GND, 5V -> 5V, the SW to a digital pin. and the variable pins to analog input pins on the Arduino. I kept my LED array as original but removed the potentiometer. I used A0 and A1 for the X and Y values respectively.

Photo arduino connected to joystick

I modified my function to include a print statement for the X, Y, and button positions. Initially I wasn't getting anything for the joystick (I assumed it had a built in pull-up). I modified my function to use an internal pull up. When that worked the output was flipped so I used a ! operator to correct. When the joystick is centered, the values are 512 for both X and Y which is the midpoint of our ADC range, and 0 for the button.

Position X-Value (VRx) Y-Value (VRy)
Center (Home) 512 510
Up 512 0
Down 512 1023
Left 0 510
Right 1023 510
Top-Right (Diagonal) 1023 0
Top-Left (Diagonal) 0 0
Bottom-Right (Diagonal) 1023 1023
Bottom-Left (Diagonal) 0 1023

Part 4: LIGHT EM UP WITH A JOYSTICK

I rearranged my LED's Into a plus sign formation. I kept the joystick wired to my arudino. Before I could start making the sketch, I needed to figure out which pin controlled which LED, I made a short program to cycle through each LED until I knew which was which. up was 4, down was 5, left was 6, right was 3, and middle was 2.

Photo of LED's in plus formation.

Now I could program the maping logic. I set up two if statments for the vertical and horizontal movement, and a small if for the center position. I then noticed that while my directions logically made sense, one of them was flipped. I fixed the logic and the joystick now controls the LEDs correctly

Part 5: BASIC LED WHACK-A-MOLE

For the final part, I kept my breadboard the same, but made a new sketch for my game code. I used my code from the previous part to create my moleWhacked function, this function tracks if the joystick is currently in the position of the mole, if so we move on to the next random light. It does this within a for loop 20 times until the game ends. After this, it prints the time it took to whack all 20 moles. I had a bug at first where my up input was instantly hit every time, this was due to the middle point not being perfect. I widened my map to 10 points instead and icreased the interaction threshold. After this the game worked perfectly.

Project 5: Revenge of the Synth

Part 1: wiring up the RGB LED

RGB LED's are a bit different than common two pronged LED's. RGB have 4 pins, and either a common cathode or a common anode. The one in our kit uses a common cathode/common ground. I've used a variety of differnet LED's and I can't recall a signle time where 220Ω didnt work, so I started with a 220Ω Ohm resistor. At first I thought I would be able to use one resistor on the common cathode, I looked up what the best aproach was, and it was stated to balance the current across each pin, it's best to put resistors on the annodes. I noticed the red one was a bit dimmer than the rest, I wasn't sure of the exact moddle so I couldnt determine the forward voltage, so I swapped red to a 150Ω Ohm resistor and the brightness seemed equal.

Schematic of RGB diode and Arudino. Photo RGB diode on breadboard

I then modified the example code to control the brightness of each LED. The sketch below is an example of how I produced one of the colors.

Photo RGB showing blue color Photo RGB showing red color Photo RGB showing green color Photo RGB showing yellow color

Part 2: Dynamic color changer w/ joystick

For this part I kept my RGB LED wired the same, but I added the joystick from our previous lab to my breadboard. I wrote some debugging code to see if my analog values and mapped brightness looked right, but I noticed my Y values werent reaching the max of 1023, as I kept looking at it, I noticed the Y values were never steady, always varying randomly, this is how I knew the pin was floating, I checked and I had accidentally swapped analogY with the joysticks push button. I swapped the wires back and my analog reads looked much better.

Part 3: Musical notes with passive buzzer

When I was in geen1400, my first mini-project used an ultrasonic sensor, a servo, and a passive buzzer as a rubegoldberg step, when it succesfully passed my buzzer played hotline bling. I wired my passive buzzer to the GND and a digital PWM pin on my arduino. Connected the positive pin to a digital pin and the negative to ground through a 220Ω Ohm resistor.

Passive buzzer photo

I then modified the example code to play a note at 440Hz instead and to stay off for a second after buzzing.

Ive used the pitches library before so I already had it downloaded but I downloaded the new version anyways. I moved the header file to the same folder as my part 4 sketch.

Passive buzzer photo

I then modified my old sketch to utilize the pitches.h library and choose to play note CS1

Part 4: Melody from the buzzer

I utilized the example code to recreate the melody from the table, once I uploded my code I imeditaley noticed it was the death star theme.

Lastly, I made my own melody and converted it into arduino code. I didn't go crazy, it's a lil short but I like it. Im in sound right now so I made it in ableton first then trasncribed it into code.

Note Duration Dotted
C4 1/4 No
G3 1/8 No
G3 1/8 No
A#3 / Bb3 1/4 No
G3 1/4 No
Rest (0) 1/4 No
B3 1/4 No
C4 1/4 No
C4 1/4 No
C4 1/2 No

Project 6: Fine Motor Control

Material list

  • Power Delivery Breadboard
  • 9v
  • Arduino Uno R4
  • Push button
  • Servo motor
  • l293D motor driver
  • Potentiometer
  • Breadboard
  • Blade and motor
  • Jumper wires
  • Resistors

Part 0: Setting up power

For this project I needed to set up my breadboard first, we need extra power for motor control so I added a power module with a 9V battery

Power delivery breadboard photo

Part 1: Wiring this servo

On my arduino R4, pins 3,5,6,9 and 10 have a ~, meaning they're PMW compatible. I connected my servos digital pin to pin 3, then I wired 5V and GND.

photo of servo wiring

I then connected an arm to my servo, I've used the Servo Library before so I already had it installed.

Screenshot of servo library

Now that everything was set up, I uploaded the Labs example code to my arduino. Initially, I thought my servo was broken as my power delivery board looked to be working perfectly, I felt the servo trying but not moving so I had assumed I broke it with my last project. I had a friend give me her servo so I could test (hence why this is late) and her's also didn't work... I switched 9V and, guess what?

Part 2: Controlling the servo

Now my goal was to control the Servo with a potentiometer. I wired my servo to the 5V, GND, and an analog pin for the wiper.

Photo of potentiometer circuit

I used analogRead() and map() to read the potetiometer value and map it to the servo's position. Now the servo moves as I turn the potentiometer.

Next, I wanted to control the speed of a sweeping servo with a potentiometer. I used the first example code and modified it to map the potetiometer values to 5-50ms.

Part 3: DC Motor and motor driver

For this part I got my DC motor from my kit (zoe's kit) and plugged it straight into the voltage lines. It spun at full speed

Photo brsuhless motor connected to driver module

I then got a L293D dc motor driver to control the motor. The wiring was a bit annoying but I got everything set up. when i first tested it, I assumed it was working.

Photo brsuhless motor connected to driver module

But after I used the example code and finsihed writing the backward() function. I tested and saw that my fan would only spin when the forward function wasrunning, this led me to notice I wired one of the wires wrong yet somehow my fan was stillg grounded. I moved it over and it worked perfectly

I then added two more functions to the example code following the provided instructions.

Part 4: Table-Top Fan

To create a mini desktop fan, i grabbed a bendable wire and twisted it around the brushless motor and the servo arm.

Photo of zip tie motors

I then wired everything back into our original circuit.

motor fan connected to circuit

Lastly, I needed to write an arduino sketch to move the servo slowly back and forth, and keep the DC motor at 70% speed. To get 70% speed i set my analogWrite value to 178 (70% of 255).

Project 7: Processing

Part 0:

I've never used processing before so I had to download it for mac. I read the tutorial and got started.

processing open on my computer.

Part 1:

For the first part I copied the example sketch into processing and ran it. It worked perfectly.

I then modified the sketch so that the eliptical is brown and the ellipse was wider.

Part 2: Processing With Arduino

I wired up my joystick like in lab 2. I forgot to take a good photo, so this is the photo of my later circuit.

Photo of joystick wiring Fritzing diagram of joystick wiring

I wrote a basic sketch to read the analog and digital values then print them in the format provided. At first I wasnt getting the right values, everything was super low. I tried it with the processing sketch i modified, I couldnt figure out the port at first, I tried com5 and 5. But then I read it has to be the exact port name, once I did that i saw i was unable to modify my ellipse fully. I unplugged ground and the values became super random e.g. floating, so the ground wasnt the problem, unplugging the 5v line changed almost nothing, i tested the wires i used and one was no longer conductive of course. After I confirmed my arduino sketch worked, I closed the serial monitor and attempted to connect processing with the arduino.

Part 3: Creating your own visualization.

At first I just modified the initial ellipse sketch. I added an ultrasonic sensor, Potentiometer, and kept the joystick. I modified the pot to be the color, the sensor distance as size, and the joystick click as a "dont clear" trigger.

I then found a really cool example of a 3d cube, it looked simple so i modified the code to change the cube aspects with my inputs.

Example Sketch:

Arduino Sketch:

Processing Sketch:

Extra Volt

Extra Volt description coming soon!

Project 8: Project Title

Part 1:

Project description coming soon!

Extra Volt

Extra Volt description coming soon!