Charlieplexed Binary Temperature Monitor

I'm very new to electronics prototyping and I bought my Arduino Uno about 2 months ago. I like this new hobby, for a Business IT student, it's the perfect way to see the result of your programming in a physical form without spending that ever so valuable little cash I have. The binary temperature monitor is my first real project. The needs behind the project were: display the temperature reading using an thermistor, do that with what resources I had available (10 leds) and finally migrate the project to an Attiny85 microcontroller.

First I thought about making an led matrix to display the numbers in denary, but after pondering for some time, I realized that 10 leds in whichever arrangement would not be enough to display numbers, not to mention double digits. Then came the idea of using two rows to display readings in binary. That seemed much better, 2 rows with 4 leds each, equaling to 8 leds total. Just enough for my led quota.

The next steps included:

  • converting the analog reading from the thermistor to degrees celsius (this was a real pain with my limited knoledge and the behavior of my component)
  • further converting the decimal reading to binary
  • laying out the leds and resistors
  • mapping the pin configuration into an array
  • creating loops and polishing the program for charlieplexing

At this point my project was working and with some adjusting here and there, I was rather proud of myself. However, I wasn't ready. I wanted to migrate the project to the Attiny85 I had bought mainly for the use of standalone applications such as this one. I thought that I'd understood the pin configuration of the Attiny85, but I was wrong, it took me quite a few hours to find out that in fact, digital pin 4 came before 3. Finally, I got the project working on the Attiny. Since then I've changed the 220ohm resistors for 820ohms and added a voltage divider to pull 3v from my 4x1.2v rechargeable AA battery pack, resulting in an battery life of at least 30 days of accurate readings.

At some point I want to etch my own PCB for this project to make it permanent. It's quite soothing to watch while the leds shift as the temperature changes. I suspect it also enhances my work tempo as a morale booster.
Thanks to all the Arduino community for all the help I found! I also hope that someone might benefit from this project. Also I'd like to hear if you've got some ideas on how to modify/improve the project.

http://m0rphs.files.wordpress.com/2012/04/binarytempreaderarduino.docx