Bonjour, j'ai déja posté une demande d'aide sur le même programme mais ici le soucis est tout different Apres des heures d'arrachage de cheveux je ne comprend toujours pas pourquoi quand je compile il n'y as aucun soucis et quand je verifie mes branchements etc electronqiues tout me parait bon apres 3 révisions mais j'ai toujours un soucis a la fin de mon programme dans ma double condition IF , il est sensé faire tourner un moteur DC de base et le soucis c'est qu'en réalité le moteur tourne sans discontinuer sur une période de 2 sec / pause / 2 sec etc … sauriez vous d'ou vien le probleme ? merci d'avance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | #include <Servo.h> Servo myservo; int posfermer = 0; // variable du servo moteur int posouvert = 110; int putPin = A3; // humidity 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 thermoPinint = A5; // là où est branché le LM35 int tempCint; // température en degrés celcius int tempKint; // conversion en Kelvin int readingint; // lecture brute de l'entrée analogique (0 à 1024) int thermoPinext = A1; // là où est branché le LM35 int tempCext; // température en degrés celcius int tempKext; // conversion en Kelvin int readingext; // lecture brute de l'entrée analogique (0 à 1024) byte sens1 = 1; byte sens2 = 2; float humi = 0; float prehum = 0; float humconst = 0; float truehum = 0; float pretruehum = 0; long pretruehumconst = 0; long valb = 0; int posvolet = 0; void setup() { Serial.begin(9600); // start serial communication myservo.attach(7); pinMode(13,OUTPUT); digitalWrite (13,LOW); } void loop() { pinMode(sens1, OUTPUT); pinMode(sens2, OUTPUT); if (tempCint > 36) { // in steps of 1 degree myservo.write(posouvert); // ordonne au servo d'atteindre la position "pos" delay(15); // attendre 15 ms que le servo atteigne la position } else { myservo.write(posfermer); // ordonne au servo d'atteindre la position "pos" delay(15); // attendre 15 ms que le servo atteigne la position } // mesure intérieur readingint = analogRead(thermoPinint); // conversion en celcius tempCint = round(readingint/2); // conversion en Kelvin tempKint = tempCint + 273; // mesure extérieur readingext = analogRead(thermoPinext); // conversion en celcius tempCext = round(readingext/2); // conversion en Kelvin tempKext = tempCext + 273; Serial.print(" Temp int "); Serial.print(tempCint); Serial.print(" Celsius "); Serial.print(tempKint); Serial.println(" Kelvin"); Serial.print(" Temp ext "); Serial.print(tempCext); Serial.print(" Celsius "); Serial.print(tempKext); Serial.println(" Kelvin"); //le soucis est ici if ((tempCint < 6) && (posvolet = 0)){ digitalWrite(sens1, HIGH); digitalWrite(sens2, LOW); delay(2000); digitalWrite(sens1, LOW); digitalWrite(sens2, LOW); posvolet = 1 ; } if ((tempCint > 8) && (posvolet = 1)){ digitalWrite(sens1, LOW); digitalWrite(sens2, HIGH); delay(2000); digitalWrite(sens1, LOW); digitalWrite(sens2, LOW); posvolet = 0 ; } tempc = 0; delay(2000); // delay before loop } |
+0
-0