ZotBins Core
Loading...
Searching...
No Matches
ultrasonic.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016 Ruslan V. Uss <unclerus@gmail.com>
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 *
7 * 1. Redistributions of source code must retain the above copyright notice,
8 * this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright notice,
10 * this list of conditions and the following disclaimer in the documentation
11 * and/or other materials provided with the distribution.
12 * 3. Neither the name of the copyright holder nor the names of itscontributors
13 * may be used to endorse or promote products derived from this software without
14 * specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
41#ifndef __ULTRASONIC_H__
42#define __ULTRASONIC_H__
43
44#include <driver/gpio.h>
45#include <esp_err.h>
46
47#ifdef __cplusplus
48extern "C" {
49#endif
50
51#define ESP_ERR_ULTRASONIC_PING 0x200
52#define ESP_ERR_ULTRASONIC_PING_TIMEOUT 0x201
53#define ESP_ERR_ULTRASONIC_ECHO_TIMEOUT 0x202
54
58typedef struct
59{
60 gpio_num_t trigger_pin;
61 gpio_num_t echo_pin;
63
70esp_err_t ultrasonic_init(const ultrasonic_sensor_t *dev);
71
83esp_err_t ultrasonic_measure_raw(const ultrasonic_sensor_t *dev, uint32_t max_time_us, uint32_t *time_us);
84
96esp_err_t ultrasonic_measure(const ultrasonic_sensor_t *dev, float max_distance, float *distance);
97
109esp_err_t ultrasonic_measure_cm(const ultrasonic_sensor_t *dev, uint32_t max_distance, uint32_t *distance);
110
127esp_err_t ultrasonic_measure_temp_compensated(const ultrasonic_sensor_t *dev, float max_distance, float *distance, float temperature_c);
128
144esp_err_t ultrasonic_measure_cm_temp_compensated(const ultrasonic_sensor_t *dev, uint32_t max_distance, uint32_t *distance, float temperature_c);
145
146#ifdef __cplusplus
147}
148#endif
149
151
152#endif /* __ULTRASONIC_H__ */
esp_err_t ultrasonic_init(const ultrasonic_sensor_t *dev)
Init ranging module.
Definition ultrasonic.c:72
esp_err_t ultrasonic_measure(const ultrasonic_sensor_t *dev, float max_distance, float *distance)
Measure distance in meters.
Definition ultrasonic.c:124
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.
Definition ultrasonic.c:83
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.
Definition ultrasonic.c:162
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.
Definition ultrasonic.c:146
esp_err_t ultrasonic_measure_cm(const ultrasonic_sensor_t *dev, uint32_t max_distance, uint32_t *distance)
Measure distance in centimeters.
Definition ultrasonic.c:135
Definition ultrasonic.h:59
gpio_num_t echo_pin
GPIO input pin for echo.
Definition ultrasonic.h:61
gpio_num_t trigger_pin
GPIO output pin for trigger.
Definition ultrasonic.h:60