Crates.io | gihex-hc-sr04 |
lib.rs | gihex-hc-sr04 |
version | 0.1.5 |
source | src |
created_at | 2023-11-04 04:42:12.721505 |
updated_at | 2023-11-04 18:37:53.286473 |
description | Library to access HC-SR04 ultrasonic sensor |
homepage | |
repository | https://github.com/yogiastawan/gx_HCSR04 |
max_upload_size | |
id | 1024967 |
size | 39,910 |
This is the library used to access the HC-SR04 ultrasonic sensor. This library inspired by hc-sr04
.
For more detail how to use this library see Example
.
temperature
or humidity
enabled.humidity
enabled.To use this library, there are several things that must be done, such as:
EXTI
) with RAISING
and FAILING
trigger to the pin echo
(pin microcontroller that connected to the pin echo
HC-SR04 sensor).let mut echo_pin = gpioa.pa3.into_pull_down_input(&mut gpioa.crl);
echo_pin.make_interrupt_source(&mut afio);
let mut exti = ctx.device.EXTI;
echo_pin.enable_interrupt(&mut exti);
echo_pin.trigger_on_edge(&mut exti, Edge::RisingFalling);
us_timer::TickerUs
]. This object is used to count the number of ticks.use stm32f1xx_hal::timer::{CounterUs, Instance};
pub struct MyCounter<TIM> {
counter: CounterUs<TIM>,
}
impl<TIM: Instance> MyCounter<TIM> {
fn new(counter: CounterUs<TIM>) -> Self {
Self { counter }
}
}
impl<TIM: Instance> TickerUs for MyCounter<TIM> {
fn get_tick(&self) -> u32 {
self.counter.now().ticks()
}
fn get_frequency(&self) -> u32 {
1_000_000
}
}
let hcsr04 = HcSR04::hc_sr04_new(trig_pin, &mut delay, &mut my_counter);
let distance=hcsr04.get_distance::<f32>(DistanceUnit::MilliMeter);