Hi! My name’s Annabel and I’m a rising junior at the Dalton School. My project was an SDP (student defined project), meaning I came up with the idea myself. I want to create this product to solve a problem: burns in the kitchen! My idea is a pot with LEDs going around the circumference that light up certain colors depending on the heat. It ranges from blue to yellow to red, where blue is cold, yellow is warm, and red is too hot to touch. With a pot like this in your kitchen, it’ll be much harder to burn yourself by accident!

Color Key (coldest to hottest)
The shades of blue are cold/room temperature.
Yellow and orange are warm but cool enough to touch.
Orange to red is too hot to touch.

colors in degrees Celsius (Fahrenheit in parentheses):
royal blue = 20.5 and lower (68.9)
light blue = between 20.5 and 23.9 (68.9 – 75.02)
teal = between 23.9 and 26.7 (75.02 – 80.06)
yellow = between 26.7 and 29.4 (80.06 – 84.92)
yellow/orange = between 29.4 and 32.2 (84.92 – 89.96)
orange = between 32.2 and 40.6 (89.96 – 105.08)
orange/red = between 40.6 and 48.9 (105.08 – 120.02)
red = greater than 48.9 (120.02)

Documentation

Code (Arduino file): final

Project Completed!

**it’s hard for cameras to capture LED light. At the beginning of the video, the LEDs are royal blue, and by the end they are orange/yellow (if the pot was hotter it would’ve gotten to red)
I’ve finally finished! Since my last milestone, I’ve made a ton of progress (and overcome many problems). Recap from my last blog post: all the circuitry is working and includes a breadboard. What I have done since then is make that circuitry more compact so I can put it on my pot. The first thing I did was remove everything from the breadboard and solder it all to a protoboard, which is essentially a small (2 by 3 inch) board with little holes in it so you can solder things to it. I set up the battery so it supplied power to both the Arduino and the LED strip simultaneously, and incorporated a switch so I could turn it on and off. Yet, I encountered a problem: if the Arduino was plugged into the computer, everything turned on and worked; but if was all just powered by the battery, nothing turned on. I tried to fix this by charging the battery, but that had no effect. I tested all my connections and voltage readings with the multimeter and nothing was wrong. And it still didn’t work!

So, I decided to start over. I de-soldered everything and got a new protoboard. I took new resistors and transistors and wires; the only parts I reused were the LED strip, the Arduino, and the thermocouple. The soldering was going well until I hit another road block. When I was trying to solder the battery to the Arduino, the battery’s wire wouldn’t stick to the pin on the Arduino. I realized that the contact for that pin had been melted away, probably from soldering and desoldering that pin too much. That pin was called the RAW pin, also known as Voltage In. It takes the voltage from the battery to power the Arduino. That pin is crucial because there is no replacement for it anywhere on the Arduino. Luckily, there was an unused Arduino Nano lying around, so I decided to use that. I revised my circuit to incorporate the Nano, but when I was trying to upload the code to the Nano, the computer was unable to find the USB (which connects the Nano to the computer). I figured out that I could solve this problem by installing a better VCP Driver. VCP stands for Virtual COM Port; it is what makes the computer able to recognize that there’s a USB plugged in. I installed the x64 for Mac OS X from this website http://www.ftdichip.com/Drivers/VCP.htm. Once I did that I was able to upload the code and it all worked!

Now that everything was working independently of the computer, the next step was to improve the code. I wanted it to go from blue to yellow to red (coldest to hottest), with smooth transitions to make it look more fluid. In order to do this I decided to use the “map” function. This is a type of linear interpolation, essentially taking two ranges and making them able to ‘talk’ to each other. I was using it to map the temperature range to the LED colors range. I spent a lot of time working on this code, but I could never get it to function properly. The code was telling me that it was printing a certain color, while the LEDs weren’t actually showing that color. Finally I decided that I could do this in a more efficient way by just writing a lot of “if statements”. If I had many if statements that made the colors go from blue to yellow to red (with some more colors in between) it would still look fluid and comprehensive.

After the code was complete, the next step was to get everything onto the pot itself. The tricky part was to do this without the electrical components getting too hot. I put all my parts (such as the Arduino, temperature sensor, and proto board) into a heatproof box. I drilled some holes in the box so I could expose the switch, LED strip and thermocouple wire. Since the LED strip is just waterproof and not heatproof, I needed a way to put it around the pot and not let it get hot. I used teflon tape to do this, because teflon is a substance whose chemical make up enables it to withstand high temperatures. I glued stripes of teflon tape to the pot and glued the LED strip on top of the teflon. The glue I used is also able to withstand high temperatures (550 degrees F). Then I needed to attach the box to the pot. I decided to put it under the handle. The box was very heavy, so the glue was not strong enough to hold it to the handle without reinforcement. So instead I took some thick, heat proof, coated wire and created a little basket like object out of my box. The wire was the handle of the “basket” and it was hanging off the handle. I did put some glue on top of the box to stick it to the underside of the handle for reinforcement. Then I painted the box a bit to make it look nicer for good measure.

