SensESP 3.1.0
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
sensesp::VoltageDividerR1 Class Reference

Uses the voltage divider formula to calculate (and output) the resistance of R1 in the circuit. More...

#include <sensesp/transforms/voltagedivider.h>

Inheritance diagram for sensesp::VoltageDividerR1:
[legend]

Public Member Functions

 VoltageDividerR1 (float R2, float Vin=3.3, const String &config_path="")
 
virtual void set (const float &Vout) override
 
virtual bool to_json (JsonObject &root) override
 
virtual bool from_json (const JsonObject &config) override
 
- Public Member Functions inherited from sensesp::SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from sensesp::Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connect_from (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
- Public Member Functions inherited from sensesp::TransformBase
 TransformBase (const String &config_path)
 
- Public Member Functions inherited from sensesp::FileSystemSaveable
 FileSystemSaveable (const String &config_path)
 
virtual bool load () override
 Load and populate the object from a persistent storage.
 
virtual bool save () override
 Save the object to a persistent storage.
 
virtual bool clear () override
 Delete the data from a persistent storage.
 
bool find_config_file (const String &config_path, String &filename)
 
- Public Member Functions inherited from sensesp::Saveable
 Saveable (const String &config_path)
 
virtual bool refresh ()
 Refresh the object. This may or may not access the persistent storage but is not expected to overwrite the object's state.
 
const String & get_config_path () const
 
- Public Member Functions inherited from sensesp::Serializable
- Public Member Functions inherited from sensesp::ValueConsumer< float >
virtual void set_input (const float &new_value)
 
void connect_from (ValueProducer< float > *producer)
 
- Public Member Functions inherited from sensesp::ValueProducer< float >
 ValueProducer ()
 
 ValueProducer (const float &initial_value)
 
virtual const float & get () const
 
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< float, typenameVConsumer::input_type >::value, std::shared_ptr< VConsumer > >::type connect_to (std::shared_ptr< VConsumer > consumer)
 Connect a producer to a transform with a different input type.
 
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< float, typenameVConsumer::input_type >::value, VConsumer * >::type connect_to (VConsumer *consumer)
 
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< float, typenameVConsumer::input_type >::value, VConsumer * >::type connect_to (VConsumer &consumer)
 
void emit (const float &new_value)
 
- Public Member Functions inherited from sensesp::Observable
 Observable ()
 
 Observable (Observable &&other)
 Move constructor.
 
void notify ()
 
void attach (std::function< void()> observer)
 

Protected Attributes

float R2_
 
float Vin_
 
- Protected Attributes inherited from sensesp::Saveable
const String config_path_
 
- Protected Attributes inherited from sensesp::ValueProducer< float >
float output_
 

Additional Inherited Members

- Public Types inherited from sensesp::ValueConsumer< float >
using input_type
 
- Static Public Member Functions inherited from sensesp::TransformBase
static const std::set< TransformBase * > & get_transforms ()
 

Detailed Description

Uses the voltage divider formula to calculate (and output) the resistance of R1 in the circuit.

Vout = (Vin x R2) / (R1 + R2) is the voltage divider formula. We know:

  • Vout - that's the input to this transform, probably coming from an AnalogVoltage transform, or directly from an AnalogInput sensor.
  • Vin - that's one of the paramaters to this transform. It's a fixed voltage that you know from your physical voltage divider circuit.
  • R2 - also a parameter to this transform, and also from your physical voltage divider.

Knowing Vin, Vout, and R2, we can calculate R1 (which is what this transform does).

The purpose of this transform is to help determine the resistance value of a physical sensor of the "variable resistor" type, such as a temperature sensor, or an oil pressure sensor. If we know the resistance of the sensor, we can then determine the temperature (or pressure, etc.) that the sensor is reading, by connecting this transform's output to an instance of the CurveInterpolator transform.

See also
https://github.com/SignalK/SensESP/blob/master/examples/temperature_sender.cpp

Definition at line 34 of file voltagedivider.h.

Constructor & Destructor Documentation

◆ VoltageDividerR1()

sensesp::VoltageDividerR1::VoltageDividerR1 ( float R2,
float Vin = 3.3,
const String & config_path = "" )

Definition at line 5 of file voltagedivider.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ from_json()

bool sensesp::VoltageDividerR1::from_json ( const JsonObject & root)
overridevirtual

Deserializes the current object data from a JsonObject.

Reimplemented from sensesp::Serializable.

Definition at line 21 of file voltagedivider.cpp.

◆ set()

void sensesp::VoltageDividerR1::set ( const float & new_value)
overridevirtual

Used to set an input of this consumer. It is called automatically by a ValueProducer but can also be called manually.

Parameters
new_valuethe value of the input

Reimplemented from sensesp::ValueConsumer< float >.

Definition at line 11 of file voltagedivider.cpp.

Here is the call graph for this function:

◆ to_json()

bool sensesp::VoltageDividerR1::to_json ( JsonObject & root)
overridevirtual

Serializes the current object data into a JsonObject.

Reimplemented from sensesp::Serializable.

Definition at line 15 of file voltagedivider.cpp.

Member Data Documentation

◆ R2_

float sensesp::VoltageDividerR1::R2_
protected

Definition at line 44 of file voltagedivider.h.

◆ Vin_

float sensesp::VoltageDividerR1::Vin_
protected

Definition at line 45 of file voltagedivider.h.


The documentation for this class was generated from the following files: