Skip to content

GyverLibs/GyverDimmer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

latest PIO Foo Foo Foo

Foo

GyverDimmer

Библиотека для управления симисторным диммером с Arduino

  • Одноканальный и многоканальный диммер по алгоритму Брезенхема
  • Одноканальный и многоканальный фазовый диммер

Совместимость

Совместима со всеми Arduino платформами (используются Arduino-функции)

Содержание

Установка

  • Библиотеку можно найти по названию GyverDimmer и установить через менеджер библиотек в:
    • Arduino IDE
    • Arduino IDE v2
    • PlatformIO
  • Скачать библиотеку .zip архивом для ручной установки:
    • Распаковать и положить в C:\Program Files (x86)\Arduino\libraries (Windows x64)
    • Распаковать и положить в C:\Program Files\Arduino\libraries (Windows x32)
    • Распаковать и положить в Документы/Arduino/libraries/
    • (Arduino IDE) автоматическая установка из .zip: Скетч/Подключить библиотеку/Добавить .ZIP библиотеку… и указать скачанный архив
  • Читай более подробную инструкцию по установке библиотек здесь

Обновление

  • Рекомендую всегда обновлять библиотеку: в новых версиях исправляются ошибки и баги, а также проводится оптимизация и добавляются новые фичи
  • Через менеджер библиотек IDE: найти библиотеку как при установке и нажать "Обновить"
  • Вручную: удалить папку со старой версией, а затем положить на её место новую. "Замену" делать нельзя: иногда в новых версиях удаляются файлы, которые останутся при замене и могут привести к ошибкам!

Инициализация

DimmerBres<пин> dim;                // диммер по Брезенхему
DimmerBresMulti<количество> dim;    // многоканальный диммер по Брезенхему
Dimmer<пин> dim;                    // фазовый диммер
DimmerMulti<количество> dim;        // многоканальный фазовый диммер

Использование

// ====== DimmerBres ======
void write(uint8_t dim);    // установить величину диммирования 0-255
void tick();                // вызывать в прерывании детектора нуля

// ====== DimmerBresMulti ======
void attach(uint8_t num, uint8_t pin);  // подключить канал под номером num на пин pin
void write(uint8_t ch, uint8_t dim);    // установить величину диммирования 0-255 на канал ch
void tick();                            // вызывать в прерывании детектора нуля

// ====== Dimmer ======
void write(uint8_t dim);    // установить величину диммирования 0-255
bool tickZero();            // вызывать в прерывании детектора нуля
void tickTimer();           // вызывать в прерывании таймера 
int getPeriod();            // получить период для таймера

// ====== DimmerMulti ======
void attach(uint8_t num, uint8_t pin);  // подключить канал под номером num на пин pin
void write(uint8_t ch, uint8_t dim);    // установить величину диммирования 0-255 на канал ch
bool tickZero();            // вызывать в прерывании детектора нуля
void tickTimer();           // вызывать в прерывании таймера 
int getPeriod();            // получить период для таймера

Пример

Остальные примеры смотри в examples!

// тест одного канала по Брезенхему

#define D_PIN 5
// zero cross на D2

#include <GyverDimmer.h>
DimmerBres<D_PIN> dim;   // указать пин диммера

void setup() {
  // завести прерывание на детектор нуля
  attachInterrupt(0, isr, RISING);  // D2 == 0
}

void isr() {
  dim.tick(); // вызывать тик в прерывании детектора нуля
}

void loop() {
  // принимает 0-255
  dim.write(analogRead(A0) / 4);
  delay(100);
}

Версии

  • v1.0
  • v1.1 - переделан FastIO
  • v1.1.1 - убран FastIO
  • v1.2 - исправил баг в DimmerBres и DimmerBresMulti

Баги и обратная связь

При нахождении багов создавайте Issue, а лучше сразу пишите на почту alex@alexgyver.ru
Библиотека открыта для доработки и ваших Pull Request'ов!

При сообщении о багах или некорректной работе библиотеки нужно обязательно указывать:

  • Версия библиотеки
  • Какой используется МК
  • Версия SDK (для ESP)
  • Версия Arduino IDE
  • Корректно ли работают ли встроенные примеры, в которых используются функции и конструкции, приводящие к багу в вашем коде
  • Какой код загружался, какая работа от него ожидалась и как он работает в реальности
  • В идеале приложить минимальный код, в котором наблюдается баг. Не полотно из тысячи строк, а минимальный код

About

Библиотека для управления симисторным диммером с Arduino

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages