I haven’t worked on the Tri-Temp project in a while. I am going to go through and update the code a bit to lower the memory usage based on what I’ve learned for the LCC projects.
The original LCC code will have an update posted soon too. Mostly memory updates and a few control changes. I wasn’t sure if I wanted to bother but since the original LCC is still running my lizard’s climate I figured why not.
I’ve started on LCC 2nd Gen or LCC2 or LCC II. I don’t know what to call it. BUT I do know it’ll be killer.
This one is going to be everything LCC 1 was not.
So far I have:
- 64 GPIOs
- A better RTC
- 2 OLED displays
- The RTC can be updated via serial — no need to upload code to the Arduino, update the clock and then reupload the LCC code!
- More cool factor….
So check this out- I2C rocks! The awesome Centipede Shield from macetech.com is HUGELY awesome. Via the I2C 2 wire interface you now have access to 64 Digital ports. In any combination of In or Out. This is the cornerstone of the new LCC hardware. Especially since the Ethernet takes a lot of digital ports. This thing is way cool. If you need more digital ports get one asap.
The OLED displays are really neat. I got 5 from a Kickstarter project and they’re now generally available from Sabernetics Tech. They’re tiny and bright! Since you now have 64 ports you can have as many of these displays as you want. Just put each on its own port to select which one to write to…If you don’t you’ll write to them all at once! Gotta love bus networks (I2C).
I hope to make the LCC’s ability to control lights and heat sources more generic. Since the IO is so plentiful I can make the code generic enough to handle fans, heat mats, uv lights etc in different combinations.
Keep checking the site as I post updates about this project!
Below the break is revision 4. Read the comments in the code. I’ll post a formal description of the software’s behavior soon.
Continue reading “LCC Code v4”
I haven’t published my code for this project yet. Mainly because it’s dangerous and not totally tested. Here’s what I mean:
This software controls the environment of a living thing. Failure of the software can cause death. I’m not ok with that. For example- last night I had an over heat condition. Because of a badly written IF statement, the corrective actions never executed. Thankfully I was home!
I am in the process of re-writing the code to simplify the corrective actions and to provide more debug information. Arduino doesn’t provide ANY error trapping/reporting so testing has been more difficult than I’d prefer.
I hope to have a viable and tested code base to publish this weekend.
I just hope my lizard doesn’t mind the flashing lights while I’m testing…. 😉
After a long wait here’s version 2.0 of the Tri-Temp Standard code. What changed? Lots.
- Button response is now very very fast.
- Button to toggle C/F temp measurements
- Temp reading is updated by interrupt timer. Approx every 5 sec.
- Code is documented
- Two new libraries needed – avr/interrupt.h and TimerOne.h
Here’s the code:
Continue reading “Tri-Temp Standard Code v2.0”
The TMP36 was my first sensor and is pretty simple. 3 pins, 1 analog port.
Available from SparkFun.
It’s a low voltage temperature sensor. It provides a voltage output that is linearly proportional to the Celsius temperature. It also doesn’t require any external calibration to provide a typical accuracy of ±1°C at +25°C and ±2°C over the −40°C to +125°C temperature range. Give the it a ground and 2.7 to 5.5 VDC and read the voltage on the Vout pin. The output voltage can be converted to temperature easily using the scale factor of 10 mV/°C. For Example:
Continue reading “TMP36 Analog Temperature Sensor”
This is the first version of the Tri-Temp code. If you find any errors or add any features let me know so I can update it. Continue reading “Tri-Temp Standard Code v1.0”
This was the first code I found to make my Arduino Ethernet do something via a web browser. I was so excited. My microcontroller could talk via ethernet!
Continue reading “Basic Web Server”
This example shows the code to control a servo on digital pin 2 via a potentiometer on analog pin 0.
You can change the pins around via the variables in the beginning of the sketch.
Continue reading “Code to Control Servo via Potentiometer”