This project still has a long way to go if it’s going to be a real product. What I would do is design my own pot so that the handle itself is made out of that heat proof material. This way I could put the electrical components in the handle and you wouldn’t even be able to tell they were there. I would need to find a very small and light battery that can supply power for at least 2 hours, preferably much more. The battery would be rechargeable and the pot would come with a way to recharge the battery. If the battery life was only 2 hours, the pot would have to be recharged often, so that option isn’t ideal. However, because the technology for small, long lasting batteries has not yet been developed, a battery with a short life span might be the only option. I would also want a way to embed the LEDs into the pot, rather than having them protruding from the surface of the pot. This would require an LED strip covered in heatproof and waterproof material. I also want the pot to be washable, which means it would have to be 100% waterproof. This is plausible because everything not waterproof would be in the handle, and any gaps could be closed with waterproof sealant. I hope I can actually achieve these goals in the near future!

Milestone 1 — check!

After a week and half of working on my main project, finally completed my first big step: the LED strip changes color based on the temperature! When it’s under 25 degrees Celsius, the LED is blue, and when it’s over 25, the LED is red. I had a lot of problems getting here. My first big problem was when I was setting up the LED strip. The best circuit that I found online used different transistors than I had access to, so I had to figure out a way to use the ones that I had. The problem was that their transistors were n-channel, whereas mine were p-channel. The difference between n-channel and p-channel is that the current flows in opposite directions through the transistor, so I had to rewire my circuit so that it went in the right direction as the current. Once I resolved this problem, I had the LED strip working and the temperature sensor working separately.

The next step was to connect both components to the Arduino so everything could work together. This was difficult because both components needed to use pins 3 and 5. And worse, pin 5 got fried while I was testing so I couldn’t use that at all. What was special about pin 5 was that it is a PWM pin. There are only a certain amount of PWMs on the Arduino board. PWM stands for Pulse Width Modulation. They are important because they make things able to cycle on and off; for example, they make LEDs able to have different colors and brightness. I moved the LED wire that was meant to go in pin 5 to pin 9 because that was also a PWM, but then I had no PWM pins left. This was a problem because one of the thermocouple wires needed a PWM. Then I realized that there was such thing as an Analog PWM (the ones I had been using were Digital PWMs). After doing some research I found out that they had the same effect, so I could use it. This solved the pin-5-is-fried problem. However, I still had 2 wires that both needed pin 3. Pin 3 is a PWM, so I gave it to the LED wire. Now I was really out of PWMs (digital and analog), so I had to see if the thermocouple wire that wanted pin 3 actually needed a PWM. I looked in the code that the thermocouple came with, and there was nothing that indicated a PWM function for that specific wire. Therefore I was able to just put it into a different digital pin, namely pin 7.

Now everything was connected, so all I had to do was write the code! Writing the code wasn’t hard, but I had a problem because my LEDs weren’t lighting up the colors I told them to. LEDs can take a color input of anywhere from 0 to 255. One side of the spectrum is totally off, and one side is fully on. I thought 255 meant fully on, so I told my LEDs to be 255 when I wanted them on. But this wasn’t working. Turns out that 0 actually meant on, and once I modified the code to reflect that it worked (aka showed the colors I wanted)! My next step will be to transfer everything from the breadboard to the permanent soldering board. Once that is complete and working, I will move on to figuring out how to heatproof everything and attach it to the pot.

Mini POV

Hello! My name is Annabel and for my starter project at Blue Stamp I made a Mini POV (which stands for ‘Persistence of Vision’). It’s a little gadget with a bunch of LEDs on it that light up in a certain order and frequency so that when the device is moved rapidly from side to side, you can see an image or line of text. It’s super fun to play with – I spent a decent amount of time just reprogramming it to show different words!

How it works: The whole point of this device is to get the LEDs to light up in a way that fools your eyes into seeing a line of text/image. LED stands for Light Emitting Diode — it’s essentially a tiny, plastic light. The LEDs on the device light up and flash extremely quickly so that you can see something when you move it quickly side to side. You can control which LEDs light up and the frequency at which they light up in the program that you write for it. Everything on the board is there to help the image-making process. There are 3 diodes on the board, which are essentially one way wires. They ensure that the current is flowing in one direction. There are also several resistors to limit the current and keep the voltage down. Resistors are measured in units of ohm; the specific ones I use are 4.7k ohm and 100 ohm. One of the most important parts is the microcontroller. This is essentially the “brain” of the device because it tells the LEDs what to do and how to light up so we see a message. The microcontroller comes with pre-programmed code on it so that the device knows what to do. The code is modifiable so you can make the Mini POV display whatever text or image you want. On the end of the board there is a serial USB port so that, with a serial to USB converter cable, you can connect the Mini POV to the computer. Once you modify the code and run the program, the information goes through the cable to the device, is processed by the microcontroller, and is then relayed to the LEDs so they can light up as directed. The whole process is powered by a battery pack which is connected to the board by two wires.

I encountered some problems in the code portion of my project. When I tried to call the “make” function, which compiles the program and uploads the program to the device, I kept getting an error saying that the “make” function doesn’t exist. I spent a lot of time trying to solve this problem. Eventually I switched to a different computer and went through the installation and setup steps again, and it worked!

If you’d like to make one for yourself, here’s a link to the kit: http://www.adafruit.com/products/20

Start typing and press Enter to search