ESPHome 2026.6.0-dev
Loading...
Searching...
No Matches
nau7802.h
Go to the documentation of this file.
1#pragma once
2
7
8#include <cinttypes>
9
10namespace esphome::nau7802 {
11
22
30
40 // Never write this to a register
42};
43
49
51 public:
52 void set_samples_per_second(NAU7802SPS sps) { this->sps_ = sps; }
53 void set_ldo_voltage(NAU7802LDO ldo) { this->ldo_ = ldo; }
54 void set_gain(NAU7802Gain gain) { this->gain_ = gain; }
55 void set_gain_calibration(float gain_calibration) { this->gain_calibration_ = gain_calibration; }
56 void set_offset_calibration(int32_t offset_calibration) { this->offset_calibration_ = offset_calibration; }
60
61 void setup() override;
62 void loop() override;
63 void dump_config() override;
64 void update() override;
65
66 protected:
67 //
68 // Internal state
69 //
70 enum class CalibrationState : uint8_t {
72 OFFSET,
73 GAIN,
75
80
81 //
82 // Config values
83 //
87
88 //
89 // Internal Methods
90 //
92 void complete_setup_();
93 void write_value_(uint8_t start_reg, size_t size, int32_t value);
94 int32_t read_value_(uint8_t start_reg, size_t size);
95 bool is_data_ready_();
96 void set_calibration_failure_(bool failed);
97};
98
99template<typename... Ts>
100class NAU7802CalbrateExternalOffsetAction : public Action<Ts...>, public Parented<NAU7802Sensor> {
101 public:
102 void play(const Ts &...x) override { this->parent_->calibrate_external_offset(); }
103};
104
105template<typename... Ts>
106class NAU7802CalbrateInternalOffsetAction : public Action<Ts...>, public Parented<NAU7802Sensor> {
107 public:
108 void play(const Ts &...x) override { this->parent_->calibrate_internal_offset(); }
109};
110
111template<typename... Ts> class NAU7802CalbrateGainAction : public Action<Ts...>, public Parented<NAU7802Sensor> {
112 public:
113 void play(const Ts &...x) override { this->parent_->calibrate_gain(); }
114};
115
116} // namespace esphome::nau7802
BedjetMode mode
BedJet operating mode.
Helper class to easily give an object a parent of type T.
Definition helpers.h:1861
This class simplifies creating components that periodically check a state.
Definition component.h:585
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:132
void play(const Ts &...x) override
Definition nau7802.h:113
void set_samples_per_second(NAU7802SPS sps)
Definition nau7802.h:52
bool calibrate_(enum NAU7802CalibrationModes mode)
Definition nau7802.cpp:240
void set_gain_calibration(float gain_calibration)
Definition nau7802.h:55
void set_ldo_voltage(NAU7802LDO ldo)
Definition nau7802.h:53
void write_value_(uint8_t start_reg, size_t size, int32_t value)
Definition nau7802.cpp:218
int32_t read_value_(uint8_t start_reg, size_t size)
Definition nau7802.cpp:226
enum esphome::nau7802::NAU7802Sensor::CalibrationState INACTIVE
void set_offset_calibration(int32_t offset_calibration)
Definition nau7802.h:56
void set_calibration_failure_(bool failed)
Definition nau7802.cpp:258
void set_gain(NAU7802Gain gain)
Definition nau7802.h:54
Base-class for all sensors.
Definition sensor.h:47
AlsGain501 gain
@ NAU7802_CALIBRATE_GAIN
Definition nau7802.h:47
@ NAU7802_CALIBRATE_EXTERNAL_OFFSET
Definition nau7802.h:45
@ NAU7802_CALIBRATE_INTERNAL_OFFSET
Definition nau7802.h:46
uint16_t size
Definition helpers.cpp:25
uint16_t x
Definition tt21100.cpp:5