项目作者: pmarchini

项目描述 :
Esp32-idf zerocrossing library
高级语言: C
项目地址: git://github.com/pmarchini/Esp32Dimmer.git
创建时间: 2021-03-05T18:53:02Z
项目社区:https://github.com/pmarchini/Esp32Dimmer

开源协议:

下载


ESP32 Triac Dimmer Driver

This library provides an API to control dimmer devices using ESP-IDF 5.x.
For ESP-IDF 4.x projects, please use the v1.0.0 release of this library.
It supports both toggle and normal modes, and allows you to set the power levels of the dimmer.

Prerequisites

  • ESP32 board with ESP-IDF v5.0 or higher
  • A dimmable AC load

Installation

Clone the component into your project components directory.

Usage

  1. Include the library header in your program
    1. #include "esp32-triac-dimmer-driver.h"
  2. Instantiate the dimmers.
    ```
    dimmertyp ptr_dimmer;
    dimmertyp
    ptr_dimmer_2;

ptr_dimmer = createDimmer(TRIAC_1_GPIO, ZEROCROSS_GPIO);
ptr_dimmer_2 = createDimmer(TRIAC_2_GPIO, ZEROCROSS_GPIO);

  1. 3. Start the dimmers.

begin(ptr_dimmer, NORMAL_MODE, ON, _50Hz);
begin(ptr_dimmer_2, NORMAL_MODE, ON, _50Hz);

  1. 4. Set or get the power of the dimmers.

// Set the power level to 50
setPower(ptr_dimmer, 50);

// Get the current power level
int powerLevel = getPower(ptr_dimmer);
```

API

The library provides the following API methods:

  • createDimmer - creates a new dimmer object
  • begin - starts the dimmer
  • setPower - sets the power level of the dimmer
  • getPower - gets the current power level of the dimmer
  • setState - sets the state of the dimmer (on/off)
  • getState - gets the current state of the dimmer
  • changeState - changes the state of the dimmer (on/off)
  • setMode - sets the mode of the dimmer (toggle/normal)
  • getMode - gets the current mode of the dimmer
  • toggleSettings - sets the toggle range of the dimmer

Example schematics

Zero-crossing detector

image

Triac command

image

Migrated to ESP-IDF 5.x and Component

This library has been migrated to ESP-IDF 5.x and is no longer compatible with previous versions.
It has also been transformed into an ESP-IDF component for easier integration.

To use the basic example, add the component to your project’s components directory and replace the main file with the code from examples/base/main.c.

If you are using the library in a project that is not using ESP-IDF 5.x, you can still use the old version of the library (v1.0.0) which is compatible with ESP-IDF 4.x.

Contributing

We welcome contributions to this library. Please open a pull request or an issue to get started.

License

This library is released under the MIT License.