CIRC10 only works when you are connected to the serial monitor. Let's free your board from wires and make a free-standing circuit!
This is a bonus circuit!! We are going to make a free-standing alarm to alert us if it's too hot/cold.
One of the included parts in the Experimenter's Kit is the 9V battery clip.
If you have a 9V battery, snap it into the clip and plug the clip into the barel-jack of the Metro:
Our temperature sensor is now running off of a 9V battery. This is awesome, but we still have no way to be alerted of temperatures getting too hot/cold.
The Piezo element was first introduced in CIRC06. You send it digital output and it buzzes. Next up is buzzing the piezo when it exceeds a certain temperature. The Piezo can be used as an alarm with minimal modifications to the circuit:
Code for the temperature alarm is below (copy and paste it into a blank Arduino sketch), compile and upload it to your Metro:
/* CIRC10.5: Temperature Alarm
* (a bonus circuit for MetroX)
*
* by Brent Rubell for Adafruit Industries
*/
#define ANALOGREFVOLTAGE 5.555
// TMP36 Pin
int temperaturePin = A0;
// Piezo Pin
int piezoPin = 8;
// Freezing
float freezeTemp = 0;
// Boiling
float boilTemp = 26;
void setup()
{
// Start the Serial connection
Serial.begin(9600);
}
void loop()
{
float temperature = 0;
temperature = getVoltage(temperaturePin);
// Convert to degrees C
temperature = (temperature - .5) * 100;
Serial.println(temperature);
if(temperature < freezeTemp) {
tone(piezoPin, 1100, 1000);
}
else if(temperature > boilTemp) {
tone(piezoPin, 1100, 1000);
}
delay(1000);
}
float getVoltage(int pin) {
return(float(analogRead(pin))* float(ANALOGREFVOLTAGE/1023.000));
}
Changing the variables
We predefined freezing and boiling variables in Celsius, but if you want to use Fahrenheit (or kelvin just change the variables below to other values:
float freezeTemp = 0;
float boilTemp = 26;
Page last edited January 22, 2025
Text editor powered by tinymce.