Description of our project:
Our projects involve original work such as we have functions to display multiple LEDs blinking. However the LEDs don’t blink in a default way such as blink then off, but more so that they have a variety of functionality, such as the LEDs demonstrate breathing cycle, wave cycle, disco cycle or random cycle. There are two ways this functionality will be performed, one is using our voice where it’ll take our voice and translate into a string which then will be used to input into different functions to perform different functionality. The other is a button which will do things manually in case there is some kind of problem with the voice control. The button in this case is used as a backup and our main focus will be making the voice control as effective as possible. We also will display the name of these functionalities to the LCD screen on the top row, and the second row can be displayed to suggest the functionalities. We have also searched the internet looking for the exact project and guarantee that our project is original.
Discussion on how to build your project :
The project will be used for testing out the strength and weakness of a person's voice. Through string command or frequency. We will also be using a button switch to power up either the RGB strip or the RGB ring. The RGB strip will be used in the wave pattern and the RGB ring will be used in a circular pattern and both the RGB strip and RGB ring will be used for the disco pattern. Let use begin on the circulation connection.
Step 1: Downloading the voice frequency app using the Arduino IDE.
● By going to the arduino.cc website you can download the Arduino IDE software to your computer. Just make sure you select the correct software that works on your computer.
● Once you complete the Arduino IDE download, you must download our “voice frequency” program that can be uploaded to your Arduino UNO.
● Plug in the Arduino UNO into your computer using the given USB connector from ELEGOO UNO Project Super Starter Kit.
● Head into the “Tool” tab and select the appropriate Arduino UNO r3 and select the appropriate USB com, that will be either 3 com or 4 com.
● Then install the program by using the arrow button and wait until the download is complete.
● With an Android device you must download “Android Meets Robots!” in the google application store. The application is needed so that we can communicate with the Bluetooth adaptor.
● Chris Updates: This voice frequency app is not available in Apple’s store, and even though I connected the electrical wires correctly, the iPhone would not detect the HC-06 Serial Bluetooth Module. I included pictures below.
Step 2: Connecting the LCD 16*2 display, this should already be sadder.
This image is an example of how to properly install the LCD 16 x 2 display(Admin, p.3). The LCD 16*2 should be with a Potentiometer and a 220 ohms resistor, for LCD 16*2.
● Using a breadboard connect an LCD 16*2 display and the potentiometer. In this step no jumper wires are needed.
● Next use two jumper wires and connect one to the Analog 5v and the second to anyone of the grounds found on the Arduino UNO r3. One end of the jumper wires will be connected to the Arduino UNO r3 and the other end of the 5v jumper wire will connect to the positive side of the breadboard and the ground connector will connect from one end of the Arduino UNO r3 to the ground of the breadboard.
● The first thing we will connect is the potentiometer.
○ Face the one pin position close to the 5v line.
○ On the left line pin place a jumper wire from one end and the other end to ground.
○ On the right pin place a jumper wire pin from one end to the 5v on the other end.
○ Between the two pins place a jumper wire pin and on the other end of the pin place it near the RS pin associated with the LCD display 16*2. This part goes from left to right so the 4th pin on the far left.
● The second thing is to connect the LCD display properly to the Arduino UNO r3.
○ First, if you have not done so place, the LCD display on the breadboard. You might find it easier to install if you nstall it at an angle.
○Once properly installed follow the fourth step in potentiometer connection and connect jumper wire pin to close to RS pin. .
○ The GND , RW(read/write), and K(cathode) pins from left to right go to ground. Use jumper wires to connect each pin to ground.
○ The VCC and A(anode), from left to right, will be connected to 5v and the A(anode) will be using a 220 ohms resistor. The 220 ohms resistor will need to be connected to 5v first and then a jumper wire will be used between the 220 ohms resistor and the pin of the LCD display.
○ For other pins connections please look below and see which jumper wire will connect to what part on the Arduino UNO r3:
■ 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
Step 3: Connecting the switch button on to the breadboard:
● You may use the same breadboard for the connection of the switch button. Place the switch button properly onto the breadboard. Words of advice place it into the center where there is a gap and it will be much easier to install.
● Use a 220 ohm resistor and connect one end to the ground on the breadboard and the other end of the resistor to the pin on the right of the switch. Be advised whichever pin you use must be on the same side as the left pin that you want to use for the button switch. Use the Diagram of how the connection may look as an example. The switch button is on the right side of the LCD 16 x 2 display on the breadboard.
● Use a jumper wire to connect one pin end to the 5v on the breadboard and the second end to the left pin of the switch. The left pin should be the left pin closest to the 220 resistor.
● The last thing is to connect the switch button to the Arduino UNO r 3 digital pin 7 using a jumper wire. Place one end of the jumper wire to the Arduino UNO r3 digital pin 7 and the other end to the opposite right pin that does not contain the 220 ohm resistor.
○ If you would like to see the connection properly please look at the photo on the left. The photo displays the proper pins and connections needed when connecting the button switch to the breadboard. Also, it's ok if the button switch does not look like the one in the image. The image of a button switch can be found in the ELEGOO UNO Project Super Starter Kit once you purchase the kit.
For the next steps you will only need the breadboard for ground and 5v connection other than that the other three steps do not need a breadboard.
Step 4: RGB strip connection:
● First the connecting the center pieces of the RGB strip. ○ On the RGB strip connect the red pin to the red jumper cable and connect the other end of the jumper cable to the 5v Analog for the Arduino.
○ On the RGB strip connect the white pin to the black jumper cable and connect the other end of the jumper cable to the negative/ ground side of the.
○ On the RGB strip connect the green pin to any color jumper cable and connect the other end of the jumper cable to the Arduino digital 6 pin .
● Second connect the Alcohol 5V 8A 40W Power Supply and the converter transformer 5.5X2.5mm plug. You can do this by:
1. First take the red wire, not the red wire that is connected to the green center wire, and either use a pair of scissors or wire trimmers to remove part of the protected shell.
2. This will expose the wire and once it is exposed connect the exposed wires properly into the transformer converter, place it where it states +, and make sure to screw it in tightly. Make sure it is properly in place and that none of the exposed wire is showing.
3. Do step 1 and 2 for the white wire, that will be ground.
4. Attach the power adapter to the transformer converter and plug in the wire to the wall. If you do not see smoke then it was done correctly.
5. Once completed the test you may unplug the power adapter from the wall.
WARNINGS:
1. Beware if you purchase an adapter with 10A then you do not need the 2A that is associated with the Arduino.
2. If you see smoke coming from the transistor it means the wires were not placed in correctly. Please unplug the external adapter from the wall before trying to place the red and white wires properly in the transistor.
Step 5: Bluetooth adaptor connection:
● Using the Female to Male Pupont Wire (10pcs) we will connect four pins of the Bluetooth to four color wires next to each other. By doing so it will be easier for us to see which color pins are connected to the Bluetooth adaptor. Just follow which part of the Bluetooth adaptor goes where.
○ On Bluetooth adapter: VCC connects to Arduino UNO r3 : 3.3v.
○ On Bluetooth adaptor: Ground connects to breadboard: Ground.
○ On Bluetooth adaptor: RX connects to Arduino UNO r3 : digital pin 1.
○ On Bluetooth adaptor: TX connects to Arduino UNO r3: digital pin 0.
Discussion on how the project is to be used :
Before we begin our discussion, if you have not done so, please follow each step to connect each hardware component to its proper location on the breadboard and Arduino. Once everything is properly connected follow these steps to guide you on what our project is doing. Decide if you're going to press the switch button or will you be using the application on your Android device to communicate with the Bluetooth adapter.
Option 1 switch button:
If you decide to use the switch button, then once you press the switch button, the button_count variable will raise by one. Now depending on the value of button_count, either the RGB strip, WaveCycle function call, the RGB ring, CircularCycle function call, or both will light up, DiscoCycle function call. For instance, if the value for button_count = 3, then the DiscoCycle function will be called and both the RGB strip and the RGB ring will light up.
button_count results:
● button_count = 1 the WaveCycle function call that RGB strip will turn on.
● button_count = 2 the CicularCycle function call that RGB ring will turn on.
● button_count = 3 the DiscoCycle function call that turns on the RGB strip and RGB ring.
● button_count = 4 the RandomCycle function call that will allow a random function call between WaveCycle function through DiscoCycle function.
Option 2 Android app to Bluetooth adapter:
If you decide to use the Android device please make sure to download the application known as “BT Voice Control for Arduino” to communicate with the Bluetooth adapter .The application is used by capturing our voice and sending our voice as a string to the Bluetooth adaptor. So, for the most part, the pitch of our voice will depend on how high the frequency was transferred to the Bluetooth adaptor.
Step 1:
Once the frequency transferred from Android smartphone application into the Bluetooth adapter the frequency will be read in and stored into store_voice_frequency. The variable store_voice_frequency, stores an integer that was converted from the string/pitch of our voice.
Step 2:
The store_voice_frequency, as a string command, will be used in our function ReceivingVocieFromPhone().
ReceivingVocieFromPhone(Store_voice_frequency) results:
● Using “turn on disco”, will call the function DiscoCycle() and turn on the RGB 60 Led lights strip
● Using “turn on circular” will call the function CicularCycle() and turn the last RGB 30 Led lights on
● Using “turn on wave” will call the function WaveCycle() and turn on the first RGB 30 LED lights on.
The LCD display 16*2. Once again please make sure to connect the LCD display 16*2 on the breadboard with the proper Arduino connections. Once you have completed the proper connections, then you are ready to use the LCD display 16*2 The LCD 16*2 displays what is needed to print out for the user to know what is going on in the program. It will print out the name of our program and print out what will be turned on depending on if you use a switch button or the Android application, from string frequency to an integer that will determine what must be turned on. For instance, one of our print statements to the LCD 16*2 display is . lcd.print(” RandomCyle turns on “). As you can see there the way to print something out in the LCD 16*2 display is by using the lcd.print() and placing your string inside the two circular brackets. RGB 60 led lights strip and RGB 93 led lights ring .
Once again please make sure that both the RGB 60 led lights strip and RGB 93 led lights ring are properly connected to the proper Arduino Uno r3 devices. If they are both RGB 60 led lights strip and RGB 93 led lights ring to connect properly let me explain what they do . RGB led lights have the capability of altering coloration by using, (R = red = 0 through 255, G = green = 0 through 255, B = blue = 0 through 255). Depending on what number you choose will determine the colorations brightness. Zero means unused and anything greater than zero means some type of brightness. Now since we are aware of what RGB led lights do to receive color, we can speak about how they are being used in the code.
In our code the RGB 60 led lights strip use :
● RGB 60 led strip as a description.
○ #define wave_pin 6
○ #define wave_count 60
○ #define color__combination GRB
○ #define chip WS2812B
○ #define Bright 200 ○ #define Frames_per_second 60
● This sets up the coloration for wave pattern, circular pattern and disco pattern.
○ FastLED.addLeds(leds, wave_count); Arduino UNO r3 Before we can use anything from the list above we would have to make sure to connect the Arduino Uno r3 by using the USB cable and connecting it to your computer, to power up the Arduino Uno r3. The Arduino Uno r3 is used to connect every device that we will need to power up. If you would ike to know which device is connected to the Arduino Uno r3 and with what pin please return to the setup and see how all of our devices are connected to the Arduino Uno r3. For instance, many of our devices, like the Bluetooth and LCD 16*2 displays need the Analog pin 5v to power up. Therefore, it is important to have a working Arduino Uno r3.
New Project Hardware diagram :
Comparing the previous sketch from the new sketch:. The major differences are, we removed all the led lights from the wave and added a RGB led lights strip with a digital connection associated with 6. Another change is with the RGB LED strip we connected a converter transistor in the event that there is not enough power that is generated by the Arduino Uno r3.
Diagram of how the connection should look:
The diagram above shows the proper connection for every item we will be using in our project.
● Starting with the left we have a 16*2 LCD display with a potential meteor
● Next on the bottom we have our 60 RGB led light strip with a red and white wire that will connect to a Converter Transformer.5X2.5mm Plug.
● The top right has one item on the breadboard. The item is the Bluetooth adaptor.
● On the first breadboard, on the left, has a switch, next to the 16*2 LCD display..
● One thing we want to mention is, on this diagram we have a Converter Transformer 5.5X2.5mm Plug plugged into a power supply that will be attached to a 5v 8amps adaptor.
Discussion on how our project is to be used :
The project can be used in two ways to display the different functionality of the lights. One way is to use a button, so every time the button is pressed it will go in this order: wave, circular, disco, and random. The other way is to use voice recognition which is the main goal for this project. To do that first you’d have to connect to the Bluetooth and use a 3rd party software that is only available to the Android devices. Unfortunately for the iPhone, the connection is harder such that a connection between the serial Bluetooth and iPhone application might not work. Therefore, for Apple’s applications, the application is more limited such that there’s an option for voice recognition, but a typing of inputs, where the user needs to type in the functionality manually. Whereas, for the Android Users, they can use the voice recognition to turn different lighting functions like Disco lights, waves, and a bunch of other options to choose from. We also have an LCD, which will say which functionality is being used in real time.
List of Materials:
To receive most of these items purchase an ELEGOO UNO Project Super Starter Kit with Tutorial and UNO R3 Compatible with an Arduino IDE that contains a solder LCD display.
One Arduino Uno R3.
16 LED lights 4 different colors.
Hook up wires.
An LCD display
3 or more breadboards
2 or more switches
2 or more 10 k resistors, used for the switches.
WS2812B 5050 60 RGB LED strip.
WESIRI 93 LEDs 6 Rings WS2812B 5050 RGB LED Ring Lamp Light Individually Addressable Full Dream Color DC5V with Mini Controller.
Bluetooth adaptor
2 Female to Male Pupont Wire (10pcs). We will be using only 4 to 5 wires.
USB power cable.
10k ohm potentiometer
The app “BT Voice Control for Arduino”
An Android device
Aclorol 5V 8A 40W Power Supply AC/DC Power Adapter AC 100~240V to DC 5volt 8amps Converter Transformer 5.5X2.5mm Plug
2 220 resistors .
A set of jumper cables for power and ground. You may use any color if not red and black jumper cables are preferred.
A tiny screwdriver for the screws on the convertor transformer.
A wire trimmer or scissors
Our group would like to mention a couple of things that we used primarily in our code.
Since we did this as students at the University of Illinois at Chicago we would like to thank our Professor Professor They for all the labs throughout the semester. Every lab we did for class helped in some way in shaping our project.
Usable source:
○ The main usable source that our group found helpful was FASTLED created by Daniel Garcia. His Libraries were very useful on how to use our RGB 60 LED light strip. The example we used to inspire use, in creating WaveCycle(), CircularCycle() and DiscoCycle(), was Mirroring.
References:
1. Admin, Arduino. “LCD Arduino Tutorial - How to Connect LCD with Arduino.” Mechatrofice, 12 Oct. 2020, mechatrofice.com/arduino/lcd-matrix-interface.
2. Arduino.cc. 2019. Arduino - Softwareserial. [online] Available at: [Accessed 5 October 2020].
3. Arduino.cc. 2018. Button. [online] Available at: [Accessed 5 October 2020].
4. Arduino.cc. 2018. Scrolldisplayleft() And Scrolldisplayright() Methods. [online] Available at: [Accessed 5 October 2020].
5. .Arduino Project Hub. 2020. Arduino Frequency Counter With 16×2 LCD Display. [online] Available at: [Accessed 5 October 2020].
6. Burgess, Phillip. “Adafruit NeoPixel Überguide.” Adafruit Learning System, 30 Aug. 2013, learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-use.
7. Garcia, Daniel. “FastLED/FastLED.” Edited by Mark Kriegsman, Mirroring Sample , GitHub, 4 Sept. 2016, github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples.
8. Ladyada.net. 2020. Arduino Tutorial - Lesson 5. [online] Available at: [Accessed 5 October 2020].
9. Sabaa, Y., 2015. Bluetooth Control Led With Lcd Led Status Display Real Time.. [online] Arduino Project Hub. Available at: [Accessed 5 October 2020]. 10.Team, The Arduino. “String Case Change Functions.” Arduino, 11 Aug. 2015, www.arduino.cc/en/Tutorial/BuiltInExamples/StringCaseChanges.