Korekta GREEN - RED
obsługa kolorowania diody poziomu wody
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
|
||||
#define LED_PIN 5
|
||||
#define LED_COUNT 9
|
||||
const uint8_t ledMap[LED_COUNT] = {3, 0, 1, 8, 2, 5, 4, 7, 6};
|
||||
const uint8_t ledMap[LED_COUNT] = { 3, 0, 1, 8, 2, 5, 4, 7, 6 };
|
||||
|
||||
//2DO:
|
||||
//Pomiar światła bh1750 i fotorezystor
|
||||
@@ -80,7 +80,7 @@ float lux = 0.0;
|
||||
|
||||
//NEOPIXELS VARIABLES
|
||||
int8_t neoPixelSwitch = 1;
|
||||
int8_t neoPixelRed = 10;
|
||||
int8_t neoPixelRed = 0;
|
||||
int8_t neoPixelGreen = 10;
|
||||
int8_t neoPixelBlue = 10;
|
||||
|
||||
@@ -94,23 +94,23 @@ int8_t neoPixelLvl_4 = 1;
|
||||
int8_t neoPixelLvl_5 = 1;
|
||||
int8_t neoPixelWaterLvlR = 1;
|
||||
int8_t neoPixelWaterLvlG = 1;
|
||||
int8_t neoPixelWaterLvlB = 1;
|
||||
int8_t neoPixelTank = 1;
|
||||
|
||||
|
||||
|
||||
|
||||
void IRAM_ATTR dimmButtonFcn() {
|
||||
dimmStep ++;
|
||||
dimmStep++;
|
||||
if (dimmStep > DIMM_MAX_VALUE) {
|
||||
dimmStep = 0;
|
||||
}
|
||||
}
|
||||
void IRAM_ATTR speedButtonFcn() {
|
||||
fanSpeedVal ++;
|
||||
fanSpeedVal++;
|
||||
if (fanSpeedVal >= 3) {
|
||||
fanSpeedVal = 1;
|
||||
}
|
||||
|
||||
}
|
||||
void IRAM_ATTR hygrostatButtonFcn() {
|
||||
hygrostatVal = hygrostatVal + 5;
|
||||
@@ -119,7 +119,7 @@ void IRAM_ATTR hygrostatButtonFcn() {
|
||||
}
|
||||
}
|
||||
|
||||
void setFanSpeed (uint8_t spdInpt){
|
||||
void setFanSpeed(uint8_t spdInpt) {
|
||||
if (spdInpt == 1) {
|
||||
delay(100);
|
||||
digitalWrite(PIN_SPEED_2, LOW);
|
||||
@@ -178,7 +178,7 @@ uint32_t Wheel(byte pos) {
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
|
||||
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
|
||||
Serial.println(F("SSD1306 allocation failed"));
|
||||
}
|
||||
|
||||
@@ -224,8 +224,8 @@ void setup() {
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// ###################################################
|
||||
// WYŚWIETLACZ
|
||||
// ###################################################
|
||||
// WYŚWIETLACZ
|
||||
display.clearDisplay();
|
||||
display.setCursor(90, 0);
|
||||
display.println(Version);
|
||||
@@ -249,15 +249,15 @@ void loop() {
|
||||
display.setCursor(115, 10);
|
||||
display.println(fanSpeedVal);
|
||||
|
||||
// display.setCursor(0, 10);
|
||||
// display.println("FanSpd:");
|
||||
// display.setCursor(50, 10);
|
||||
// display.println(fanSpeedVal);
|
||||
//
|
||||
// display.setCursor(70, 10);
|
||||
// display.println("Hygst:");
|
||||
// display.setCursor(115, 10);
|
||||
// display.println(hygrostatVal);
|
||||
// display.setCursor(0, 10);
|
||||
// display.println("FanSpd:");
|
||||
// display.setCursor(50, 10);
|
||||
// display.println(fanSpeedVal);
|
||||
//
|
||||
// display.setCursor(70, 10);
|
||||
// display.println("Hygst:");
|
||||
// display.setCursor(115, 10);
|
||||
// display.println(hygrostatVal);
|
||||
|
||||
display.setCursor(0, 20);
|
||||
display.println("Hum:");
|
||||
@@ -315,21 +315,21 @@ void loop() {
|
||||
// jeśli osiągnięto bliską wilgotność na 2 biegu zaświeć jedną i przciemnij drugą
|
||||
// jeśli osiągnięto wilgotność przyciemnij diody zależnie od biegu
|
||||
if (hum > hygrostatVal) {
|
||||
setFanSpeed (0);
|
||||
setFanSpeed(0);
|
||||
neoPixelSpeed_1 = 1;
|
||||
neoPixelSpeed_2 = 0;
|
||||
|
||||
if (fanSpeedVal == 2){
|
||||
if (fanSpeedVal == 2) {
|
||||
neoPixelSpeed_2 = 1;
|
||||
}
|
||||
} else if (hum >= (hygrostatVal - 5) and fanSpeedVal == 2) {
|
||||
setFanSpeed (1); //ustaw predkość 1 zbliża sie do docelowej wartości
|
||||
setFanSpeed(1); //ustaw predkość 1 zbliża sie do docelowej wartości
|
||||
neoPixelSpeed_1 = NON_ACTIVE_LED_DIVIDER;
|
||||
neoPixelSpeed_2 = 1;
|
||||
} else if (hum < hygrostatVal) {
|
||||
setFanSpeed (fanSpeedVal);
|
||||
setFanSpeed(fanSpeedVal);
|
||||
neoPixelSpeed_1 = NON_ACTIVE_LED_DIVIDER;
|
||||
if (fanSpeedVal == 1){
|
||||
if (fanSpeedVal == 1) {
|
||||
neoPixelSpeed_2 = 0;
|
||||
} else {
|
||||
neoPixelSpeed_2 = NON_ACTIVE_LED_DIVIDER;
|
||||
@@ -393,26 +393,42 @@ void loop() {
|
||||
neoPixelLvl_5 = 1;
|
||||
}
|
||||
|
||||
if (dimmStep == 0 ){
|
||||
analogWrite(LED_WHT_TANK, 0);
|
||||
analogWrite(LED_RED_TANK, 0);
|
||||
} else {
|
||||
if (waterLvlVal >= 45 ) { // waterLvlVal > 45 znnaczy bez wiody
|
||||
neoPixelWaterLvlR = 1;
|
||||
neoPixelWaterLvlG = 0; //Przygotowanie pod żółty kolor jak mało wody
|
||||
analogWrite(LED_WHT_TANK, 0);
|
||||
analogWrite(LED_RED_TANK, dimmVal*NON_ACTIVE_LED_DIVIDER);
|
||||
} else {
|
||||
neoPixelWaterLvlR = 0;
|
||||
neoPixelWaterLvlG = 1;
|
||||
analogWrite(LED_WHT_TANK, dimmVal*NON_ACTIVE_LED_DIVIDER);
|
||||
// wartości zależne od sposobu zasilania PC/Powerbank/Ładowarka
|
||||
|
||||
//46-47 - sonda nie dotyka wody
|
||||
//26 - ledwo na dnie
|
||||
// 25 jest troche wody
|
||||
// 24-25 połowa zbiornika
|
||||
// 23-24 pełen zbiornik
|
||||
|
||||
if (waterLvlVal >= 38) { // Empty TANK
|
||||
neoPixelWaterLvlR = 10;
|
||||
neoPixelWaterLvlG = 0;
|
||||
neoPixelWaterLvlB = 0;
|
||||
analogWrite(LED_WHT_TANK, dimmVal * 8);
|
||||
analogWrite(LED_RED_TANK, 0);
|
||||
// tu set fan
|
||||
}
|
||||
if (waterLvlVal < 40 && waterLvlVal >= 25) { //a bit of water TANK
|
||||
neoPixelWaterLvlR = 10;
|
||||
neoPixelWaterLvlG = 10;
|
||||
neoPixelWaterLvlB = 0;
|
||||
analogWrite(LED_WHT_TANK, 0);
|
||||
analogWrite(LED_RED_TANK, dimmVal * 8);
|
||||
}
|
||||
if (waterLvlVal <= 24) { // FULL TANK
|
||||
neoPixelWaterLvlR = neoPixelRed;
|
||||
neoPixelWaterLvlG = neoPixelGreen;
|
||||
neoPixelWaterLvlB = neoPixelBlue;
|
||||
analogWrite(LED_WHT_TANK, 0);
|
||||
analogWrite(LED_RED_TANK, dimmVal * 8);
|
||||
// tu set fan
|
||||
}
|
||||
|
||||
// if minął czas -> resetVal = 0;
|
||||
|
||||
if (resetVal == 1 ){
|
||||
// if minął czas -> resetVal = 0;
|
||||
|
||||
if (resetVal == 1) {
|
||||
neoPixelFilter = 0;
|
||||
} else {
|
||||
neoPixelFilter = 1;
|
||||
@@ -424,17 +440,16 @@ void loop() {
|
||||
// #################################################################
|
||||
// #################################################################
|
||||
pixels.clear();
|
||||
pixels.setPixelColor(ADR_NEOPXL_SPEED_1, pixels.Color(int((neoPixelRed*dimmVal*neoPixelSwitch*neoPixelSpeed_1)/NON_ACTIVE_LED_DIVIDER), int((neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelSpeed_1)/NON_ACTIVE_LED_DIVIDER), int((neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelSpeed_1)/NON_ACTIVE_LED_DIVIDER)));
|
||||
pixels.setPixelColor(ADR_NEOPXL_SPEED_2, pixels.Color(int((neoPixelRed*dimmVal*neoPixelSwitch*neoPixelSpeed_2)/NON_ACTIVE_LED_DIVIDER), int((neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelSpeed_2)/NON_ACTIVE_LED_DIVIDER), int((neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelSpeed_2)/NON_ACTIVE_LED_DIVIDER)));
|
||||
pixels.setPixelColor(ADR_NEOPXL_FILTER, pixels.Color(neoPixelRed*dimmVal*neoPixelSwitch*neoPixelFilter, neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelFilter, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelFilter));
|
||||
pixels.setPixelColor(ADR_NEOPXL_L1, pixels.Color(neoPixelRed*dimmVal*neoPixelSwitch*neoPixelLvl_1, neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelLvl_1, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelLvl_1));
|
||||
pixels.setPixelColor(ADR_NEOPXL_L2, pixels.Color(neoPixelRed*dimmVal*neoPixelSwitch*neoPixelLvl_2, neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelLvl_2, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelLvl_2));
|
||||
pixels.setPixelColor(ADR_NEOPXL_L3, pixels.Color(neoPixelRed*dimmVal*neoPixelSwitch*neoPixelLvl_3, neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelLvl_3, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelLvl_3));
|
||||
pixels.setPixelColor(ADR_NEOPXL_L4, pixels.Color(neoPixelRed*dimmVal*neoPixelSwitch*neoPixelLvl_4, neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelLvl_4, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelLvl_4));
|
||||
pixels.setPixelColor(ADR_NEOPXL_L5, pixels.Color(neoPixelRed*dimmVal*neoPixelSwitch*neoPixelLvl_5, neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelLvl_5, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelLvl_5));
|
||||
pixels.setPixelColor(ADR_NEOPXL_WATERLVL, pixels.Color(neoPixelRed*dimmVal*neoPixelSwitch*neoPixelWaterLvlR, neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelWaterLvlG, 0));
|
||||
// pixels.setPixelColor(ADR_NEOPXL_TANK, pixels.Color(neoPixelRed*dimmVal*neoPixelSwitch*neoPixelTank, neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelTank, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelTank));
|
||||
pixels.setPixelColor(ADR_NEOPXL_SPEED_1, pixels.Color(int((neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelSpeed_1) / NON_ACTIVE_LED_DIVIDER), int((neoPixelRed * dimmVal * neoPixelSwitch * neoPixelSpeed_1) / NON_ACTIVE_LED_DIVIDER), int((neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelSpeed_1) / NON_ACTIVE_LED_DIVIDER)));
|
||||
pixels.setPixelColor(ADR_NEOPXL_SPEED_2, pixels.Color(int((neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelSpeed_2) / NON_ACTIVE_LED_DIVIDER), int((neoPixelRed * dimmVal * neoPixelSwitch * neoPixelSpeed_2) / NON_ACTIVE_LED_DIVIDER), int((neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelSpeed_2) / NON_ACTIVE_LED_DIVIDER)));
|
||||
pixels.setPixelColor(ADR_NEOPXL_FILTER, pixels.Color(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelFilter, neoPixelRed * dimmVal * neoPixelSwitch * neoPixelFilter, neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelFilter));
|
||||
pixels.setPixelColor(ADR_NEOPXL_L1, pixels.Color(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_1, neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_1, neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_1));
|
||||
pixels.setPixelColor(ADR_NEOPXL_L2, pixels.Color(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_2, neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_2, neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_2));
|
||||
pixels.setPixelColor(ADR_NEOPXL_L3, pixels.Color(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_3, neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_3, neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_3));
|
||||
pixels.setPixelColor(ADR_NEOPXL_L4, pixels.Color(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_4, neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_4, neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_4));
|
||||
pixels.setPixelColor(ADR_NEOPXL_L5, pixels.Color(neoPixelGreen * dimmVal * neoPixelSwitch * neoPixelLvl_5, neoPixelRed * dimmVal * neoPixelSwitch * neoPixelLvl_5, neoPixelBlue * dimmVal * neoPixelSwitch * neoPixelLvl_5));
|
||||
pixels.setPixelColor(ADR_NEOPXL_WATERLVL, pixels.Color(dimmVal * neoPixelSwitch * neoPixelWaterLvlG, dimmVal * neoPixelSwitch * neoPixelWaterLvlR, dimmVal * neoPixelSwitch * neoPixelWaterLvlB));
|
||||
// pixels.setPixelColor(ADR_NEOPXL_TANK, pixels.Color(neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelTank, neoPixelRed*dimmVal*neoPixelSwitch*neoPixelTank, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelTank));
|
||||
pixels.show();
|
||||
// rainbowCycle(10); // im mniejsza liczba, tym szybsza animacja
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user