-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLightController.cpp
More file actions
44 lines (33 loc) · 1.41 KB
/
LightController.cpp
File metadata and controls
44 lines (33 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// LightController.cpp
#include "LightController.h"
#include <RBDdimmer.h> // dimmer library for ac dimmer
#include <PubSubClient.h>
#define outputPin 13 // pwm output
#define zerocross 5 // for boards with CHANGEBLE input pins
#define light_topic "settings/lights" // mqtt topic
dimmerLamp dimmer(outputPin, zerocross); //initialase port for dimmer for ESP8266, ESP32, Arduino due boards
extern PubSubClient client;
/****** Lamp Variables ******/
volatile int i = 60; // Dimmer PWM value
const int LAMP_MAX = 240; // Max lamp brightness
const int LAMP_MIN = 60; // min lamp brightness
int outVal = 0;
void setupLights() {
dimmer.begin(NORMAL_MODE, ON); //dimmer initialisation: name.begin(MODE, STATE)
outVal = map(i, LAMP_MAX, LAMP_MIN, 100, 0);
Serial.print("Outval: ");
Serial.println(outVal);
client.publish(light_topic, String(outVal).c_str(), true);
}
void adjustLights() {
/*int input = server.arg("level").toInt();
if(input < LAMP_MAX && input > LAMP_MIN) {
i = input;
outVal = map(i, LAMP_MAX, LAMP_MIN, 100, 0); // analogRead(analog_pin), min_analog, max_analog, 100%, 0%);
dimmer.setPower(outVal); // name.setPower(0%-100%)
}*/
}
void getLightStatus() {
outVal = map(i, LAMP_MIN, LAMP_MAX, 0, 100);
client.publish(light_topic, String(outVal).c_str(), true);
}