Skip to content

Commit 0dc2156

Browse files
Merge pull request #6 from GoWired/dev
Dev
2 parents 39a8f2d + c2f5e99 commit 0dc2156

File tree

5 files changed

+114
-109
lines changed

5 files changed

+114
-109
lines changed

Software/MCU-Raw/Arduino/main/Configuration.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@
6363
#define DIMMING_STEP 10 // Size of dimming step, increase for faster, less smooth dimming (default 1)
6464
#define DIMMING_INTERVAL 1 // Duration of dimming interval, increase for slower dimming (default 10)
6565
#define R_VALUE_OFF 255 // 255 - OFF, 0 - Full ON
66-
#define G_VALUE_OFF 128
67-
#define B_VALUE_OFF 0
68-
#define R_VALUE_ON 0
69-
#define G_VALUE_ON 128
66+
#define G_VALUE_OFF 230
67+
#define B_VALUE_OFF 204
68+
#define R_VALUE_ON 153
69+
#define G_VALUE_ON 204
7070
#define B_VALUE_ON 255
7171
#define BRIGHTNESS_VALUE_OFF 100 // Global brightness value should always be set to 100
7272
#define BRIGHTNESS_VALUE_ON 100

Software/MCU/Arduino/main/Configuration.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,8 @@
5252
MySensors Definitions
5353
* *******************************************************************************************/
5454
// Identification
55-
#define MY_NODE_ID AUTO // Set node ID
56-
#define SN "GoWired Touch Module" // Set node name to present to a controller
57-
#define SV "1.0" // Set sensor version
55+
#define MY_NODE_ID AUTO // Set module ID
56+
#define SV "1.0" // Set software version
5857

5958
// Selecting transmission settings
6059
#define MY_RS485 // Enable RS485 transport layer

Software/MCU/Arduino/main/Dimmer.cpp

