simple, simple... parle pour toi ![]()
La semaine derniere j'ai reçu mes capteurs, à y être j'avais commandé un HC04, un Ky032, un SR602 et un A02yK0f au moins j'avais le choix.
Donc je me suis mis au code pour l'ultrason en pensant que vu la base que j'avais ça irait vite, et bien non... j'avais des réactions bizarre, pour la même distance il déclanchait les deux videos, mon delay du ping ne fonctionnait pas enfin la galère pour un truc si simple.
Une fois bien posé les demandes sur une feuille pour comprendre les problemes, j'ai remis ça au propre et bam ça a fonctionné...
Truc étrange, sur le PC de la maison j'ai la version 1.8.10 et sur le PC que je prends au bureau c'est la version 1.8.5, sur ce dernier mon "delay "du ping fonctionne bien sur l'autre c'est comme s'il n'existait pas, pourtant le fichier est identique, donc si vous avez une idée je suis preneur, il me reste quelque déclenchement bizarre mais je pense qu'il faut filtrer l'alim.
Donc voici ce que j'ai pondu enfin si on peut dire ça ![]()
#include <NewPing.h>
#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
bool state1 = false;
bool state2 = false;
unsigned long tempsON1 = 0;
unsigned long tempsON2 = 0;
unsigned long tempsON3 = 0;
const unsigned long attente1 = 10ul * 60ul * 1000ul; // temps de latence pour la video 1 en minutes
const unsigned long attente2 = 30ul * 1000ul; // temps de latence pour la video 2 en secondes
const unsigned long attente3 = 2ul * 1000ul;//temps entre chaque demande de ping en secondesNewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
void setup() {
Serial.begin(9600); // Open serial monitor at 9600 baud to see ping results.
}void loop() {
unsigned long Distance;
if (millis() - tempsON3 > attente3){
tempsON3 = millis();
Distance = sonar.ping_cm();}if (!state1){
Distance = sonar.ping_cm ();
if ((Distance >=80) && (Distance <=150)){ // distance de detection video 1
tempsON1 = millis();
state1 = true;
// lancer la vidéo n°1
Serial.println("1");
}
}
if (millis() - tempsON1 > attente1) state1 = false;if (!state2){
Distance = sonar.ping_cm ();
if ((Distance >=20) && (Distance <=50)){ //distance de detection video 2
tempsON2 = millis();
state2 = true;
// lancer la vidéo n°2
Serial.println("2");
}
}
if (millis() - tempsON2 > attente2) state2 = false;
}