ESPHome 2026.2.3
Loading...
Searching...
No Matches
nau7802.h
Go to the documentation of this file.
1#pragma once
2
7
8#include <cinttypes>
9
10namespace esphome {
11namespace nau7802 {
12
23
31
41 // Never write this to a register
43};
44
50
52 public:
53 void set_samples_per_second(NAU7802SPS sps) { this->sps_ = sps; }
54 void set_ldo_voltage(NAU7802LDO ldo) { this->ldo_ = ldo; }
55 void set_gain(NAU7802Gain gain) { this->gain_ = gain; }
56 void set_gain_calibration(float gain_calibration) { this->gain_calibration_ = gain_calibration; }
57 void set_offset_calibration(int32_t offset_calibration) { this->offset_calibration_ = offset_calibration; }
61
62 void setup() override;
63 void loop() override;
64 void dump_config() override;
65 void update() override;
66
67 protected:
68 //
69 // Internal state
70 //
71 enum class CalibrationState : uint8_t {
73 OFFSET,
74 GAIN,
76
81
82 //
83 // Config values
84 //
88
89 //
90 // Internal Methods
91 //
93 void complete_setup_();
94 void write_value_(uint8_t start_reg, size_t size, int32_t value);
95 int32_t read_value_(uint8_t start_reg, size_t size);
96 bool is_data_ready_();
97 void set_calibration_failure_(bool failed);
98};
99
100template<typename... Ts>
101class NAU7802CalbrateExternalOffsetAction : public Action<Ts...>, public Parented<NAU7802Sensor> {
102 public:
103 void play(const Ts &...x) override { this->parent_->calibrate_external_offset(); }
104};
105
106template<typename... Ts>
107class NAU7802CalbrateInternalOffsetAction : public Action<Ts...>, public Parented<NAU7802Sensor> {
108 public:
109 void play(const Ts &...x) override { this->parent_->calibrate_internal_offset(); }
110};
111
112template<typename... Ts> class NAU7802CalbrateGainAction : public Action<Ts...>, public Parented<NAU7802Sensor> {
113 public:
114 void play(const Ts &...x) override { this->parent_->calibrate_gain(); }
115};
116
117} // namespace nau7802
118} // namespace esphome
BedjetMode mode
BedJet operating mode.
Helper class to easily give an object a parent of type T.
Definition helpers.h:1471
This class simplifies creating components that periodically check a state.
Definition component.h:512
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:133
void play(const Ts &...x) override
Definition nau7802.h:114
void set_samples_per_second(NAU7802SPS sps)
Definition nau7802.h:53
bool calibrate_(enum NAU7802CalibrationModes mode)
Definition nau7802.cpp:241
void set_gain_calibration(float gain_calibration)
Definition nau7802.h:56
void set_ldo_voltage(NAU7802LDO ldo)
Definition nau7802.h:54
void write_value_(uint8_t start_reg, size_t size, int32_t value)
Definition nau7802.cpp:219
int32_t read_value_(uint8_t start_reg, size_t size)
Definition nau7802.cpp:227
enum esphome::nau7802::NAU7802Sensor::CalibrationState INACTIVE
void set_offset_calibration(int32_t offset_calibration)
Definition nau7802.h:57
void set_calibration_failure_(bool failed)
Definition nau7802.cpp:259
void set_gain(NAU7802Gain gain)
Definition nau7802.h:55
Base-class for all sensors.
Definition sensor.h:43
AlsGain501 gain
@ NAU7802_CALIBRATE_GAIN
Definition nau7802.h:48
@ NAU7802_CALIBRATE_EXTERNAL_OFFSET
Definition nau7802.h:46
@ NAU7802_CALIBRATE_INTERNAL_OFFSET
Definition nau7802.h:47
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
size_t size
Definition helpers.h:729
uint16_t x
Definition tt21100.cpp:5