Stap 3: Code
De Code
/ * "De magische sfeer van Crystal Ball"
Stomme huisdier Trick-ITP 2011
*/
TMP36 Pin variabelen
int temperaturePin = 0; input: de analoge pin van de TMP36 is aangesloten
RGB LED pinnen
int ledDigitalOne [] {9, 10, 11} =; output: de drie digitale pennen van de LED RGB
9 = redPin, 10 = greenPin, 11 = bluePin
Const Booleaanse ON = laag;
Const Booleaanse OFF = hoog;
Vooraf gedefinieerde kleuren
Const Booleaanse rood [] = {ON, OFF, OFF};
Const Booleaanse groene [] = {OFF, ON, OFF};
Const Booleaanse blauwe [] = {OFF, OFF, ON};
Const Booleaanse gele [] = {ON, op, uit};
Const Booleaanse cyaan [] = {OFF, ON, ON};
Const Booleaanse MAGENTA [] = {ON, OFF, ON};
Const Booleaanse witte [] = {ON, op, ON};
Const Booleaanse zwart [] = {OFF, OFF, OFF};
VOID Setup
{
for (int i = 0; ik < 3; i ++) {}
pinMode (ledDigitalOne [i], OUTPUT); Instellen van de RGB LED-pinnen als uitgang
}
Serial.begin(9600); Start de seriële verbinding met de computer
}
void loop
{
zweven temperatuur = getVoltage(temperaturePin); krijgen van de spanning die het lezen van de temperatuursensor
temperatuur = (((temperature –.5) * 100) * 1.8) + 32; converteren van 10 mv per graad wit 500 mV offset
int newTemperature = temperatuur; om graden ((volatge – 500mV) keer 100)
Serial.println(newTemperature); afdrukken van het resultaat
delay(7000); 7 seconden voor een nieuwe resultaat te wachten
Elke vooraf gedefinieerde kleur afhankelijk van de temperatuur in er van de drie LED's instellen
Als ((newTemperature>40) & & (newTemperaturesetColor (ledDigitalOne, BLACK);
Serial.println("Black");
}
anders als ((newTemperature > = 72) & & (newTemperaturesetColor (ledDigitalOne, witte);
Serial.println("White");
}
anders als ((newTemperature > = 74) & & (newTemperaturesetColor (ledDigitalOne, GREEN);
Serial.println("Green");
}
anders als ((newTemperature > = 76) & & (newTemperaturesetColor (ledDigitalOne, cyaan);
Serial.println("Cyan");
}
anders als ((newTemperature > = 78) & & (newTemperaturesetColor (ledDigitalOne, blauw);
Serial.println("Blue");
}
anders als ((newTemperature > = 80) & & (newTemperaturesetColor (ledDigitalOne, geel);
Serial.println("Yellow");
}
anders als ((newTemperature > = 82) & & (newTemperaturesetColor (ledDigitalOne, RED);
Serial.println("Red");
}
else {}
setColor (ledDigitalOne, MAGENTA);
Serial.println("magenta");
}
}
zweven getVoltage(int pin) {}
retourneren (analogRead(pin) *. 004882814); converteren van een digitale bereik van 0 tot 1024
0 tot 5 volt (elke lezing is gelijk aan 1 ~ 5 millivolts
}
Functie kunt u de kleur instellen
VOID setColor (int * geleid, boolean * kleur) {}
for (int i = 0; ik < 3; i ++) {}
digitalWrite (onder leiding van [i], color[i]);
}
}
Een versie van setColor die het mogelijk maakt voor het gebruik van const Booleaanse kleuren
VOID setColor (int * geleid, const boolean * kleur) {}
Booleaanse tempColor [] = {kleur [0], kleur [1], kleur [2]};
setColor (led, tempColor);
}