Étape 2: codage
Tout d’abord, vous aurez besoin des informations du compteur que son fonctionnement dans differend postes. À faire que de charger le fichier Triscometer_test.ino et l’essayer. Le compteur ne sera pas max dehors dans le test.
Après que vous avez compris les numéros de magie pour le compteur, commencer à écrire le code principal. Vos mesures du compteur peuvent différer de la mienne.
Première les variables globales.
//
Puis le programme d’installation.
void setup(){ Serial.begin(9600); pinMode(meter, OUTPUT); }
Et puis le programme principal. Vous pouvez voir qu’il a eu beaucoup d’instructions IF. Ces instructions incluent toutes les informations que la nécessité compteur de fonctionner à l’actuel niveau de chaleur. En faisant autant, si les déclarations que possible vous pouvez vous assurer que le compteur est aussi précis qu’elle peut être.
void loop() { float temperature = getVoltage(temperaturePin); temperature = (temperature - .6) * 100; Serial.println(temperature); if (temperature <40) { analogWrite(meter, level); level = 0; } if (temperature >45){ analogWrite(meter, level); level = level + meterMovement; level = 40; meterMovement = -meterMovement; delay(10); } if (temperature >50){ analogWrite(meter, level); level = level + meterMovement; level = 50; meterMovement = -meterMovement; delay(10); }if (temperature >55){ analogWrite(meter, level); level = level + meterMovement; level = 60; meterMovement = -meterMovement; delay(10); }if (temperature >60){ analogWrite(meter, level); level = level + meterMovement; level = 70; meterMovement = -meterMovement; delay(10); }if (temperature >65){ analogWrite(meter, level); level = level + meterMovement; level = 100; meterMovement = -meterMovement; delay(10);if (temperature >70){ analogWrite(meter, level); level = level + meterMovement; level = 130; meterMovement = -meterMovement; delay(10); }if (temperature >75){ analogWrite(meter, level); level = level + meterMovement; level = 150; meterMovement = -meterMovement; delay(10); }if (temperature >80){ analogWrite(meter, level); level = level + meterMovement; level = 180; meterMovement = -meterMovement; delay(10); }if (temperature >85){ analogWrite(meter, level); level = level + meterMovement; level = 210; meterMovement = -meterMovement; delay(10); } if (temperature >90){ analogWrite(meter, level); level = level + meterMovement; level = 235; meterMovement = -meterMovement; delay(10); }if (temperature >95){ analogWrite(meter, level); level = level + meterMovement; level = 250; meterMovement = -meterMovement; delay(10); } if (temperature <120){ analogWrite(meter, level); level = level + meterMovement; level = 255; meterMovement = -meterMovement; delay(10); } } delay(100); }// for the TMP36 float getVoltage(int pin){ return (analogRead(pin) * .004882814); }