1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-11-29 10:24:12 +01:00
Arduino/build/shared/examples/10.StarterKit/p03_LoveOMeter/p03_LoveOMeter.ino

85 lines
2.3 KiB
Arduino
Raw Normal View History

2012-10-12 19:23:48 +02:00
/*
Arduino Starter Kit example
Project 3 - Love-O-Meter
2012-10-12 19:23:48 +02:00
This sketch is written to accompany Project 3 in the
Arduino Starter Kit
2012-10-12 19:23:48 +02:00
Parts required:
1 TMP36 temperature sensor
2012-10-12 19:23:48 +02:00
3 red LEDs
3 220 ohm resistors
2012-10-12 19:23:48 +02:00
Created 13 September 2012
by Scott Fitzgerald
2012-10-12 19:23:48 +02:00
http://arduino.cc/starterKit
This example code is part of the public domain
2012-10-12 19:23:48 +02:00
*/
// named constant for the pin the sensor is connected to
const int sensorPin = A0;
// room temperature in Celcius
const float baselineTemp = 20.0;
void setup() {
2012-10-12 19:23:48 +02:00
// open a serial connection to display values
Serial.begin(9600);
// set the LED pins as outputs
// the for() loop saves some extra coding
for (int pinNumber = 2; pinNumber < 5; pinNumber++) {
pinMode(pinNumber, OUTPUT);
2012-10-12 19:23:48 +02:00
digitalWrite(pinNumber, LOW);
}
}
void loop() {
// read the value on AnalogIn pin 0
2012-10-12 19:23:48 +02:00
// and store it in a variable
int sensorVal = analogRead(sensorPin);
// send the 10-bit sensor value out the serial port
Serial.print("sensor Value: ");
Serial.print(sensorVal);
2012-10-12 19:23:48 +02:00
// convert the ADC reading to voltage
float voltage = (sensorVal / 1024.0) * 5.0;
2012-10-12 19:23:48 +02:00
// Send the voltage level out the Serial port
Serial.print(", Volts: ");
Serial.print(voltage);
// convert the voltage to temperature in degrees C
// the sensor changes 10 mV per degree
// the datasheet says there's a 500 mV offset
// ((volatge - 500mV) times 100)
Serial.print(", degrees C: ");
2012-10-12 19:23:48 +02:00
float temperature = (voltage - .5) * 100;
Serial.println(temperature);
// if the current temperature is lower than the baseline
// turn off all LEDs
if (temperature < baselineTemp) {
2012-10-12 19:23:48 +02:00
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
} // if the temperature rises 2-4 degrees, turn an LED on
else if (temperature >= baselineTemp + 2 && temperature < baselineTemp + 4) {
2012-10-12 19:23:48 +02:00
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
} // if the temperature rises 4-6 degrees, turn a second LED on
else if (temperature >= baselineTemp + 4 && temperature < baselineTemp + 6) {
2012-10-12 19:23:48 +02:00
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
} // if the temperature rises more than 6 degrees, turn all LEDs on
else if (temperature >= baselineTemp + 6) {
2012-10-12 19:23:48 +02:00
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
}
delay(1);
}