Brightness control completed.

This commit is contained in:
2020-05-19 23:27:35 +03:00
parent 57e4d1a7fa
commit cb02e386c7
3 changed files with 156 additions and 16 deletions
+26 -5
View File
@@ -5,7 +5,7 @@
#define COLOR_ORDER GRB #define COLOR_ORDER GRB
#define CHIPSET WS2812B #define CHIPSET WS2812B
#define BRIGHTNESS 5 byte BRIGHTNESS = 255;
// Helper functions for an two-dimensional XY matrix of pixels. // Helper functions for an two-dimensional XY matrix of pixels.
// Simple 2-D demo code is included as well. // Simple 2-D demo code is included as well.
@@ -165,6 +165,8 @@ uint16_t XYsafe( uint8_t x, uint8_t y)
String inputString = ""; // a String to hold incoming data String inputString = ""; // a String to hold incoming data
bool stringComplete = false; // whether the string is complete bool stringComplete = false; // whether the string is complete
int counter = 0;
void loop() void loop()
{ {
@@ -173,9 +175,10 @@ void loop()
if (stringComplete) { if (stringComplete) {
int bPosition = inputString.indexOf('b'); int lPosition = inputString.indexOf('l');
int cPosition = inputString.indexOf('c'); int cPosition = inputString.indexOf('c');
if (bPosition == 0 ){ int bPosition = inputString.indexOf('b');
if (lPosition == 0 ){
byte place = inputString.substring(1, 3).toInt(); byte place = inputString.substring(1, 3).toInt();
byte red = inputString.substring(3, 6).toInt(); byte red = inputString.substring(3, 6).toInt();
byte blue = inputString.substring(6, 9).toInt(); byte blue = inputString.substring(6, 9).toInt();
@@ -188,14 +191,31 @@ void loop()
} else if (cPosition == 0 ) { } else if (cPosition == 0 ) {
fill_solid( leds, NUM_LEDS, CRGB(0,0,0)); fill_solid( leds, NUM_LEDS, CRGB(0,0,0));
Serial.print("Clear!\n"); Serial.print("Clear!\n");
} else if (bPosition == 0 ) {
counter = 0;
BRIGHTNESS = inputString.substring(1, 4).toInt();
FastLED.setBrightness( BRIGHTNESS );
delay(1);
Serial.print("b");
Serial.println(BRIGHTNESS);
} }
//delay(500); //delay(500);
stringComplete = false; stringComplete = false;
inputString = ""; inputString = "";
} }
}
if (counter < 5000) {
counter++;
} else {
counter = 0;
Serial.print("b");
Serial.println(BRIGHTNESS);
//Serial.print("\n");
}
}
void setup() { void setup() {
Serial.begin(9600); Serial.begin(9600);
@@ -217,4 +237,5 @@ void serialEvent() {
stringComplete = true; stringComplete = true;
} }
} }
} }
+78 -4
View File
@@ -113,9 +113,16 @@
this.ColorYelow = new System.Windows.Forms.Button(); this.ColorYelow = new System.Windows.Forms.Button();
this.ColorOrange = new System.Windows.Forms.Button(); this.ColorOrange = new System.Windows.Forms.Button();
this.buttonClear = new System.Windows.Forms.Button(); this.buttonClear = new System.Windows.Forms.Button();
this.groupBoxBrightness = new System.Windows.Forms.GroupBox();
this.BrightnessNowTextBox = new System.Windows.Forms.RichTextBox();
this.buttonPlus = new System.Windows.Forms.Button();
this.buttonMinus = new System.Windows.Forms.Button();
this.BrightnessBar = new System.Windows.Forms.TrackBar();
this.groupSettings.SuspendLayout(); this.groupSettings.SuspendLayout();
this.groupBoxCOM.SuspendLayout(); this.groupBoxCOM.SuspendLayout();
this.groupBoxColor.SuspendLayout(); this.groupBoxColor.SuspendLayout();
this.groupBoxBrightness.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.BrightnessBar)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// groupSettings // groupSettings
@@ -185,7 +192,7 @@
this.groupBoxCOM.Controls.Add(this.COMTextBox); this.groupBoxCOM.Controls.Add(this.COMTextBox);
this.groupBoxCOM.Location = new System.Drawing.Point(32, 181); this.groupBoxCOM.Location = new System.Drawing.Point(32, 181);
this.groupBoxCOM.Name = "groupBoxCOM"; this.groupBoxCOM.Name = "groupBoxCOM";
this.groupBoxCOM.Size = new System.Drawing.Size(354, 154); this.groupBoxCOM.Size = new System.Drawing.Size(354, 252);
this.groupBoxCOM.TabIndex = 1; this.groupBoxCOM.TabIndex = 1;
this.groupBoxCOM.TabStop = false; this.groupBoxCOM.TabStop = false;
this.groupBoxCOM.Text = "COM port monitor"; this.groupBoxCOM.Text = "COM port monitor";
@@ -198,7 +205,7 @@
this.COMTextBox.Name = "COMTextBox"; this.COMTextBox.Name = "COMTextBox";
this.COMTextBox.ReadOnly = true; this.COMTextBox.ReadOnly = true;
this.COMTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; this.COMTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
this.COMTextBox.Size = new System.Drawing.Size(312, 112); this.COMTextBox.Size = new System.Drawing.Size(312, 218);
this.COMTextBox.TabIndex = 0; this.COMTextBox.TabIndex = 0;
this.COMTextBox.Text = ""; this.COMTextBox.Text = "";
// //
@@ -1186,7 +1193,7 @@
// //
// buttonClear // buttonClear
// //
this.buttonClear.Location = new System.Drawing.Point(422, 357); this.buttonClear.Location = new System.Drawing.Point(410, 345);
this.buttonClear.Name = "buttonClear"; this.buttonClear.Name = "buttonClear";
this.buttonClear.Size = new System.Drawing.Size(75, 23); this.buttonClear.Size = new System.Drawing.Size(75, 23);
this.buttonClear.TabIndex = 5; this.buttonClear.TabIndex = 5;
@@ -1194,11 +1201,70 @@
this.buttonClear.UseVisualStyleBackColor = true; this.buttonClear.UseVisualStyleBackColor = true;
this.buttonClear.Click += new System.EventHandler(this.buttonClear_Click); this.buttonClear.Click += new System.EventHandler(this.buttonClear_Click);
// //
// groupBoxBrightness
//
this.groupBoxBrightness.Controls.Add(this.BrightnessNowTextBox);
this.groupBoxBrightness.Controls.Add(this.buttonPlus);
this.groupBoxBrightness.Controls.Add(this.buttonMinus);
this.groupBoxBrightness.Controls.Add(this.BrightnessBar);
this.groupBoxBrightness.Location = new System.Drawing.Point(503, 345);
this.groupBoxBrightness.Name = "groupBoxBrightness";
this.groupBoxBrightness.Size = new System.Drawing.Size(229, 88);
this.groupBoxBrightness.TabIndex = 67;
this.groupBoxBrightness.TabStop = false;
this.groupBoxBrightness.Text = "Brightness";
//
// BrightnessNowTextBox
//
this.BrightnessNowTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.BrightnessNowTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.BrightnessNowTextBox.Location = new System.Drawing.Point(53, 52);
this.BrightnessNowTextBox.Multiline = false;
this.BrightnessNowTextBox.Name = "BrightnessNowTextBox";
this.BrightnessNowTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None;
this.BrightnessNowTextBox.Size = new System.Drawing.Size(128, 22);
this.BrightnessNowTextBox.TabIndex = 4;
this.BrightnessNowTextBox.Text = "Brightness now:";
//
// buttonPlus
//
this.buttonPlus.Location = new System.Drawing.Point(187, 52);
this.buttonPlus.Name = "buttonPlus";
this.buttonPlus.Size = new System.Drawing.Size(22, 22);
this.buttonPlus.TabIndex = 2;
this.buttonPlus.Text = "+";
this.buttonPlus.UseVisualStyleBackColor = true;
this.buttonPlus.Click += new System.EventHandler(this.buttonPlus_Click);
//
// buttonMinus
//
this.buttonMinus.Location = new System.Drawing.Point(25, 52);
this.buttonMinus.Name = "buttonMinus";
this.buttonMinus.Size = new System.Drawing.Size(22, 22);
this.buttonMinus.TabIndex = 1;
this.buttonMinus.Text = "-";
this.buttonMinus.UseVisualStyleBackColor = true;
this.buttonMinus.Click += new System.EventHandler(this.buttonMinus_Click);
//
// BrightnessBar
//
this.BrightnessBar.LargeChange = 10;
this.BrightnessBar.Location = new System.Drawing.Point(11, 19);
this.BrightnessBar.Maximum = 255;
this.BrightnessBar.Minimum = 1;
this.BrightnessBar.Name = "BrightnessBar";
this.BrightnessBar.Size = new System.Drawing.Size(212, 45);
this.BrightnessBar.TabIndex = 0;
this.BrightnessBar.TickFrequency = 51;
this.BrightnessBar.Value = 50;
this.BrightnessBar.Scroll += new System.EventHandler(this.BrightnessBar_Scroll);
//
// FormMain // FormMain
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(745, 407); this.ClientSize = new System.Drawing.Size(745, 445);
this.Controls.Add(this.groupBoxBrightness);
this.Controls.Add(this.buttonClear); this.Controls.Add(this.buttonClear);
this.Controls.Add(this.groupBoxColor); this.Controls.Add(this.groupBoxColor);
this.Controls.Add(this.butto556); this.Controls.Add(this.butto556);
@@ -1272,6 +1338,9 @@
this.groupSettings.ResumeLayout(false); this.groupSettings.ResumeLayout(false);
this.groupBoxCOM.ResumeLayout(false); this.groupBoxCOM.ResumeLayout(false);
this.groupBoxColor.ResumeLayout(false); this.groupBoxColor.ResumeLayout(false);
this.groupBoxBrightness.ResumeLayout(false);
this.groupBoxBrightness.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.BrightnessBar)).EndInit();
this.ResumeLayout(false); this.ResumeLayout(false);
} }
@@ -1363,6 +1432,11 @@
private System.Windows.Forms.Button ColorOrange; private System.Windows.Forms.Button ColorOrange;
internal System.Windows.Forms.ColorDialog colorDialog1; internal System.Windows.Forms.ColorDialog colorDialog1;
private System.Windows.Forms.Button buttonClear; private System.Windows.Forms.Button buttonClear;
private System.Windows.Forms.GroupBox groupBoxBrightness;
private System.Windows.Forms.TrackBar BrightnessBar;
private System.Windows.Forms.Button buttonPlus;
private System.Windows.Forms.Button buttonMinus;
private System.Windows.Forms.RichTextBox BrightnessNowTextBox;
} }
} }
+52 -7
View File
@@ -150,13 +150,13 @@ namespace MyNewApp
byte[] txBuffer = new byte[64]; byte[] txBuffer = new byte[64];
AddTextIn(this, COMTextBox, rxString); AddTextIn(this, COMTextBox, rxString);
switch (rxString[0]) switch (rxString[0])
{ {
case 'b': case 'b':
string lastBrightness = rxString.Substring(1);
//SetText(this, COMTextBoxIn, rxString); //BrightnessBar.Value = Int32.Parse(lastBrightness);
break; //SetText(this, BrightnessValueBox, lastBrightness.ToString());
case 'v': lastBrightness = "Brightness now:" + lastBrightness;
SetText(this, BrightnessNowTextBox, lastBrightness);
break; break;
case 'f': case 'f':
@@ -168,7 +168,34 @@ namespace MyNewApp
SetText(this, TextBoxSettings, ex.Message); SetText(this, TextBoxSettings, ex.Message);
} }
} }
private void BrightnessBar_Scroll(object sender, EventArgs e)
{
updateBrightness();
}
private void updateBrightness()
{
if (mySerialPort.IsOpen == false)
{
MessageBox.Show("Please connect to COM port first!");
return;
} else {
double BrightnessNew = BrightnessBar.Value;
SetText(this, BrightnessNowTextBox, string.Format("Brightness now:{0}", BrightnessNew));
string str = "b" + (int)BrightnessBar.Value;
//txBuffer[0] = Convert.ToByte('b');
//txBuffer[1] = (byte)BrightnessBar.Value;
//txBuffer[2] = 0x0A; //Newline
AddTextOut(this, COMTextBox, str);
mySerialPort.Write(str + "\n");
}
}
// all Color buttons: // all Color buttons:
private void PrintColor(Control ctrl) private void PrintColor(Control ctrl)
{ {
@@ -177,7 +204,7 @@ namespace MyNewApp
// Get first three characters. // Get first three characters.
// string sub = input.Substring(0, 3); // string sub = input.Substring(0, 3);
str = str.Substring(str.Length - 2); str = str.Substring(str.Length - 2);
str = "b" + str + ctrl.BackColor.R.ToString("D3") + ctrl.BackColor.G.ToString("D3") + ctrl.BackColor.B.ToString("D3"); str = "l" + str + ctrl.BackColor.R.ToString("D3") + ctrl.BackColor.G.ToString("D3") + ctrl.BackColor.B.ToString("D3");
if (mySerialPort.IsOpen) if (mySerialPort.IsOpen)
@@ -300,5 +327,23 @@ namespace MyNewApp
SetText(this, TextBoxSettings, "First connect to COM port!"); SetText(this, TextBoxSettings, "First connect to COM port!");
} }
} }
private void buttonPlus_Click(object sender, EventArgs e)
{
if (BrightnessBar.Value < 255)
{
BrightnessBar.Value++;
}
updateBrightness();
}
private void buttonMinus_Click(object sender, EventArgs e)
{
if (BrightnessBar.Value > 1)
{
BrightnessBar.Value--;
}
updateBrightness();
}
} }
} }