Bonjour, je commence en arduino et j'ai un projet à faire dans lequel je doit : dès que la température mesurée dépasse de 20% la valeur seuil, Tmoy, le moteur se mettra en route avec une vitesse proportionnelle à l'écart relatif des températures.
Pour l'instant j'ai seulement essayé de faire tourner le moteur a une vitesse constante choisie mais finalement ma boucle n'est pas prise en compte et le moteur ne change pas de vitesse peut importe ce que je lui indique.
#include <Servo.h>// Importing the Servo lybrary
Servo MyServo;//Variable refering to the servo lybrary. It has all the function that the lybrary has.
int x = 0;
int valVoltage;
float temp;
int tensPan;
float eclairement;
int tensPhotor;
float Therm;
float Pan;
float Photor;
int motorPin1 = 2;
int motorPin2 = 3;
int enablePin = 9;
int motorSpeed;
void setup() {
Serial.begin(9600);//pour se servir du moniteur serie
pinMode(motorPin1,OUTPUT);
pinMode(motorPin2,OUTPUT);
pinMode(enablePin,OUTPUT);
digitalWrite(enablePin, LOW);
MyServo.attach(8);
}
void loop() {
//x=random(0,1023);
//Serial.println(x);
valVoltage = analogRead(A0);
Serial.print(valVoltage);
Serial.print(" ");
Therm=map(valVoltage,0,1023,0,10);//tensio thermistance
temp=-22.3*log(valVoltage/1023.0/(1-valVoltage/1023.0))+25; //température reçu par la thermistance
Serial.print(temp);
Serial.print(" ");
tensPan = analogRead(A3);
Serial.print(tensPan);
Serial.print(" ");
Pan =map(tensPan,0,1023,0,10);
tensPhotor = analogRead(A1);
Serial.print(tensPhotor);
Serial.println(" ");
Photor = map(tensPhotor,0,1023,0,10);
eclairement=pow(pow(10,4.17)/Photor,1/0.84); //éclairement reçu par la "grosse" photoresistance
motorSpeed=int(((temp-21.36)/21.36)*100);
// Serial.println(motorSpeed);
if (temp > 22.1+4.4){
digitalWrite(enablePin,HIGH);
analogWrite(enablePin, 200);
}
else{
digitalWrite(enablePin,HIGH);
analogWrite(enablePin, 10);
}
if (eclairement>716+143.2 && tensPan > 472+95.5){
MyServo.write(90);
}
else if (eclairement<716-143.2 && tensPan > 472-95.5){
MyServo.write(25);
}
delay(2000);
}```