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

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

#include <sensesp/transforms/voltagedivider.h>

Inheritance diagram for sensesp::VoltageDividerR2:
[legend]

Public Member Functions

 VoltageDividerR2 (float R1, float Vin=3.3, String config_path="")
 
virtual void set_input (float Vout, uint8_t ignored=0) override
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from sensesp::SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from sensesp::Transform< C, P >
 Transform (String config_path="")
 
Transform< C, P > * connect_from (ValueProducer< P > *producer0, ValueProducer< P > *producer1=NULL, ValueProducer< P > *producer2=NULL, ValueProducer< P > *producer3=NULL, ValueProducer< P > *producer4=NULL)
 
- Public Member Functions inherited from sensesp::TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from sensesp::Configurable
 Configurable (String config_path="", String description="", int sort_order=1000)
 
String get_description ()
 
void set_description (String description)
 Set the description of the Configurable.
 
int get_sort_order ()
 
void set_sort_order (int sort_order)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from sensesp::Startable
 Startable (int priority=0)
 
virtual void start ()
 
const int get_start_priority ()
 
void set_start_priority (int priority)
 
- Public Member Functions inherited from sensesp::ValueConsumer< C >
virtual void set_input (C new_value, uint8_t input_channel=0)
 
void connect_from (ValueProducer< C > *producer, uint8_t input_channel=0)
 
- Public Member Functions inherited from sensesp::ValueProducer< P >
 ValueProducer ()
 
virtual const Pget () const
 
void connect_to (ValueConsumer< P > *consumer, uint8_t input_channel=0)
 
void connect_to (ValueConsumer< CT > *consumer, uint8_t input_channel=0)
 Connect a producer to a consumer of a different type.
 
Transform< P, T2 > * connect_to (Transform< P, T2 > *consumer_producer, uint8_t input_channel=0)
 
Transform< TT, T2 > * connect_to (Transform< TT, T2 > *consumer_producer, uint8_t input_channel=0)
 Connect a producer to a transform with a different input type.
 
void emit (P 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 R1_
 
float Vin_
 
- Protected Attributes inherited from sensesp::Configurable
String description_ = ""
 
int sort_order_ = 1000
 
- Protected Attributes inherited from sensesp::ValueProducer< P >
P output
 

Additional Inherited Members

- Static Public Member Functions inherited from sensesp::TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from sensesp::Startable
static void start_all ()
 
- Public Attributes inherited from sensesp::Configurable
const String config_path_
 
- Protected Member Functions inherited from sensesp::Configurable
virtual void load_configuration ()
 

Detailed Description

Uses the voltage divider formula to calculate (and output) the resistance of R2 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.
  • R1 - also a parameter to this transform, and also from your physical voltage divider.

Knowing Vin, Vout, and R1, we can calculate R2 (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 73 of file voltagedivider.h.

Constructor & Destructor Documentation

◆ VoltageDividerR2()

sensesp::VoltageDividerR2::VoltageDividerR2 ( float  R1,
float  Vin = 3.3,
String  config_path = "" 
)

Definition at line 46 of file voltagedivider.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ get_config_schema()

String sensesp::VoltageDividerR2::get_config_schema ( )
overridevirtual

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org

Reimplemented from sensesp::Configurable.

Definition at line 68 of file voltagedivider.cpp.

◆ get_configuration()

void sensesp::VoltageDividerR2::get_configuration ( JsonObject configObject)
overridevirtual

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonDocument::as<JsonObject>() and returned.

Reimplemented from sensesp::Configurable.

Definition at line 55 of file voltagedivider.cpp.

◆ set_configuration()

bool sensesp::VoltageDividerR2::set_configuration ( const JsonObject config)
overridevirtual

Sets the current state of local member variables using the data stored in config.

Reimplemented from sensesp::Configurable.

Definition at line 70 of file voltagedivider.cpp.

◆ set_input()

void sensesp::VoltageDividerR2::set_input ( float  Vout,
uint8_t  ignored = 0 
)
overridevirtual

Definition at line 51 of file voltagedivider.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ R1_

float sensesp::VoltageDividerR2::R1_
protected

Definition at line 85 of file voltagedivider.h.

◆ Vin_

float sensesp::VoltageDividerR2::Vin_
protected

Definition at line 86 of file voltagedivider.h.


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