Lines changed: 61 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
* *******************************************************************************************/
1010
Dimmer::Dimmer() {
1111

12-
NewState = 0;
12+
NewDimmingLevel = 20;
13+
CurrentState = false;
1314
_DimmingLevel = 20;
1415

1516
}
@@ -22,7 +23,6 @@ void Dimmer::SetValues(uint8_t NumberOfChannels, uint8_t DimmingStep, uint8_t Di
2223
_NumberOfChannels = NumberOfChannels;
2324
_DimmingStep = DimmingStep;
2425
_DimmingInterval = DimmingInterval;
25-
_DimmerState = false;
2626

2727
uint8_t Channels[4] = {Pin1, Pin2, Pin3, Pin4};
2828

@@ -37,52 +37,54 @@ void Dimmer::UpdateDimmer() {
3737
bool AdjustDimming = true;
3838
bool AdjustColors = true;
3939
bool ColorStates[4] = {false, false, false, false};
40-
int DeltaDimming = 0;
41-
int DeltaColors = 0;
40+
uint8_t DeltaDimming = 0;
41+
uint8_t DeltaColors = 0;
4242
uint32_t Time = millis() - _DimmingInterval;
4343

44-
do {
45-
if(millis() > Time + _DimmingInterval) {
46-
if(_DimmingLevel != NewDimmingLevel) {
47-
AdjustDimming = true;
48-
DeltaDimming = (NewDimmingLevel - _DimmingLevel) < 0 ? -_DimmingStep : _DimmingStep;
49-
_DimmingLevel += DeltaDimming;
50-
}
51-
else {
52-
AdjustDimming = false;
53-
}
44+
if(CurrentState) {
45+
do {
46+
if(millis() > Time + _DimmingInterval) {
47+
if(_DimmingLevel != NewDimmingLevel) {
48+
AdjustDimming = true;
49+
DeltaDimming = (NewDimmingLevel - _DimmingLevel) < 0 ? -_DimmingStep : _DimmingStep;
50+
_DimmingLevel += DeltaDimming;
51+
}
52+
else {
53+
AdjustDimming = false;
54+
}
5455

55-
for(int i=0; i<_NumberOfChannels; i++) {
56-
if(_Values[i] != NewValues[i]) {
57-
ColorStates[i] = true;
58-
DeltaColors = (_Values[i] - NewValues[i]) > 0 ? -_DimmingStep : _DimmingStep;
59-
_Values[i] += DeltaColors;
60-
}
61-
else {
62-
ColorStates[i] = false;
63-
}
64-
}
56+
for(int i=0; i<_NumberOfChannels; i++) {
57+
if(_Values[i] != NewValues[i]) {
58+
ColorStates[i] = true;
59+
DeltaColors = (_Values[i] - NewValues[i]) > 0 ? -_DimmingStep : _DimmingStep;
60+
_Values[i] += DeltaColors;
61+
}
62+
else {
63+
ColorStates[i] = false;
64+
}
65+
}
6566

66-
for(int i=0; i<_NumberOfChannels; i++) {
67-
if(ColorStates[i]) {
68-
AdjustColors = true;
69-
break;
70-
}
71-
else {
72-
AdjustColors = false;
73-
}
74-
}
67+
for(int i=0; i<_NumberOfChannels; i++) {
68+
if(ColorStates[i] == true) {
69+
AdjustColors = true;
70+
break;
71+
}
72+
else {
73+
AdjustColors = false;
74+
}
75+
}
7576

76-
for(int i=0; i<_NumberOfChannels; i++) {
77-
analogWrite(_Channels[i], (int)(_DimmingLevel / 100.0 * _Values[i]));
78-
}
77+
for(int i=0; i<_NumberOfChannels; i++) {
78+
analogWrite(_Channels[i], (int)(_DimmingLevel / 100.0 * _Values[i]));
79+
}
7980

80-
Time = millis();
81-
}
82-
else if(millis() < Time) {
83-
Time = millis();
84-
}
85-
} while(AdjustColors || AdjustDimming);
81+
Time = millis();
82+
}
83+
else if(millis() < Time) {
84+
Time = millis();
85+
}
86+
} while(AdjustColors || AdjustDimming);
87+
}
8688
}
8789

8890
/* *******************************************************************************************
@@ -133,24 +135,29 @@ void Dimmer::ChangeColors() {
133135
/* *******************************************************************************************
134136
* Change Status
135137
* *******************************************************************************************/
136-
void Dimmer::ChangeState() {
138+
void Dimmer::ChangeState(bool NewState) {
137139

138-
_DimmerState = NewState;
140+
uint8_t TempDimmingLevel = NewDimmingLevel;
141+
142+
if(NewState != CurrentState) {
143+
CurrentState = NewState;
139144

140-
if(!NewState) {
141-
uint8_t TempLevel = _DimmingLevel;
142-
NewDimmingLevel = 0;
145+
if(!NewState) {
146+
uint8_t TempLevel = _DimmingLevel;
147+
NewDimmingLevel = 0;
143148

144-
ChangeLevel();
149+
ChangeLevel();
145150

146-
_DimmingLevel = TempLevel;
147-
}
148-
else {
149-
NewDimmingLevel = _DimmingLevel;
150-
_DimmingLevel = 0;
151+
_DimmingLevel = TempLevel;
152+
}
153+
else {
154+
//NewDimmingLevel = _DimmingLevel;
155+
_DimmingLevel = 0;
151156

152-
ChangeLevel();
157+
ChangeLevel();
158+
}
153159
}
160+
NewDimmingLevel = TempDimmingLevel;
154161
}
155162

156163
/* *******************************************************************************************

Software/MCU/Arduino/main/Dimmer.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,20 @@ class Dimmer
1616
void UpdateDimmer();
1717
void ChangeLevel();
1818
void ChangeColors();
19-
void ChangeState();
19+
void ChangeState(bool NewState);
2020
void NewColorValues(const char *input);
2121

22-
bool NewState = 0;
23-
uint8_t NewDimmingLevel = 0;
22+
bool CurrentState;
23+
uint8_t NewDimmingLevel;
2424
uint8_t NewValues[4] = {255, 255, 255, 255};
2525

2626
private:
27-
bool _DimmerState;
2827
uint8_t _NumberOfChannels;
2928
uint8_t _DimmingStep;
3029
uint8_t _DimmingInterval;
3130
uint8_t _Channels[4];
3231
uint8_t _Values[4] = {0, 0, 0, 0};
3332
uint8_t _DimmingLevel;
34-
//uint32_t _DimmerTime;
3533

3634
byte fromhex(const char *str);
3735
};

0 commit comments

Comments
 (0)