ultrasonic - Driver for ultrasonic range meters HC-SR04, HY-SRF05
- group ultrasonic
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 unclerus@gmail.com
BSD Licensed as described in the file LICENSE
Functions
-
esp_err_t ultrasonic_init(const ultrasonic_sensor_t *dev)
Init ranging module.
- Parameters:
dev – Pointer to the device descriptor
- Returns:
ESP_OK
on success
-
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
time_us – [out] 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
-
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
distance – [out] 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
-
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
distance – [out] 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
-
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
distance – [out] 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
-
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
distance – [out] 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
-
struct ultrasonic_sensor_t
- #include <ultrasonic.h>
Device descriptor.
-
esp_err_t ultrasonic_init(const ultrasonic_sensor_t *dev)