ESPHome  2025.2.0
esp32_dac.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "esphome/core/hal.h"
7 
8 #ifdef USE_ESP32
9 
10 #ifdef USE_ESP_IDF
11 #include <driver/dac_oneshot.h>
12 #endif
13 
14 namespace esphome {
15 namespace esp32_dac {
16 
17 class ESP32DAC : public output::FloatOutput, public Component {
18  public:
19  void set_pin(InternalGPIOPin *pin) { pin_ = pin; }
20 
22  void setup() override;
23  void on_safe_shutdown() override;
24  void dump_config() override;
26  float get_setup_priority() const override { return setup_priority::HARDWARE; }
27 
28  protected:
29  void write_state(float state) override;
30 
32 #ifdef USE_ESP_IDF
33  dac_oneshot_handle_t dac_handle_;
34 #endif
35 };
36 
37 } // namespace esp32_dac
38 } // namespace esphome
39 
40 #endif
void setup() override
Initialize pin.
Definition: esp32_dac.cpp:22
void set_pin(InternalGPIOPin *pin)
Definition: esp32_dac.h:19
InternalGPIOPin * pin_
Definition: esp32_dac.h:31
Base class for all output components that can output a variable level, like PWM.
Definition: float_output.h:31
const float HARDWARE
For components that deal with hardware and are very important like GPIO switch.
Definition: component.cpp:18
void on_safe_shutdown() override
Definition: esp32_dac.cpp:34
dac_oneshot_handle_t dac_handle_
Definition: esp32_dac.h:33
float get_setup_priority() const override
HARDWARE setup_priority.
Definition: esp32_dac.h:26
Implementation of SPI Controller mode.
Definition: a01nyub.cpp:7
void write_state(float state) override
Definition: esp32_dac.cpp:46
void dump_config() override
Definition: esp32_dac.cpp:40
bool state
Definition: fan.h:34