This commit is contained in:
Kekskurse 2020-01-17 17:00:09 +01:00
parent d386dc6699
commit bf41a23cf0
5 changed files with 100 additions and 72 deletions

4
include/fade.h Normal file
View file

@ -0,0 +1,4 @@
#include <LEDStripe.h>
void fade(LEDStripe* led);

View file

16
lib/LEDStripe/LEDStripe.h Normal file
View file

@ -0,0 +1,16 @@
#ifndef PUBLIC_H_INCLUDED
#define PUBLIC_H_INCLUDED
struct LEDStripe {
int MOD; //0 = off, 1 = on, 2 = fade ...
int OLD_MOD;
int SPEED;
int RED;
int GREEN;
int BLUE;
int LOOP;
int LOOPCOUNT;
int MOD_STEP;
}
typedef LEDStripe;
#endif /* PUBLIC_H_INCLUDED */

53
src/fade.cpp Normal file
View file

@ -0,0 +1,53 @@
#include<LEDStripe.h>
void fade(LEDStripe* led)
{
if(led->MOD_STEP == 0) {
led->RED ++;
led->GREEN = 0;
led->BLUE = 255;
if(led->RED >= 255) {
led->MOD_STEP++;
}
}
if(led->MOD_STEP == 1) {
led->RED = 255;
led->GREEN = 0;
led->BLUE --;
if(led->BLUE <= 0) {
led->MOD_STEP++;
}
}
if(led->MOD_STEP == 2) {
led->RED = 255;
led->GREEN ++;
led->BLUE = 0;
if(led->GREEN >= 255) {
led->MOD_STEP++;
}
}
if(led->MOD_STEP == 3) {
led->RED --;
led->GREEN = 255;
led->BLUE = 0;
if(led->RED <= 0) {
led->MOD_STEP++;
}
}
if(led->MOD_STEP == 4) {
led->RED = 0;
led->GREEN = 255;
led->BLUE ++;
if(led->BLUE >= 255) {
led->MOD_STEP++;
}
}
if(led->MOD_STEP == 5) {
led->RED = 0;
led->GREEN --;
led->BLUE = 255;
if(led->GREEN <= 0) {
led->MOD_STEP = 0;
}
}
}

View file

@ -1,6 +1,8 @@
#include <Arduino.h> #include <Arduino.h>
#include <ESP8266WiFi.h> #include <ESP8266WiFi.h>
#include <PubSubClient.h> #include <PubSubClient.h>
#include <LEDStripe.h>
#include <fade.h>
#define REDPIN1 5 #define REDPIN1 5
#define GREENPIN1 4 #define GREENPIN1 4
@ -24,29 +26,19 @@ PubSubClient client(espClient);
struct LEDStripe {
String MOD = "off"; //Which mode is used "off", "fade", "on"
String OLD_MOD = "off";
int SPEED = 3000;
int RED = 0;
int GREEN = 0;
int BLUE = 0;
int LOOP = 0;
int LOOPCOUNT = 0;
int MOD_STEP = 0;
};
int Sync = 0; //Sync LED2 on the value of LED1 int Sync = 0; //Sync LED2 on the value of LED1
LEDStripe led1; LEDStripe led1 = {0, 0, 5000, 0, 0, 0, 0, 0, 0};
LEDStripe led2; LEDStripe led2 = {0, 0, 5000, 0, 0, 0, 0, 0, 0};
int debugLoop = 0; int debugLoop = 0;
//Blink //Blink
int fadeLevel = 0; int fadeLevel = 0;
int fadeMode = 0; int fadeMode = 0;
void fade() { void fadeled() {
if(fadeMode == 0) { if(fadeMode == 0) {
fadeLevel = fadeLevel + 10; fadeLevel = fadeLevel + 10;
if(fadeLevel > 1023) { if(fadeLevel > 1023) {
@ -103,7 +95,7 @@ void connectWiFi() {
WiFi.begin(SSID, PSK); WiFi.begin(SSID, PSK);
while (WiFi.status() != WL_CONNECTED) { while (WiFi.status() != WL_CONNECTED) {
delay(5); delay(5);
fade(); fadeled();
Serial.print("."); Serial.print(".");
wifiConnectionCount++; wifiConnectionCount++;
if(wifiConnectionCount > 1000) { if(wifiConnectionCount > 1000) {
@ -165,58 +157,6 @@ void pulse_white_three_times() {
LEDStripe tmpLed(); LEDStripe tmpLed();
} }
//Modes
//LED Fade
void fade(LEDStripe *led) {
if(led->MOD_STEP == 0) {
led->RED ++;
led->GREEN = 0;
led->BLUE = 255;
if(led->RED >= 255) {
led->MOD_STEP++;
}
}
if(led->MOD_STEP == 1) {
led->RED = 255;
led->GREEN = 0;
led->BLUE --;
if(led->BLUE <= 0) {
led->MOD_STEP++;
}
}
if(led->MOD_STEP == 2) {
led->RED = 255;
led->GREEN ++;
led->BLUE = 0;
if(led->GREEN >= 255) {
led->MOD_STEP++;
}
}
if(led->MOD_STEP == 3) {
led->RED --;
led->GREEN = 255;
led->BLUE = 0;
if(led->RED <= 0) {
led->MOD_STEP++;
}
}
if(led->MOD_STEP == 4) {
led->RED = 0;
led->GREEN = 255;
led->BLUE ++;
if(led->BLUE >= 255) {
led->MOD_STEP++;
}
}
if(led->MOD_STEP == 5) {
led->RED = 0;
led->GREEN --;
led->BLUE = 255;
if(led->GREEN <= 0) {
led->MOD_STEP = 0;
}
}
}
void writeToLedStrips(LEDStripe *l1, LEDStripe *l2) { void writeToLedStrips(LEDStripe *l1, LEDStripe *l2) {
analogWrite(REDPIN1, l1->RED); analogWrite(REDPIN1, l1->RED);
@ -247,11 +187,26 @@ void callback(char* topic, byte* payload, unsigned int length) {
Serial.println(); Serial.println();
Serial.println(getTopicNameString("/1/mode")); Serial.println(getTopicNameString("/1/mode"));
if(String(topic) == getTopicNameString("/1/mode")) { if(String(topic) == getTopicNameString("/1/mode")) {
led1.MOD = message; if(message == "off") {
Serial.println("Set Mode"); led1.MOD = 0;
}
if(message == "fade") {
led1.MOD = 2;
}
if(message == "on") {
led1.MOD = 1;
}
} }
if(String(topic) == getTopicNameString("/2/mode")) { if(String(topic) == getTopicNameString("/2/mode")) {
led2.MOD = message; if(message == "off") {
led1.MOD = 0;
}
if(message == "fade") {
led1.MOD = 2;
}
if(message == "on") {
led1.MOD = 1;
}
} }
if(String(topic) == getTopicNameString("/1/speed")) { if(String(topic) == getTopicNameString("/1/speed")) {
led1.SPEED = message.toInt(); led1.SPEED = message.toInt();
@ -319,7 +274,7 @@ void loop() {
} }
client.loop(); client.loop();
if(led1.MOD == "fade") { if(led1.MOD == 2) {
fade(&led1); fade(&led1);
} }
@ -328,7 +283,7 @@ void loop() {
led2.GREEN = led1.GREEN; led2.GREEN = led1.GREEN;
led2.BLUE = led1.BLUE; led2.BLUE = led1.BLUE;
} else { } else {
if(led2.MOD == "fade") { if(led2.MOD == 2) {
fade(&led2); fade(&led2);
} }
} }