Étape 3: Code, il
Le Code
/ * "La magie humeur Crystal Ball"
Truc pour animaux de compagnie stupide – ITP 2011
*/
TMP36 Pin Variables
int temperaturePin = 0 ; entrée : la broche analogique, le TMP36 est connectée
Broches de la LED RGB
int ledDigitalOne [] = {9, 10, 11} ; sortie : les trois broches numériques de la LED RGB
9 = redPin, 10 = greenPin, 11 = bluePin
ON booléenne const = faible ;
const boolean OFF = élevé ;
Couleurs prédéfinies
const boolean [rouge] = {ON, OFF, OFF} ;
const boolean [vert] = {OFF, ON, OFF} ;
const boolean [bleu] = {OFF, OFF, ON} ;
const boolean [jaune] = {ON, ON, OFF} ;
const boolean [CYAN] = {OFF, ON, ON} ;
const boolean MAGENTA [] = {ON, OFF, ON} ;
const boolean [blanc] = {ON, ON, ON} ;
const boolean [noir] = {OFF, OFF, OFF} ;
void setup()
{
pour (int i = 0; i < 3; i ++) {}
pinMode (ledDigitalOne [i], sortie) ; Définir les broches de la LED RGB comme sorties
}
Serial.Begin(9600) ; Lancez la connexion série avec l’ordinateur
}
void loop()
{
flotteur de température = getVoltage(temperaturePin) ; obtention de la tension mesurée par le capteur de température
température = (((temperature –.5) * 100) * 1,8) + 32 ; conversion de 10 mv par degré wit 500 mV offset
int newTemperature = température ; à degrés ((volatge – 500 mV) multiplié par 100)
Serial.println(newTemperature) ; imprimer le résultat
Delay(7000) ; 7 secondes pour obtenir un nouveau résultat en attente
Définir les trois LEDs à n’importe quel couleur prédéfinie en fonction de la température en ° f
Si ((newTemperature>40) & & (newTemperaturesetColor (ledDigitalOne, noir) ;
Serial.println("Black") ;
}
else if ((newTemperature > = 72) & & (newTemperaturesetColor (ledDigitalOne, blanc) ;
Serial.println("White") ;
}
else if ((newTemperature > = 74) & & (newTemperaturesetColor (ledDigitalOne, vert) ;
Serial.println("Green") ;
}
else if ((newTemperature > = 76) & & (newTemperaturesetColor (ledDigitalOne, CYAN) ;
Serial.println("cyan") ;
}
else if ((newTemperature > = 78) & & (newTemperaturesetColor (ledDigitalOne, bleu) ;
Serial.println("Blue") ;
}
else if ((newTemperature > = 80) & & (newTemperaturesetColor (ledDigitalOne, jaune) ;
Serial.println("Yellow") ;
}
else if ((newTemperature > = 82) & & (newTemperaturesetColor (ledDigitalOne, rouge) ;
Serial.println("Red") ;
}
else {}
setColor (ledDigitalOne, MAGENTA) ;
Serial.println("magenta") ;
}
}
flotteur getVoltage(int pin) {}
retour (analogRead(pin) *. 004882814) ; conversion d’une plage numérique de 0 à 1024
0 à 5 volts (chaque 1 lecture équivaut à ~ 5 mV
}
Fonction pour définir la couleur
{} void setColor (int * conduit, boolean * couleur)
pour (int i = 0; i < 3; i ++) {}
digitalWrite (conduit [i], color[i]) ;
}
}
Une version de setColor qui permet l’utilisation des couleurs booléennes const
{} void setColor (int * conduit, const boolean * couleur)
tempColor Boolean [] = {couleur [0], couleur [1], [2]} ;
setColor (led, tempColor) ;
}