ZotBins Core
Loading...
Searching...
No Matches
ultrasonic

Data Structures

struct  ultrasonic_sensor_t
 

Macros

#define ESP_ERR_ULTRASONIC_PING   0x200
 
#define ESP_ERR_ULTRASONIC_PING_TIMEOUT   0x201
 
#define ESP_ERR_ULTRASONIC_ECHO_TIMEOUT   0x202
 

Functions

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.
 

Detailed Description

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

Function Documentation

◆ ultrasonic_init()

esp_err_t ultrasonic_init ( const ultrasonic_sensor_t * dev)

Init ranging module.

Parameters
devPointer 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
devPointer to the device descriptor
max_distanceMaximal distance to measure, meters
[out]distanceDistance 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
devPointer to the device descriptor
max_distanceMaximal distance to measure, centimeters
[out]distanceDistance 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
devPointer to the device descriptor
max_distanceMaximal distance to measure, centimeters
[out]distanceDistance in centimeters
temperature_cCurrent 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
devPointer to the device descriptor
max_time_usMaximal time to wait for echo
[out]time_usTime, 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
devPointer to the device descriptor
max_distanceMaximal distance to measure, meters
[out]distanceDistance in meters
temperature_cCurrent 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