I recently bought the WPSE306N ultrasonic distance sensor but I can’t get it to work. I already own the VMA306 ultrasonic distance sensor which works great and I code it with the Arduino IDE. The code for the VMA306 doesn’t seem to work on the WPSE306N. Here is the code:
/*
@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@ @@@. @@@ @@@. @@@@ @@@@ @@@@@@@@@ @@@@@@@@@@@@@. .@@@@@@@@@@@@@ @@@@@@@@@
@@@@@%%@@@%%@@@%%@@@@@ @@@@ @@@ @@@@ @@@@ @@@@ @@@@@@@@@@ @@@@@@@@@@@@@@ @@@@@@@@@@@@@@ @@@@@@@@@
@@@@@ @@@ @@@ @@@@@ @@@@ @@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@@ @@@@@ @@@@@ @@@@ @@@@ @@@@
@@@@@ @@@@@ @@@@ @@@@ @@@@ @@@@@@@@@@@@ @@@@ @@@@ @@@@@ @@@@@ @@@@@ @@@@ @@@@ @@@@
@@@@@ @ @ @@@@@ @@@@ @@@@ @@@@ @@@@@@@@@@@@ @@@@@@@@@@@ @@@@@ @@@@@ @@@@@ @@@@ @@@@@@@@@@@
@@@@@ @@@@@ @@@@###@@@@@##@@@@@ @@@@ @@@@ @@@@@@@@@@@@ #@@@@@###@@@@@ ##@@@@@###@@@@ @@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@ @@@@ @@@@ @@@@ @@@@@ @@@@@@@@@@@@@@ @@@@@@@@@@@@@@ @@@@ @@@@
@@@@@@@@@@@@@@@@@@@@@@
This Whadda WPSE306 module is an Ultrasonic Sensor (V3).
It can detect whether there is an obstacle in front, and detect the detailed distance between the sensor and the obstacle.
The sensor mainly uses the CS100A chip, which also handles both 3.3V and 5V operating voltages.
The maximum test distance is 5,5 meters; the blind area is less than 4cm.
This example code allows you to display the dectected distance of a obstacle via Serial Monitor window.
For more information about the Whadda Ultrasonic sensor, consult the manual at the WPSE306 product page on whadda.com
Pin connection:
***************
Module => Arduino Pin
-------------------------
VCC => 3.3V - 5V (DC)
TRIG => Pin 6
ECHO => Pin 7
GND => GND
*/
// Code Begin
const int trigPin = 6; // Trigger Pin of Ultrasonic Sensor
const int echoPin = 7; // Echo Pin of Ultrasonic Sensor
void setup()
{
Serial.begin(9600); // Starting Serial Terminal
}
void loop()
{
/* The following trigPin/echoPin cycle is used to determine the
distance in cm & inches of the nearest object by bouncing soundwaves off of it. */
long duration, inches, cm; // Variables to make the calculation for measured distance.
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.print(inches);
Serial.print(" in, ");
Serial.print(cm);
Serial.print(" cm");
Serial.println();
delay(100);
//Delay 100ms before next reading.
}
long microsecondsToInches(long microseconds)
{
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}
//Code End
Thanks, it works now. The reason why my code didn’t work was that I used “delay()” but not “delayMicroseconds()” which doesn’t make a difference with the VMA306 ultrasonic distance sensor but apparently it does with the WPSE306N.