Bonjour,
Pour un projet de mesure de distance dans une cuve d'eau je suis parti sur un capteur DYP_A02PWM.
Grâce à un code que j'ai trouvé pour ce capteur fonctionnait super bien quand il était directement branché sur mon arduino nano. Dans la configuration finale le capteur est connecté à l'arduino grâce à un câble de 6 mètres environ. Le problème que je rencontre c'est quand j'alimente en USB mon arduino, je récupère les premières valeurs, mais ensuite je n'ai que 00.00 comme si le capteur était débranché.
(15:55:17.300 -> 63.40
15:55:17.551 -> 63.29
15:55:17.817 -> 63.38
15:55:18.099 -> 63.22
15:55:18.367 -> 63.34
15:55:19.307 -> 0.00
15:55:20.262 -> 0.00
15:55:21.201 -> 0.00
15:55:22.145 -> 0.00)
En revanche j'entends le bruit lorsque je m'approche du capteur. Savez si le problème est dû à la distance du câble ? Dois-je rajouter un condensateur ou une résistance sur l'un des 4 fils (GCC, GND, Trig, Output)
Merci d'avance !
#define TRIGGER_PIN 2
#define PWM_OUTPUT_PIN 4
long duration;
float distance;
void setup()
{
Serial.begin(9600);
while (!Serial);
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(PWM_OUTPUT_PIN, INPUT);
}
void loop()
{
// The sensor is triggered by a falling edge of a HIGH pulse that
// is more than 60 microseconds in duration.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(5);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(100);
digitalWrite(TRIGGER_PIN, LOW);
// Read the signal from the sensor: a HIGH pulse whose
// duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
// If no object detected, fixed pulse width of 35ms is sent
// by the sensor.
pinMode(PWM_OUTPUT_PIN, INPUT);
duration = pulseIn(PWM_OUTPUT_PIN, HIGH);
// Convert the pulse width duration into a distance
distance = duration;
distance = distance / 58;
Serial.println(distance);
delay(250);
}