Compare commits

...

4 Commits

Author SHA1 Message Date
sieja
73249722e4 Przyciemnienie nieaktywnego ustawienia led 2025-07-13 12:45:35 +02:00
sieja
2c0ddc93bc Merge branch 'master' of https://gitea.kaczor.it/sieja/Arduino 2025-07-10 18:30:11 +02:00
sieja
c34af77807 Skaner I2C 2025-07-10 18:29:08 +02:00
sieja
a53606ac4c WErsja testowa z delayami podczas przelaczania predkosci wiatraka 2025-07-03 20:04:15 +02:00
2 changed files with 51 additions and 13 deletions

View File

@@ -0,0 +1,21 @@
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
Serial.println("Skanuję I2C...");
}
void loop(){
for (byte addr = 1; addr < 127; addr++) {
Wire.beginTransmission(addr);
if (Wire.endTransmission() == 0) {
Serial.print("Znaleziono urządzenie I2C pod adresem 0x");
Serial.println(addr, HEX);
}
} delay(10);
Serial.println("LOOP...");
delay(1000);
}

View File

@@ -5,7 +5,7 @@
#include "DHT.h" #include "DHT.h"
#include <Adafruit_NeoPixel.h> #include <Adafruit_NeoPixel.h>
#include <BH1750.h> #include <BH1750.h>
#define Version "0.3.0" #define Version "0.3.1"
@@ -57,6 +57,7 @@ const uint8_t ledMap[LED_COUNT] = {3, 0, 1, 8, 2, 5, 4, 7, 6};
#define ADR_NEOPXL_WATERLVL 8 #define ADR_NEOPXL_WATERLVL 8
#define ADR_NEOPXL_TANK #define ADR_NEOPXL_TANK
#define NON_ACTIVE_LED_DIVIDER 8
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Adafruit_NeoPixel pixels(NUMPIXELS, NEOPIXEL, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel pixels(NUMPIXELS, NEOPIXEL, NEO_GRB + NEO_KHZ800);
@@ -120,14 +121,23 @@ void IRAM_ATTR hygrostatButtonFcn() {
void setFanSpeed (uint8_t spdInpt){ void setFanSpeed (uint8_t spdInpt){
if (spdInpt == 1) { if (spdInpt == 1) {
delay(100);
digitalWrite(PIN_SPEED_2, LOW); digitalWrite(PIN_SPEED_2, LOW);
delay(200);
digitalWrite(PIN_SPEED_1, HIGH); digitalWrite(PIN_SPEED_1, HIGH);
delay(100);
} else if (spdInpt == 2) { } else if (spdInpt == 2) {
delay(100);
digitalWrite(PIN_SPEED_1, LOW); digitalWrite(PIN_SPEED_1, LOW);
delay(200);
digitalWrite(PIN_SPEED_2, HIGH); digitalWrite(PIN_SPEED_2, HIGH);
delay(100);
} else { } else {
delay(100);
digitalWrite(PIN_SPEED_1, LOW); digitalWrite(PIN_SPEED_1, LOW);
delay(200);
digitalWrite(PIN_SPEED_2, LOW); digitalWrite(PIN_SPEED_2, LOW);
delay(100);
} }
} }
@@ -266,11 +276,18 @@ void loop() {
display.display(); display.display();
// DATA HAVEREST display.setCursor(70, 20);
lux = lightMeter.readLightLevel(); display.println("Dimm:");
waterLvlVal = touchRead(WTR_LVL); display.setCursor(115, 20);
hum = (dht.readHumidity()); display.println(dimmStep);
photoVal = analogRead(IN_PHOTOTRA);
display.display();
// DATA HAVEREST
lux = lightMeter.readLightLevel();
waterLvlVal = touchRead(WTR_LVL);
hum = (dht.readHumidity());
photoVal = analogRead(IN_PHOTOTRA);
// ################################################################# // #################################################################
// ################################################################# // #################################################################
@@ -307,15 +324,15 @@ void loop() {
} }
} else if (hum >= (hygrostatVal - 5) and fanSpeedVal == 2) { } 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 = 4; neoPixelSpeed_1 = NON_ACTIVE_LED_DIVIDER;
neoPixelSpeed_2 = 1; neoPixelSpeed_2 = 1;
} else if (hum < hygrostatVal) { } else if (hum < hygrostatVal) {
setFanSpeed (fanSpeedVal); setFanSpeed (fanSpeedVal);
neoPixelSpeed_1 = 4; neoPixelSpeed_1 = NON_ACTIVE_LED_DIVIDER;
if (fanSpeedVal == 1){ if (fanSpeedVal == 1){
neoPixelSpeed_2 = 0; neoPixelSpeed_2 = 0;
} else { } else {
neoPixelSpeed_2 = 4; neoPixelSpeed_2 = NON_ACTIVE_LED_DIVIDER;
} }
} }
@@ -384,11 +401,11 @@ void loop() {
neoPixelWaterLvlR = 1; neoPixelWaterLvlR = 1;
neoPixelWaterLvlG = 0; //Przygotowanie pod żółty kolor jak mało wody neoPixelWaterLvlG = 0; //Przygotowanie pod żółty kolor jak mało wody
analogWrite(LED_WHT_TANK, 0); analogWrite(LED_WHT_TANK, 0);
analogWrite(LED_RED_TANK, dimmVal*4); analogWrite(LED_RED_TANK, dimmVal*NON_ACTIVE_LED_DIVIDER);
} else { } else {
neoPixelWaterLvlR = 0; neoPixelWaterLvlR = 0;
neoPixelWaterLvlG = 1; neoPixelWaterLvlG = 1;
analogWrite(LED_WHT_TANK, dimmVal*4); analogWrite(LED_WHT_TANK, dimmVal*NON_ACTIVE_LED_DIVIDER);
analogWrite(LED_RED_TANK, 0); analogWrite(LED_RED_TANK, 0);
} }
} }
@@ -407,8 +424,8 @@ void loop() {
// ################################################################# // #################################################################
// ################################################################# // #################################################################
pixels.clear(); pixels.clear();
pixels.setPixelColor(ADR_NEOPXL_SPEED_1, pixels.Color(int((neoPixelRed*dimmVal*neoPixelSwitch*neoPixelSpeed_1)/4), int((neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelSpeed_1)/4), int((neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelSpeed_1)/4))); 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)/4), int((neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelSpeed_2)/4), int((neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelSpeed_2)/4))); 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_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_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_L2, pixels.Color(neoPixelRed*dimmVal*neoPixelSwitch*neoPixelLvl_2, neoPixelGreen*dimmVal*neoPixelSwitch*neoPixelLvl_2, neoPixelBlue*dimmVal*neoPixelSwitch*neoPixelLvl_2));