diff --git a/src/extras/Pixel.cpp b/src/extras/Pixel.cpp index 7c40a3d..a2cca3c 100644 --- a/src/extras/Pixel.cpp +++ b/src/extras/Pixel.cpp @@ -14,6 +14,8 @@ void sk68xx::setRGB(uint8_t r, uint8_t g, uint8_t b){ if(!*rf) return; + + Serial.printf("%d %d %d\n",r,g,b); rf->clear(); loadColor(g); @@ -25,6 +27,14 @@ void sk68xx::setRGB(uint8_t r, uint8_t g, uint8_t b){ /////////////////// +void sk68xx::setHSV(float h, float s, float v){ + float r,g,b; + LedPin::HSVtoRGB(h,s,v,&r,&g,&b); + setRGB(r*255,g*255,b*255); +} + +/////////////////// + void sk68xx::loadColor(uint8_t c){ for(int i=7;i>=0;i--){ diff --git a/src/extras/Pixel.h b/src/extras/Pixel.h index b8ec4a3..35002d9 100644 --- a/src/extras/Pixel.h +++ b/src/extras/Pixel.h @@ -6,6 +6,7 @@ #pragma once #include "RFControl.h" +#include "PwmPin.h" class sk68xx { private: @@ -16,6 +17,7 @@ class sk68xx { public: sk68xx(int pin); // creates addressable SK68XX RGB LED on pin void setRGB(uint8_t r, uint8_t g, uint8_t b); // sets color to rgb values (0-255) + void setHSV(float h, float s, float v); // sets color to hsv values where h=[0,360], s=[0,1], v=[0,1] int getPin(){return(rf->getPin());} // returns pin number operator bool(){ // override boolean operator to return true/false if creation succeeded/failed diff --git a/src/extras/extras.ino b/src/extras/extras.ino index 7b1f674..d62d1b2 100644 --- a/src/extras/extras.ino +++ b/src/extras/extras.ino @@ -18,6 +18,17 @@ void setup() { Serial.printf("Test 7 on Pin=%d check: %s\n",test7.getPin(),test7?"OKAY":"BAD"); Serial.printf("Test 6 on Pin=%d check: %s\n",test6.getPin(),test6?"OKAY":"BAD"); +while(1){ + px.setHSV(60,0.9,0.5); + delay(1000); + px.setHSV(120,0.9,0.5); + delay(1000); + px.setHSV(240,0.9,0.5); + delay(1000); +} + + while(1); + while(1){ for(int i=0;i<50;i++){ px.setRGB(i,0,0);