mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-10-03 18:09:02 -04:00
57 lines
1.1 KiB
C++
57 lines
1.1 KiB
C++
#pragma once
|
|
//
|
|
// FILE: TLC5947.h
|
|
// AUTHOR: Rob Tillaart
|
|
// VERSION: 0.1.1
|
|
// DATE: 2023-06-17
|
|
// PURPOSE: Arduino library for the TLC5947 24 channel PWM device
|
|
// URL: https://github.com/RobTillaart/TLC5947
|
|
|
|
|
|
#define TLC5947_LIB_VERSION (F("0.1.1"))
|
|
|
|
|
|
#include "Arduino.h"
|
|
|
|
|
|
#define TLC5947_MAX_CHANNELS 24
|
|
|
|
|
|
class TLC5947
|
|
{
|
|
public:
|
|
TLC5947(uint8_t clock, uint8_t data, uint8_t latch, uint8_t blank);
|
|
~TLC5947();
|
|
|
|
bool begin();
|
|
|
|
// fill the buffer
|
|
bool setPWM(uint8_t channel, uint16_t PWM);
|
|
void setAll(uint16_t PWM);
|
|
// get from the buffer, might differ from device!
|
|
uint16_t getPWM(uint8_t channel);
|
|
|
|
// percentage wrappers
|
|
bool setPercentage(uint8_t channel, float perc);
|
|
void setPercentageAll(float perc);
|
|
float getPercentage(uint8_t channel);
|
|
|
|
// write the buffer to the device
|
|
void write();
|
|
|
|
// control the blank line.
|
|
void enable();
|
|
void disable();
|
|
|
|
private:
|
|
uint16_t *_buffer;
|
|
uint8_t _clock;
|
|
uint8_t _data;
|
|
uint8_t _latch;
|
|
uint8_t _blank;
|
|
};
|
|
|
|
|
|
// -- END OF FILE --
|
|
|