|
#define | ESP_ERR_ULTRASONIC_PING 0x200 |
|
#define | ESP_ERR_ULTRASONIC_PING_TIMEOUT 0x201 |
|
#define | ESP_ERR_ULTRASONIC_ECHO_TIMEOUT 0x202 |
|
|
esp_err_t | ultrasonic_init (const ultrasonic_sensor_t *dev) |
| Init ranging module.
|
|
esp_err_t | ultrasonic_measure_raw (const ultrasonic_sensor_t *dev, uint32_t max_time_us, uint32_t *time_us) |
| Measure time between ping and echo.
|
|
esp_err_t | ultrasonic_measure (const ultrasonic_sensor_t *dev, float max_distance, float *distance) |
| Measure distance in meters.
|
|
esp_err_t | ultrasonic_measure_cm (const ultrasonic_sensor_t *dev, uint32_t max_distance, uint32_t *distance) |
| Measure distance in centimeters.
|
|
esp_err_t | ultrasonic_measure_temp_compensated (const ultrasonic_sensor_t *dev, float max_distance, float *distance, float temperature_c) |
| Measure distance in meters with temperature compensation.
|
|
esp_err_t | ultrasonic_measure_cm_temp_compensated (const ultrasonic_sensor_t *dev, uint32_t max_distance, uint32_t *distance, float temperature_c) |
| Measure distance in centimeters with temperature compensation.
|
|
ESP-IDF driver for ultrasonic range meters, e.g. HC-SR04, HY-SRF05 and so on
Ported from esp-open-rtos
Copyright (c) 2016 Ruslan V. Uss uncle.nosp@m.rus@.nosp@m.gmail.nosp@m..com
BSD Licensed as described in the file LICENSE
◆ ultrasonic_init()
Init ranging module.
- Parameters
-
dev | Pointer to the device descriptor |
- Returns
ESP_OK
on success
◆ ultrasonic_measure()
esp_err_t ultrasonic_measure |
( |
const ultrasonic_sensor_t * | dev, |
|
|
float | max_distance, |
|
|
float * | distance ) |
Measure distance in meters.
- Parameters
-
| dev | Pointer to the device descriptor |
| max_distance | Maximal distance to measure, meters |
[out] | distance | Distance in meters |
- Returns
ESP_OK
on success, otherwise:
- ESP_ERR_ULTRASONIC_PING - Invalid state (previous ping is not ended)
- ESP_ERR_ULTRASONIC_PING_TIMEOUT - Device is not responding
- ESP_ERR_ULTRASONIC_ECHO_TIMEOUT - Distance is too big or wave is scattered
◆ ultrasonic_measure_cm()
esp_err_t ultrasonic_measure_cm |
( |
const ultrasonic_sensor_t * | dev, |
|
|
uint32_t | max_distance, |
|
|
uint32_t * | distance ) |
Measure distance in centimeters.
- Parameters
-
| dev | Pointer to the device descriptor |
| max_distance | Maximal distance to measure, centimeters |
[out] | distance | Distance in centimeters |
- Returns
ESP_OK
on success, otherwise:
- ESP_ERR_ULTRASONIC_PING - Invalid state (previous ping is not ended)
- ESP_ERR_ULTRASONIC_PING_TIMEOUT - Device is not responding
- ESP_ERR_ULTRASONIC_ECHO_TIMEOUT - Distance is too big or wave is scattered
◆ ultrasonic_measure_cm_temp_compensated()
esp_err_t ultrasonic_measure_cm_temp_compensated |
( |
const ultrasonic_sensor_t * | dev, |
|
|
uint32_t | max_distance, |
|
|
uint32_t * | distance, |
|
|
float | temperature_c ) |
Measure distance in centimeters with temperature compensation.
Similar to ultrasonic_measure_temp_compensated but provides the distance in centimeters. It factors in the temperature of the air for more accurate measurements across a range of environmental conditions.
- Parameters
-
| dev | Pointer to the device descriptor |
| max_distance | Maximal distance to measure, centimeters |
[out] | distance | Distance in centimeters |
| temperature_c | Current air temperature in degrees Celsius |
- Returns
ESP_OK
on success, otherwise:
- ESP_ERR_ULTRASONIC_PING - Invalid state (previous ping is not ended)
- ESP_ERR_ULTRASONIC_PING_TIMEOUT - Device is not responding
- ESP_ERR_ULTRASONIC_ECHO_TIMEOUT - Distance is too big or wave is scattered
◆ ultrasonic_measure_raw()
esp_err_t ultrasonic_measure_raw |
( |
const ultrasonic_sensor_t * | dev, |
|
|
uint32_t | max_time_us, |
|
|
uint32_t * | time_us ) |
Measure time between ping and echo.
- Parameters
-
| dev | Pointer to the device descriptor |
| max_time_us | Maximal time to wait for echo |
[out] | time_us | Time, us |
- Returns
ESP_OK
on success, otherwise:
- ESP_ERR_ULTRASONIC_PING - Invalid state (previous ping is not ended)
- ESP_ERR_ULTRASONIC_PING_TIMEOUT - Device is not responding
- ESP_ERR_ULTRASONIC_ECHO_TIMEOUT - Distance is too big or wave is scattered
◆ ultrasonic_measure_temp_compensated()
esp_err_t ultrasonic_measure_temp_compensated |
( |
const ultrasonic_sensor_t * | dev, |
|
|
float | max_distance, |
|
|
float * | distance, |
|
|
float | temperature_c ) |
Measure distance in meters with temperature compensation.
This function measures the distance by taking into account the temperature of the air, which affects the speed of sound. This method improves the accuracy of measurements in various environmental conditions.
- Parameters
-
| dev | Pointer to the device descriptor |
| max_distance | Maximal distance to measure, meters |
[out] | distance | Distance in meters |
| temperature_c | Current air temperature in degrees Celsius |
- Returns
ESP_OK
on success, otherwise:
- ESP_ERR_ULTRASONIC_PING - Invalid state (previous ping is not ended)
- ESP_ERR_ULTRASONIC_PING_TIMEOUT - Device is not responding
- ESP_ERR_ULTRASONIC_ECHO_TIMEOUT - Distance is too big or wave is scattered