Bonjour ,
Me revoila!! j'avais abandonner l'arduino ,c'est bête!
La dernière fois il y'a bien longtemps , j'ai essayer de faire varier un servo avec un lm 35.
Je n'avais pas réussi , mais j'ai trouver un sketch pour bien utiliser un lm 35 , sur le site Temperature Sensor + Arduino - Daniel Andrade.
Magnifique!!! et j'ai ajouter un fonction map servo à l'ensemble, ce qui donne des mouvements aléatoires.
Mais voila , j'aimerais plutot que mon servo prenne un temperature toute les 10 minutes et entre en mouvement à ce moment en fonction d'une deperdition de T° ou une montée de T°.
je ne vois pas ou mettre le delay pour 10 minute au servo.
Toute aide serais la bienvenue, mais peut être et surement que je ne me suis pas assez creuser la tête , en tous cas voici le sketch de Andrade avec la modif pour le servo!.
#include <Servo.h>
Servo myservo;
int pin = 0; // analog pin
int tempc = 0,tempf=0; // temperature variables
int samples[8]; // variables to make a better precision
int maxi = -100,mini = 100; // to start max/min temperature
int i;
int val;
void setup()
{
Serial.begin(9600); // start serial communication
myservo.attach(9);
}
void loop()
{
for(i = 0;i<=7;i++){ // gets 8 samples of temperature
samples = ( 5.0 * analogRead(pin) * 100.0) / 1024.0;
_ tempc = tempc + samples*;_
_ delay(1000);_
_ val = analogRead(tempc); // reads the value*_
* val = map(val, 0, tempc, 0, 179); // scale it to use it with the servo (value between 0 and 180)*
myservo.write(val); // sets the servo position according to the scaled value
}
tempc = tempc/8.0; // better precision
tempf = (tempc * 9)/ 5 + 32; // converts to fahrenheit
if(tempc > maxi) {maxi = tempc;} // set max temperature
if(tempc < mini) {mini = tempc;} // set min temperature
Serial.print(tempc,DEC);
Serial.print(" Celsius, ");
Serial.print(tempf,DEC);
Serial.print(" fahrenheit -> ");
Serial.print(maxi,DEC);
Serial.print(" Max, ");
Serial.print(mini,DEC);
Serial.println(" Min");
tempc = 0;
delay(1000); // delay before loop
}