Paso 2: codificación
En primer lugar, se necesita la información del medidor que cómo funciona en differend posiciones. Para hacer que cargue el archivo Triscometer_test.ino y probarlo. El medidor no será máximo hacia fuera en la prueba.
Después de que han averiguado los números de magia para el metro, comenzar a escribir el código principal. Sus mediciones del medidor pueden diferir de la mía.
Primero las variables globales.
//
A continuación, configuración.
void setup(){ Serial.begin(9600); pinMode(meter, OUTPUT); }
Y luego el programa principal. Se puede ver que tiene un montón de declaraciones de IF. Estas declaraciones incluyen toda la información que la necesidad de la metro a la función en el actual nivel de calor. Haciendo que muchos si declaraciones posible puede asegurarse de que el metro es tan preciso como lo puede ser.
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); }