fix tank sensor
This commit is contained in:
@@ -2,7 +2,7 @@ use crate::bail;
|
|||||||
use crate::fat_error::FatError;
|
use crate::fat_error::FatError;
|
||||||
use crate::hal::{ADC1, TANK_MULTI_SAMPLE};
|
use crate::hal::{ADC1, TANK_MULTI_SAMPLE};
|
||||||
use embassy_time::Timer;
|
use embassy_time::Timer;
|
||||||
use esp_hal::analog::adc::{Adc, AdcConfig, AdcPin, Attenuation};
|
use esp_hal::analog::adc::{Adc, AdcCalLine, AdcConfig, AdcPin, Attenuation};
|
||||||
use esp_hal::delay::Delay;
|
use esp_hal::delay::Delay;
|
||||||
use esp_hal::gpio::{Flex, Input, Output, OutputConfig, Pull};
|
use esp_hal::gpio::{Flex, Input, Output, OutputConfig, Pull};
|
||||||
use esp_hal::pcnt::channel::CtrlMode::Keep;
|
use esp_hal::pcnt::channel::CtrlMode::Keep;
|
||||||
@@ -17,7 +17,7 @@ pub struct TankSensor<'a> {
|
|||||||
one_wire_bus: OneWire<Flex<'a>>,
|
one_wire_bus: OneWire<Flex<'a>>,
|
||||||
tank_channel: Adc<'a, ADC1<'a>, Blocking>,
|
tank_channel: Adc<'a, ADC1<'a>, Blocking>,
|
||||||
tank_power: Output<'a>,
|
tank_power: Output<'a>,
|
||||||
tank_pin: AdcPin<GPIO5<'a>, ADC1<'a>>,
|
tank_pin: AdcPin<GPIO5<'a>, ADC1<'a>, AdcCalLine<ADC1<'a>>>,
|
||||||
flow_counter: Unit<'a, 1>,
|
flow_counter: Unit<'a, 1>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ impl<'a> TankSensor<'a> {
|
|||||||
one_wire_pin.apply_output_config(&OutputConfig::default().with_pull(Pull::None));
|
one_wire_pin.apply_output_config(&OutputConfig::default().with_pull(Pull::None));
|
||||||
|
|
||||||
let mut adc1_config = AdcConfig::new();
|
let mut adc1_config = AdcConfig::new();
|
||||||
let tank_pin = adc1_config.enable_pin(gpio5, Attenuation::_11dB);
|
let tank_pin = adc1_config.enable_pin_with_cal::<_, AdcCalLine<_>>(gpio5, Attenuation::_11dB);
|
||||||
let tank_channel = Adc::new(adc1, adc1_config);
|
let tank_channel = Adc::new(adc1, adc1_config);
|
||||||
|
|
||||||
let one_wire_bus = OneWire::new(one_wire_pin, false);
|
let one_wire_bus = OneWire::new(one_wire_pin, false);
|
||||||
@@ -146,8 +146,7 @@ impl<'a> TankSensor<'a> {
|
|||||||
self.tank_power.set_low();
|
self.tank_power.set_low();
|
||||||
|
|
||||||
store.sort();
|
store.sort();
|
||||||
//TODO probably wrong? check!
|
let median_mv = store[TANK_MULTI_SAMPLE / 2] as f32;
|
||||||
let median_mv = store[6] as f32 * 3300_f32 / 4096_f32;
|
Ok(median_mv/1000.0)
|
||||||
Ok(median_mv)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user