Has anyone ever upgraded their car's audio system, whether it's simple door speakers or subwoofers? Oftentimes these upgrades can enhance the driving experience and produce much clearer sound quality as well as louder volumes. Although these upgrades are a great addition to a vehicle, they may run into problems whether it's interference, distortion, poor connection, and overheating.
In this project, we are focusing on overheating. An audio amplifier will overheat when a speaker is pulling high power over a period of time. Amplifiers are rated by RMS (Root Mean Square) which simply means the average amount of power the amp can put out. Correlating the Ohms of the speaker used and the Ohms of the amplifier is crucial in achieving great sound. Although the speakers and amplifiers can be perfectly lined up, over time this creates heat a high constant volume. This high heat sends the amplifier into "protect mode" which shuts the amplifier down to prevent damage.
In this project, our goal is to monitor the temperatures of the amplifiers to understand when each amplifier will be sent into protect mode. Understanding this will allow us to reduce volume before the amplifier is sent in to protect mode, allowing us to prevent damage and continue listening to music.
Step OneThe first step in the project is identifying what needs to be accomplished. For example, I knew that I wanted to be able to know what temperature my amps were at to prevent damage from overheating, but I also wanted to see real-time updates of where the temperature was at.
Step TwoThe next task was to figure out what tools and devices I need to use to accomplish my goal. The project was given on the Particle Argon so I knew that would be the starting point.
I also knew that I wanted to measure temperatures that would range from freezing to very hot. An average amplifier will shut off around 80 degrees celsius so this was a starting point. I searched for the appropriate temperature device and came up with the TMP36 thermistor because of its temperature range of -40 - +125 degrees celsius range.
Lastly, a key component of all this was to see real-time updates of where the temperature was at. I looked at LCD and LED screens, but I wanted something small that didn't require many pins, so I went with an OLED 128x32 pixel display. Because of the small size and the small number of connectors, this was perfect.
The next step is to claim and set up the new Particle Argon so is able to be utilized to run everything. Setting up the particle is fairly straightforward and I will attach a video down below on how to do this.
Step FourThe next part is to start designing how everything will work together, and for this, I am using a soldier-less breadboard. I had to solder pins onto the OLED displays, but other than that, everything is plug and play. I started with the three-pin TMP36 thermistors. I needed to know the orientation of the pins, so I made a simple schematic to show. This is with the flat side of the TMP36 facing up.
The next part was soldering the pins into the OLED display. If your OLED comes with pins pre-installed, this step can be skipped. Again, I chose OLED because there are four pins, Ground, Power, SCL, SDA, respectively. The two connections are for display data.
Once you have all your parts together it's time to wire everything together. For simplicity, I took the power and ground pins from the Argon and connected them to the positive and negative rails that run the length of the board. This makes it easier because your OLED, and thermistor will need power and ground. Once all power and grounds are connected, the data on the thermistor and OLED needs to be connected to the Argon. In my case, I connected the argon to A0. I connected the SCL on the OLED to A5 and the SDA to A4.
Step SevenOnce these setup steps are complete, you are ready to code and read temperatures!
Two Way CommunicationThis is a simple video displaying how the first argon is sending its data to the second argon for backup as well as easy comparison. If you notice in the video, whenever the D7 blue LED blinks on the left argon, the right argon blinks right after. This LED signals a message being sent and received. You can also check the events section to ensure the data is being transmitted between devices. Examples of my code for multiple device communication is attached in the "Code" section below.
If you notice, after flashing, while plugged in, the particles will continue to transmit data back and forth.
If you notice in the second image, Temperature Data and Temperature Data 2 is being transmitted between both devices and both devices are responding to messages. This means that if I were to compare the temperatures of both amps over volume increase or time, I would only need to use one argon. Although both devices are receiving two sets of information, they will only display their OWN information to avoid confusion.
Temperature ReadingThe actual temperature of my room when recorded was 20.35 ˚C which was perfect because I have my thermostat set at 68 degrees ˚F which perfectly correlates.
For this set of data, I laid the thermistor on the surface of my laptop and it immediately started increasing which is a sign that everything is working in real-time.
Real TestsI first tested the thermistors on my laptop from aclosed idle temperature to doing intense work over five minutes. The results were satisfying because my laptop usually runs around 55-65 ˚C.
As of right now I am struggling to get the OLEDs to display the temperature. Everything is reading, writing, and converting into extremely accurate temperatures, but I am struggling with the simplest display code.
Comments