Schritt 3: Code
Der Code
/ * "Die magische Stimmung Crystal Ball"
Dumme Haustier Trick-ITP 2011
*/
TMP36 Pin-Variablen
Int TemperaturePin = 0; Eingabe: die analogen Pin des TMP36 verbunden
RGB LED-pins
Int LedDigitalOne [] = {9, 10, 11}; Ausgabe: die drei digitale Stifte der RGB LED
9 = RedPin, 10 GreenPin, 11 = BluePin =
const boolesche ON = LOW;
const boolesche OFF = hoch;
Vordefinierte Farben
const boolesche rot [] = {ON, OFF, OFF};
const boolesche grün [] = {OFF, ON, OFF};
const boolesche blau [] = {OFF, OFF, ON};
const boolesche gelb [] = {ON auf OFF};
const boolesche CYAN [] = {ON ON OFF};
const boolesche MAGENTA [] = {ON, OFF, ON};
const boolesche weißen [] = {ON, ON, ON};
const boolesche Schwarz [] = {OFF, OFF, OFF};
void setup()
{
für (Int ich = 0; ich < 3; i ++) {}
PinMode (LedDigitalOne [i], OUTPUT); Legen Sie die RGB-LED-Pins als Ausgänge
}
Serial.Begin(9600); Starten Sie die serielle Verbindung mit dem computer
}
void loop()
{
Temperatur zu schweben = getVoltage(temperaturePin); immer die Spannung aus der Temperatursensor lesen
Temperatur = (((temperature –.5) * 100) * 1,8) + 32; Konvertieren von 10 Mv pro Grad Wit 500 mV Versatz
Int NewTemperature = Temperatur; Grad ((Volatge-500mV) mal 100)
Serial.println(newTemperature); Das Ergebnis drucken
Delay(7000); Wartezeit von 7 Sekunden um ein neues Ergebnis zu erhalten
Legen Sie die drei LEDs auf einer vordefinierten Farbe abhängig von der Temperatur in º f
Wenn ((newTemperature>40) & & (NewTemperaturesetColor (LedDigitalOne, schwarz);
Serial.println("Black");
}
ElseIf ((NewTemperature > = 72) & & (NewTemperaturesetColor (LedDigitalOne, weiß);
Serial.println("White");
}
ElseIf ((NewTemperature > = 74) & & (NewTemperaturesetColor (LedDigitalOne, grün);
Serial.println("Green");
}
ElseIf ((NewTemperature > = 76) & & (NewTemperaturesetColor (LedDigitalOne, CYAN);
Serial.println("Cyan");
}
ElseIf ((NewTemperature > = 78) & & (NewTemperaturesetColor (LedDigitalOne, blau);
Serial.println("Blue");
}
ElseIf ((NewTemperature > = 80) & & (NewTemperaturesetColor (LedDigitalOne, gelb);
Serial.println("Yellow");
}
ElseIf ((NewTemperature > = 82) & & (NewTemperaturesetColor (LedDigitalOne, rot);
Serial.println("Red");
}
Else {}
SetColor (LedDigitalOne, MAGENTA);
Serial.println("Magenta");
}
}
{GetVoltage(int pin)} zu schweben
zurück (analogRead(pin) *. 004882814); Konvertieren von verschiedensten 0 bis 1024 digital
0 bis 5 Volt (je 1 gleich lesen ~ 5 Millivolt
}
Funktion die Farbe festlegen
void SetColor (Int * geführt, Boolean * Farbe) {}
für (Int ich = 0; ich < 3; i ++) {}
DigitalWrite (führte [i] color[i]);
}
}
Eine Version von SetColor, das ermöglicht die Verwendung const boolesche Farben
void SetColor (Int * geführt, const Boolean * Farbe) {}
Boolesche TempColor [] = {Farbe [0], Farbe [1] [2]};
SetColor (led, TempColor);
}