Created LedComponent object, testing basic led.

This commit is contained in:
Yohan Boujon 2023-12-14 15:19:05 +01:00
parent 2d784f02af
commit c5d8457801
5 changed files with 59 additions and 5 deletions

View file

@ -5,9 +5,7 @@
enum class ComponentType {
Digital,
Analog,
I2C,
Serial
Analog
};
class Component{

View file

@ -0,0 +1,22 @@
#include "LedComponent.hpp"
LedComponent::LedComponent(byte pin, byte pin_clock, uint8_t led_number)
: _pin(pin), _pinClock(pin_clock), _ledNumber(led_number), _led(nullptr)
{}
LedComponent::~LedComponent()
{
delete _led;
}
void LedComponent::setup()
{
_led = new ChainableLED(_pinClock,_pin,_ledNumber);
}
void LedComponent::setColor(uint8_t led_number, Color color)
{
if(led_number >= _ledNumber)
return;
_led->setColorRGB(led_number,color.red,color.green,color.blue);
}

View file

@ -0,0 +1,28 @@
#ifndef _HEADER_COMPONENT_LED
#define _HEADER_COMPONENT_LED
#include "Component.hpp"
#include <ChainableLED.h>
struct Color
{
byte red;
byte blue;
byte green;
};
class LedComponent
{
public:
LedComponent(byte pin, byte pin_clock, uint8_t led_number);
~LedComponent();
void setup();
void setColor(uint8_t led_number, Color color);
private:
byte _pin;
byte _pinClock;
uint8_t _ledNumber;
ChainableLED* _led;
};
#endif // _HEADER_COMPONENT_LED

View file

@ -18,5 +18,6 @@ lib_deps =
bbx10/DNSServer@^1.1.0
ArduinoJson
olikraus/U8g2@^2.35.7
extra_scripts =
pre:scripts/dotenv-var.py
seeed-studio/Grove - Chainable RGB LED@^1.0.0
extra_scripts =
pre:scripts/dotenv-var.py

View file

@ -4,6 +4,7 @@
#include "ServerHandler.hpp"
#include "Component.hpp"
#include "LedComponent.hpp"
#include "Screen.hpp"
#ifdef SSID_CLOVER
@ -14,6 +15,7 @@
#endif
Component humidity(ComponentType::Analog, PIN_A0);
LedComponent led(D8,D7,2);
void setup()
{
@ -26,6 +28,7 @@ void setup()
pinMode(D5, OUTPUT);
digitalWrite(D5, LOW);
led.setup();
}
void loop()
@ -34,6 +37,8 @@ void loop()
auto& serverHandler = ServerHandler::GetInstance();
auto& dataHandler = DataHandler::GetInstance();
auto& screen = Display::Screen::GetInstance();
led.setColor(0,{255,0,0});
led.setColor(1,{0,255,0});
// Could not connect after setup: Showing screen failure
if(!serverHandler.isConnected())