ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
tm1651.h
Go to the documentation of this file.
1#pragma once
2
4#include "esphome/core/hal.h"
5
6namespace esphome::tm1651 {
7
13
14class TM1651Display final : public Component {
15 public:
16 void set_clk_pin(InternalGPIOPin *pin) { clk_pin_ = pin; }
17 void set_dio_pin(InternalGPIOPin *pin) { dio_pin_ = pin; }
18
19 void setup() override;
20 void dump_config() override;
21
22 void set_brightness(uint8_t new_brightness);
23 void set_brightness(TM1651Brightness new_brightness) { this->set_brightness(static_cast<uint8_t>(new_brightness)); }
24
25 void set_level(uint8_t new_level);
26 void set_level_percent(uint8_t percentage);
27
28 void turn_off();
29 void turn_on();
30
31 protected:
32 uint8_t calculate_level_(uint8_t percentage);
33 void display_level_();
34
35 uint8_t remap_brightness_(uint8_t new_brightness);
36 void update_brightness_(uint8_t on_off_control);
37
38 // low level functions
39 bool write_byte_(uint8_t data);
40
41 void half_cycle_clock_low_(bool data_bit);
44
45 void start_();
46 void stop_();
47
48 void delineate_transmission_(bool dio_state);
49
52
53 bool display_on_{true};
54 uint8_t brightness_{};
55 uint8_t level_{0};
56};
57
58} // namespace esphome::tm1651
void set_brightness(TM1651Brightness new_brightness)
Definition tm1651.h:23
InternalGPIOPin * clk_pin_
Definition tm1651.h:50
void update_brightness_(uint8_t on_off_control)
Definition tm1651.cpp:174
void set_level_percent(uint8_t percentage)
Definition tm1651.cpp:123
void set_brightness(uint8_t new_brightness)
Definition tm1651.cpp:107
void set_clk_pin(InternalGPIOPin *pin)
Definition tm1651.h:16
void delineate_transmission_(bool dio_state)
Definition tm1651.cpp:244
uint8_t calculate_level_(uint8_t percentage)
Definition tm1651.cpp:144
void set_dio_pin(InternalGPIOPin *pin)
Definition tm1651.h:17
bool write_byte_(uint8_t data)
Definition tm1651.cpp:182
uint8_t remap_brightness_(uint8_t new_brightness)
Definition tm1651.cpp:164
void half_cycle_clock_low_(bool data_bit)
Definition tm1651.cpp:195
InternalGPIOPin * dio_pin_
Definition tm1651.h:51
void set_level(uint8_t new_level)
Definition tm1651.cpp:114
void dump_config() override
Definition tm1651.cpp:101