Comforting Colors Engineering Cornerstone

Introduction: Comforting Colors Engineering Cornerstone

Our product combines multiple methods to reduce/help a mental illness of one. It is unique in a way that focuses its aspects to help a youthful audience. The clock-like device incorporates bright LED's, radio wired with an Arduino code, and emoji buttons to help our audience identify their current mood. Our brainstorming process required us to think critically about whether our previous suggested sketches met the criteria for our cornerstone project. Our peer's project sketch, Lizbeth, met the criteria we wanted in order to make our project possible which included the electrical, structural and mechanical aspect of it. We intended to make this project possible, not to 'solve' teen depression but to reduce or help teens cope with their emotions. It will also be an advantage for student counselors and therapist because it can help keep track of students' emotions.

Step 1: Materials

Our materials include Bright LED’s, Small speakers, Coloured wires, Breadboard Circuit board, Push Buttons, Foam-core, LCD screen Arduino (Kit), Soldering kit, and Emoji stickers.


Push Buttons-

Emoji Stickers-

(The rest of the materials were provided through Mr.Smith)

Step 2: Programming Diagram

The LiquidCrystal library allows you to control LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface.

Hardware Required
- Arduino or Genuino Board

- LCD Screen (compatible with Hitachi HD44780 driver)

- Pin headers to solder to the LCD display pins

- 10k ohm potentiometer

- 220-ohm resistor

- Hook-up Wires

- Breadboard

Before wiring the LCD screen to your Arduino or Genuino board we suggest to solder a pin header strip to the 14 (or 16) pin count connector of the LCD screen, as you can see in the image above. To wire your LCD screen to your board, connect the following pins:

LCD RS pin to digital pin 12

LCD Enable pin to digital pin 11

LCD D4 pin to digital pin 5

LCD D5 pin to digital pin 4

LCD D6 pin to digital pin 3

LCD D7 pin to digital pin 2

Additionally, wire a 10k pot to +5V and GND, with it's wiper (output) to LCD screens VO pin (pin3). A 220-ohm resistor is used to power the backlight of the display, usually on pin 15 and 16 of the LCD connector



LiquidCrystal Library - Hello World

Demonstrates the use a 16x2 LCD display. The LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface.

This sketch prints "Hello World!" to the LCD and shows the time.

The circuit:

* LCD RS pin to digital pin 12

* LCD Enable pin to digital pin 11

* LCD D4 pin to digital pin 5

* LCD D5 pin to digital pin 4

* LCD D6 pin to digital pin 3

* LCD D7 pin to digital pin 2

* LCD R/W pin to ground

* LCD VSS pin to ground

* LCD VCC pin to 5V * 10K resistor:

* ends to +5V and ground

* wiper to LCD VO pin (pin 3)

Library originally added 18 Apr 2008

by David A. Mellis

library modified 5 Jul 2009

by Limor Fried (

example added 9 Jul 2009

by Tom Igoe

modified 22 Nov 2010

by Tom Igoe

modified 7 Nov 2016

by Arturo Guadalupi This example code is in the public domain.

include the library code:#include // initialize the library by associating any needed LCD interface pin// with the arduino pin number it is connected toconst int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;LiquidCrystal lcd(rs, en, d4, d5, d6, d7);void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("hello, world!");}void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); // print the number of seconds since reset: lcd.print(millis() / 1000);} (THIS IS LINK WITH CODE ASWELL)

Step 3: Programming Pt.2

Pushbuttons or switches connect two points in a circuit when you press them. This example turns on the built-in LED on pin 13 when you press the button.


Arduino or Genuino Board

Momentary button or Switch

10K ohm resistor

hook-up wires



Connect three wires to the board. The first two, red and black, connect to the two long vertical rows on the side of the breadboard to provide access to the 5 volt supply and ground. The third wire goes from digital pin 2 to one leg of the pushbutton. That same leg of the button connects through a pull-down resistor (here 10K ohm) to ground. The other leg of the button connects to the 5 volt supply.

When the pushbutton is open (unpressed) there is no connection between the two legs of the pushbutton, so the pin is connected to ground (through the pull-down resistor) and we read a LOW. When the button is closed (pressed), it makes a connection between its two legs, connecting the pin to 5 volts, so that we read a HIGH.

You can also wire this circuit the opposite way, with a pullup resistor keeping the input HIGH, and going LOW when the button is pressed. If so, the behavior of the sketch will be reversed, with the LED normally on and turning off when you press the button.

If you disconnect the digital I/O pin from everything, the LED may blink erratically. This is because the input is "floating" - that is, it will randomly return either HIGH or LOW. That's why you need a pull-up or pull-down resistor in the circuit.


/* Button Turns on and off a light emitting diode(LED) connected to digital pin 13, when pressing a pushbutton attached to pin 2. The circuit: - LED attached from pin 13 to ground - pushbutton attached to pin 2 from +5V - 10K resistor attached to pin 2 from ground - Note: on most Arduinos there is already an LED on the board attached to pin 13. created 2005 by DojoDave modified 30 Aug 2011 by Tom Igoe This example code is in the public domain.*/// constants won't change. They're used here to set pin numbers:const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin// variables will change:int buttonState = 0; // variable for reading the pushbutton statusvoid setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT);}void loop() { // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. If it is, the buttonState is HIGH: if (buttonState == HIGH) { // turn LED on: digitalWrite(ledPin, HIGH); } else { // turn LED off: digitalWrite(ledPin, LOW); }}

Step 4: 3-D Printing Programming

In order to begin our project assembly, we were aware that we had to create/have an idea of our product's structure. Mr.Smith provided us with the proper materials to create our beginning design which began as a cylinder shape, but we realized that it wasn't as ideal as we had hoped, so we turned into an almost circular-sphere like shape (3D design) but then we also figured out that the cylinder shape would not have enough space for all programming boards, LEDs, and speakers to fit inside, and finally we established our last ideal design which was the wooden box which in the end worked out perfectly fine for buttons to fit inside as well as other materials.

Step 5: Final Solution and Reflections

Our product was initially supposed to incorporate several elements such as an aroma diffuser with essential oils, radio, music, and even a personal mantra. However, within the progress of our project, we had to establish the idea of being a little more ideal with what we were capable of accomplishing with the proper materials too, therefore, we concluded that we wanted to incorporate buttons, LEDs, automata as a mechanism, speakers for music, and personal breathing exercises for the mind.

Something that we overall took from the judges' constructive feedback was to look closely towards details and though we had no control over the incompleted portion (due to lack of parts we had accessible) we knew if we wanted to make a better product we had to make buttons accessible by dividing larger holes in our box, make the speakers work, reprogramming LED's/ button code for new and bigger box, and making the code sustain the LEDs for a while as well. Along with our product's electrical portion, we also hope to shape up our mechanism by 3D printing it and making it more presentable to the eye. A mistake that we did our first round was not presenting the project binder to the judges so they could see our progress and sketches, however, we have learned from that and that is a big takeaway as well.

Step 6: Sources

100+ Switches in a Single Pin of Arduino. (2019). Retrieved from

AFSP. (2019). Suicide Statistics. [online] Available at: [Accessed 2 May 2019].

EXTRAS: We initially needed RGB code, however, we got that to work as well.

We also needed to Connect button code with the RGB LED code and the sound system to work.

RGB LED Code Tutorial:

Be the First to Share


    • Game Design: Student Design Challenge

      Game Design: Student Design Challenge
    • Big and Small Contest

      Big and Small Contest
    • For the Home Contest

      For the Home Contest