Commit 481d85f73faefcde9a9c5b68e7c11dec2e7f6dec
1 parent
dd13ea41
correction de automatique() et finalisation automatique()
Showing
1 changed file
with
98 additions
and
23 deletions
Show diff stats
progArduino/principal/principal.ino
@@ -101,6 +101,7 @@ void couleur(int R, int G, int B) | @@ -101,6 +101,7 @@ void couleur(int R, int G, int B) | ||
101 | } | 101 | } |
102 | 102 | ||
103 | /* | 103 | /* |
104 | +// fait avec application | ||
104 | void choix_couleur() | 105 | void choix_couleur() |
105 | { | 106 | { |
106 | int R,G,B; | 107 | int R,G,B; |
@@ -213,6 +214,7 @@ void mouvement() | @@ -213,6 +214,7 @@ void mouvement() | ||
213 | takeLowTime = true; | 214 | takeLowTime = true; |
214 | } | 215 | } |
215 | 216 | ||
217 | + | ||
216 | //DETECTION'S END | 218 | //DETECTION'S END |
217 | if(digitalRead(pirPin) == LOW) | 219 | if(digitalRead(pirPin) == LOW) |
218 | { | 220 | { |
@@ -232,60 +234,130 @@ void mouvement() | @@ -232,60 +234,130 @@ void mouvement() | ||
232 | //Serial.print("motion ended at "); //output | 234 | //Serial.print("motion ended at "); //output |
233 | //Serial.print((millis() - pause)/1000); | 235 | //Serial.print((millis() - pause)/1000); |
234 | //Serial.println(" sec"); | 236 | //Serial.println(" sec"); |
235 | - i++; | ||
236 | Serial.println(i); | 237 | Serial.println(i); |
238 | + i++; | ||
239 | + | ||
237 | //CHILD IS AWAKE | 240 | //CHILD IS AWAKE |
238 | // if(i==5 || ((millis() - pause)/1000)-(millis()/1000)> 10 | 241 | // if(i==5 || ((millis() - pause)/1000)-(millis()/1000)> 10 |
239 | if(i==5){ | 242 | if(i==5){ |
240 | Serial.println("Sommeil agite !!!"); | 243 | Serial.println("Sommeil agite !!!"); |
241 | MESSAGE = 1; //servira pour la progra html (peut-être) | 244 | MESSAGE = 1; //servira pour la progra html (peut-être) |
242 | - Serial.println(MESSAGE); | 245 | + Serial.println("MESSAGE"); |
243 | i=0; | 246 | i=0; |
244 | } | 247 | } |
245 | - delay(50); | 248 | + delay(20); |
246 | } | 249 | } |
247 | } | 250 | } |
248 | } | 251 | } |
249 | } | 252 | } |
250 | 253 | ||
251 | 254 | ||
255 | +//-------------------------------------------------------------------------------------------------------------------------------------------FONCTIONS PRINCIPALES | ||
256 | + | ||
257 | + | ||
258 | +//fonction regroupant l'utilisation de la led de manière automatique et du capteur de mouvement. | ||
259 | +//on veut l'utilisation du capteur (soit réalisation de mouvement) uniquement quand la led est allumée | ||
260 | + | ||
261 | +//--------------------------------------------------------------------------------------------------------------------automatique() | ||
252 | void automatique() | 262 | void automatique() |
253 | { | 263 | { |
254 | //On récupère la valeur du seuil | 264 | //On récupère la valeur du seuil |
255 | luminosite = analogRead(CAPTEUR); | 265 | luminosite = analogRead(CAPTEUR); |
256 | - int mouv =1; | 266 | + int i=0; |
257 | 267 | ||
258 | //Monitoring | 268 | //Monitoring |
259 | Serial.print("Luminosite = "); | 269 | Serial.print("Luminosite = "); |
260 | Serial.print(luminosite); | 270 | Serial.print(luminosite); |
261 | Serial.print(" / Seuil = "); | 271 | Serial.print(" / Seuil = "); |
262 | Serial.print(seuil); | 272 | Serial.print(seuil); |
263 | - | 273 | + |
274 | + // on l'éteint | ||
275 | + if (luminosite > seuil) | ||
276 | + { | ||
277 | + eteindre(); | ||
278 | + Serial.println(" / LED OFF"); | ||
279 | + } | ||
280 | + | ||
264 | //Allumage de la led si la luminosité est inférieur au seuil (on l'allume dans la couleur blanche la base) | 281 | //Allumage de la led si la luminosité est inférieur au seuil (on l'allume dans la couleur blanche la base) |
265 | - if(luminosite < seuil) { | ||
266 | - couleur(255,255,255); | 282 | + //enfant couché il doit dormir |
283 | + else | ||
284 | + { | ||
267 | //Monitoring | 285 | //Monitoring |
268 | - Serial.println(" / LED ON"); | ||
269 | - } | ||
270 | - //Dans le cas contraire, on l'éteint | ||
271 | - else { | ||
272 | - digitalWrite(PININ, LOW); | ||
273 | - mouv=0; | ||
274 | - eteindre(); | ||
275 | - Serial.println(" / LED OFF"); | ||
276 | - } | ||
277 | - delay(50); | 286 | + couleur(255,255,255); |
287 | + | ||
288 | + | ||
289 | + while(i<=5) | ||
290 | + { | ||
291 | + luminosite = analogRead(CAPTEUR); | ||
278 | 292 | ||
279 | - if(mouv == 1) | ||
280 | - { | ||
281 | - //Serial.println("mouv"); | ||
282 | - mouvement(); | 293 | + if(luminosite < seuil) |
294 | + { | ||
295 | + couleur(255,255,255); | ||
296 | + | ||
297 | + //DETECTION D'UN MOUVEMENT | ||
298 | + if(digitalRead(pirPin)==HIGH) | ||
299 | + { | ||
300 | + digitalWrite(ledPin,HIGH); // la led modélise la déection d'un mouvement selon l'etat du capteur | ||
301 | + if (lockLow) | ||
302 | + { | ||
303 | + //être sûr d'attendre la transistion à l'état LOW du capteur pour continuer : | ||
304 | + lockLow= false; | ||
305 | + delay(50); | ||
306 | + } | ||
307 | + takeLowTime = true; | ||
308 | + } | ||
309 | + | ||
310 | + //FIN DE LA DETECTION | ||
311 | + if(digitalRead(pirPin)==LOW) | ||
312 | + { | ||
313 | + digitalWrite(ledPin, LOW); | ||
314 | + if(takeLowTime) | ||
315 | + { | ||
316 | + lowIn= millis(); // enregistrement du temps qu'il faut pour passer de HIGH à LOW pour le capteur | ||
317 | + takeLowTime = false; // être sûr que cela se fait uniquement au debut du passage à LOW | ||
318 | + } | ||
319 | + // Ainsi si le capteur est LOW plus longtemps que la pause, on suppose qu'il n'y plus de mouvement | ||
320 | + // if > être sûr que la suite s'execute seulement après un nouveau mouvement, donc nouvelle séquence de led allumée | ||
321 | + if(!lockLow && millis()-lowIn > pause) | ||
322 | + { | ||
323 | + lockLow = true; | ||
324 | + i++; | ||
325 | + Serial.println(i); | ||
326 | + | ||
327 | + //CHILD AWAKE | ||
328 | + if(i==5) | ||
329 | + { | ||
330 | + Serial.println("Sommeil agite !!!"); | ||
331 | + MESSAGE = 1; | ||
332 | + i=0; | ||
333 | + } | ||
334 | + delay(20); | ||
335 | + } | ||
336 | + } | ||
337 | + | ||
338 | + delay(500); | ||
339 | + } | ||
340 | + else | ||
341 | + { | ||
342 | + eteindre(); | ||
343 | + i=0; | ||
344 | + } | ||
345 | + | ||
346 | + | ||
347 | + } | ||
348 | + delay(50); | ||
283 | } | 349 | } |
350 | + | ||
284 | } | 351 | } |
285 | 352 | ||
286 | -//---------------------------------------------------------------------------------------------------------------------------FONCTIONS PRINCIPALES | 353 | + |
354 | + | ||
287 | 355 | ||
288 | 356 | ||
357 | + | ||
358 | + | ||
359 | +//---------------------------------------------------------------------------------------------------------------------------------mainveilleuse() | ||
360 | + | ||
289 | //fonction du programme principal (à copier plus tard dans la LOOP() | 361 | //fonction du programme principal (à copier plus tard dans la LOOP() |
290 | void mainVeilleuse() | 362 | void mainVeilleuse() |
291 | { | 363 | { |
@@ -296,6 +368,7 @@ void mainVeilleuse() | @@ -296,6 +368,7 @@ void mainVeilleuse() | ||
296 | { | 368 | { |
297 | delay(1000); | 369 | delay(1000); |
298 | 370 | ||
371 | + etatBouton = digitalRead(pinInter); //Rappel :pinInter = 9 | ||
299 | automatique(); | 372 | automatique(); |
300 | 373 | ||
301 | etatBouton = digitalRead(pinInter); //Rappel :pinInter = 9 | 374 | etatBouton = digitalRead(pinInter); //Rappel :pinInter = 9 |
@@ -304,6 +377,8 @@ void mainVeilleuse() | @@ -304,6 +377,8 @@ void mainVeilleuse() | ||
304 | //on est eteint avec l'interrupteur manuel on peut tjrs utiliser l'application pour gerer la veilleuse | 377 | //on est eteint avec l'interrupteur manuel on peut tjrs utiliser l'application pour gerer la veilleuse |
305 | eteindre(); //la LED reste éteinte | 378 | eteindre(); //la LED reste éteinte |
306 | Serial.println("UTILISATION APPLICATION"); | 379 | Serial.println("UTILISATION APPLICATION"); |
380 | + | ||
381 | + delay(2000); | ||
307 | 382 | ||
308 | 383 | ||
309 | } | 384 | } |
@@ -327,7 +402,7 @@ void tests() | @@ -327,7 +402,7 @@ void tests() | ||
327 | 402 | ||
328 | 403 | ||
329 | 404 | ||
330 | -//----------------------------------------------------------------------------------------------------------------------------LOOP == MAIN PROG | 405 | +//-------------------------------------------------------------------------------------------------------------------------------------------LOOP == MAIN PROG |
331 | void loop() | 406 | void loop() |
332 | 407 | ||
333 | { | 408 | { |