/* Complément programme Labview
   Arduino envoie la température à Labview avec un retour à la ligne (CRLF)
   Labview répond en envoyant le rapport cyclique approprié : 55; <=> 55%
*/
const int four=6;  // Four sur sortie PWM
int i;
int Y=0,Y0=0;
unsigned long t0;
float V,T;

void setup() {
  Serial.begin(9600);
  pinMode(four,OUTPUT);
}

void loop() {
  t0=millis();
  i++;
  V = 5.0/1024*analogRead(A0);
  T = 1.6472*V*V*V-10.8*V*V+43.085*V-22.984;  // CTN avec R=4700 de 20 à 80 °C
  Serial.println(T,1);
  while (millis()-t0<1000) {   // Lecture sur le port série de Y (55;)
       if (Serial.available()){
         delay(10);
         Y=2.55*Serial.parseInt();
         while (Serial.available()) Serial.read();
         if (Y!=Y0) {   // Pour éviter de trop solliciter la commande analogWrite
             Y0=Y;
             analogWrite(four,Y);  // Commande uniquement si le rapport cyclique change
             }      
       } 
     }
}