ZotBins Core
Loading...
Searching...
No Matches
ultrasonic.c File Reference
#include <esp_idf_lib_helpers.h>
#include "ultrasonic.h"
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <esp_timer.h>
#include <ets_sys.h>
Include dependency graph for ultrasonic.c:

Macros

#define TRIGGER_LOW_DELAY   4
 
#define TRIGGER_HIGH_DELAY   10
 
#define PING_TIMEOUT   6000
 
#define ROUNDTRIP_M   5800.0f
 
#define ROUNDTRIP_CM   58
 
#define SPEED_OF_SOUND_AT_0C_M_S   331.4
 
#define timeout_expired(start, len)
 
#define CHECK_ARG(VAL)
 
#define CHECK(x)
 
#define RETURN_CRITICAL(RES)
 

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 the like

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

Macro Definition Documentation

◆ CHECK

#define CHECK ( x)
Value:
do { esp_err_t __; if ((__ = x) != ESP_OK) return __; } while (0)

◆ CHECK_ARG

#define CHECK_ARG ( VAL)
Value:
do { if (!(VAL)) return ESP_ERR_INVALID_ARG; } while (0)

◆ RETURN_CRITICAL

#define RETURN_CRITICAL ( RES)
Value:
do { PORT_EXIT_CRITICAL; return RES; } while(0)

◆ timeout_expired

#define timeout_expired ( start,
len )
Value:
((esp_timer_get_time() - (start)) >= (len))