My First Date with an Arduino

Isabel Ngan
hyperSense: Beyond the Invisible
4 min readSep 13, 2020

As an artist, I was physically building and creating as a way to create my pieces. Within work with engineers and computer scientists, I was able to lean on them to do more the technical heavy lift. This class is not only expanding my lived experience by thinking of design as a tool to engage with our senses to change the way we perceive our world but to lean more into the technical side of design.

Today was my first date with an Arduino.

First Meeting

First, I had to see what I was working with. The last time I saw an Arduino was from a distance when I was a senior undergraduate student. It was like a “passing in the night” moment, so I didn’t actually understand what an Arduino does or how to code it.

In the beginning, I was looking a bit confused as I starred at all these pieces thinking how am I suppose to connect all of these things? Nonetheless, here I was starring a new challenge in the face.

When I first plugged in the Arduino, I was just happy that it worked and that it was blinking and lighting up. After reviewing simple code and going through the first code overview video, I was less intimidated. It looks very similar to Javascript I had previously seen! So far soo good!

Initial Conversation

As I was looking at a glowing Arduino board and relatively simple code, I was ready to see if I could make the light on the Arduino blink at different speeds through the manipulation of delaying the next action.

It took me a while to figure out how to send the new code to the Arduino since I am so used to just saving my HTML/CSS/Javascript code and having it reflect on my screen almost immediately. Once I figured it out, I was on a roll! I was able to make the LED on the Arduino blink at different speeds!

The Dialogue

Now let's see if I can make an LED write words! First, I was able to connect the Arduino to my breadboard and create a circuit to light up the LED.

From there, I switch over the wires connected to the Arduino from the analog (with a constant 5V input) side to the digital side where my code could determine when to turn on the LED light. I tweaked the code and add additional patterings within my loop to create a light pattern that would write S.O. S (. . . _ _ _ . . .) in morse code.

The Conversation

Making the Adruino actually make noise was an interesting task: taking what I did with the lights and implementing it now with a buzzer. I always thought a buzzer has a standard tone, but understanding how to change in voltage alters the frequency of the output noise made me more curious to see what I could really do with just an Arduino and a buzzer.

After finding a simple song, and looking up the exact frequencies for the keys I needed, I was able to have my buzzer play the chorus of “Let it Go.”

Below is the code I used to play the chorus in a loop:

void setup() {
pinMode(13, OUTPUT);
};
void loop() {
/* F, G, G# */
tone(13,349.23);
delay(200);
tone(13,392.00);
delay(200);
tone(13,415.30);
delay(1000);
/* D, D, A# */
tone(13,311.13);
delay(200);
noTone(13);
tone(13,311.13);
delay(200);
tone(13,466.16);
delay(1000);
/* G, F, F, F, F, G, G# */
tone(13,392.00);
delay(200);
tone(13,349.23);
delay(500);
noTone(13);
tone(13,349.23);
delay(200);
noTone(13);

tone(13,349.23);
delay(500);
noTone(13);
tone(13,349.23);
delay(200);
tone(13,392.00);
delay(500);
tone(13,415.30);
delay(1000);
/* F, G, G# */
tone(13,349.23);
delay(200);
tone(13,392.00);
delay(200);
tone(13,415.30);
delay(1000);
/* D, C, A# */
tone(13,311.13);
delay(200);
noTone(13);
tone(13,523.25);
delay(200);
tone(13,466.16);
delay(1000);
/* G#, A#, C, C, C#, C A#, G#*/
tone(13,415.30);
delay(200);
tone(13,466.16);
delay(200);
tone(13,523.25);
delay(500);

noTone(13);
tone(13,523.25);
delay(500);
tone(13,554.37);
delay(200);
tone(13,523.25);
delay(200);
tone(13,466.16);
delay(200);
tone(13,415.30);
delay(1000);

};
/*
Note Reference
D: tone(13,311.13);
F: tone(13,349.23);
G: tone(13,392.00);
G#: tone(13,415.30);
A#: tone(13,466.16);
C: tone(13,523.25);
C#: tone(13,554.37);
*/

After playing around with the right frequencies and making sure repeated notes had distinct separations so that it sounds didn’t blend together, my code was a success!

Final Thoughts

I think my time working with an Arduino is starting out on the right foot! I am excited to explore different ways I can trigger an output, like utilizing motion detection, and to examine how I can incorporate more complex inputs and outputs to create a successful project that changes the way we thinking about temporality.

--

--

Isabel Ngan
hyperSense: Beyond the Invisible

Carnegie Mellon Univeristy MHCI ’21 || Northwestern University ’17 || Product-Service Designer