From 56ce2053b6a31a800aa82d4a37782c4137dbfaba Mon Sep 17 00:00:00 2001 From: GGorAA <61655029+GGorAA@users.noreply.github.com> Date: Sun, 20 Sep 2020 17:04:06 +0300 Subject: [PATCH 1/8] update architecture --- src/Led.cpp | 255 +++++++++++++++++++++++++++++++++++++++++++++ src/MorsDuino.cpp | 260 +--------------------------------------------- src/MorsDuino.h | 45 +++++--- 3 files changed, 292 insertions(+), 268 deletions(-) create mode 100644 src/Led.cpp diff --git a/src/Led.cpp b/src/Led.cpp new file mode 100644 index 0000000..3211743 --- /dev/null +++ b/src/Led.cpp @@ -0,0 +1,255 @@ +#include "Arduino.h" +#include "MorsDuino.h" + +void MorsDuino::Led::_dot(int count = 1) +{ + + int num = 1; + do + { + digitalWrite(_pin, HIGH); + delay(125); + digitalWrite(_pin, LOW); + delay(125); + num++; + } while (num <= count); +} + +void MorsDuino::Led::_dash(int count = 1) +{ + int num = 1; + do + { + digitalWrite(_pin, HIGH); + delay(500); + digitalWrite(_pin, LOW); + delay(125); + num++; + } while (num <= count); +} + +void MorsDuino::Led::_delaySeparator(int type) +{ + if (type == 1) + { + delay(_letterSeparatorDelay); + } + else if (type == 2) + { + delay(_wordSeparatorDelay); + } +} + +void MorsDuino::Led::displayString(String text) +{ + size_t numberOfElements = sizeof(text) / sizeof(text[0]); + for (int i = 0; i <= numberOfElements; i++) + { + MorsDuino::Led::displayChar(text[i]); + } +} + +void MorsDuino::Led::displayChar(char character) +{ + switch (character) + { + // Numbers + case '1': + _dot(); + _dash(4); + _delaySeparator(1); + break; + case '2': + _dot(2); + _dash(3); + _delaySeparator(1); + break; + case '3': + _dot(3); + _dash(2); + _delaySeparator(1); + break; + case '4': + _dot(4); + _dash(1); + _delaySeparator(1); + break; + case '5': + _dot(5); + _delaySeparator(1); + break; + case '6': + _dash(1); + _dot(4); + _delaySeparator(1); + break; + case '7': + _dash(2); + _dot(3); + _delaySeparator(1); + break; + case '8': + _dash(3); + _dot(2); + _delaySeparator(1); + break; + case '9': + _dash(4); + _dot(1); + _delaySeparator(1); + break; + case '0': + _dash(5); + _delaySeparator(1); + break; + // English alphabet + case 'a': + _dot(); + _dash(); + _delaySeparator(1); + break; + case 'b': + _dash(); + _dot(3); + _delaySeparator(1); + break; + case 'c': + _dash(); + _dot(); + _dash(); + _dot(); + _delaySeparator(1); + break; + case 'd': + _dash(); + _dot(2); + _delaySeparator(1); + break; + case 'e': + _dot(); + _delaySeparator(1); + break; + case 'f': + _dot(2); + _dash(); + _dot(); + _delaySeparator(1); + break; + case 'g': + _dash(2); + _dot(); + _delaySeparator(1); + break; + case 'h': + _dot(4); + _delaySeparator(1); + break; + case 'i': + _dot(2); + _delaySeparator(1); + break; + case 'j': + _dot(); + _dash(3); + _delaySeparator(1); + break; + case 'k': + _dash(); + _dot(); + _dash(); + _delaySeparator(1); + break; + case 'l': + _dot(); + _dash(); + _dot(2); + _delaySeparator(1); + break; + case 'm': + _dash(2); + _delaySeparator(1); + break; + case 'n': + _dash(); + _dot(); + _delaySeparator(1); + break; + case 'o': + _dash(3); + _delaySeparator(1); + break; + case 'p': + _dot(); + _dash(2); + _dot(); + _delaySeparator(1); + break; + case 'q': + _dash(2); + _dot(); + _dash(); + _delaySeparator(1); + break; + case 'r': + _dot(); + _dash(); + _dot(); + _delaySeparator(1); + break; + case 's': + _dot(3); + _delaySeparator(1); + break; + case 't': + _dash(); + _delaySeparator(1); + break; + case 'u': + _dot(2); + _dash(); + _delaySeparator(1); + break; + case 'v': + _dot(3); + _dash(); + _delaySeparator(1); + break; + case 'w': + _dot(); + _dash(2); + _delaySeparator(1); + break; + case 'x': + _dash(); + _dot(2); + _dash(); + _delaySeparator(1); + break; + case 'y': + _dash(); + _dot(); + _dash(2); + _delaySeparator(1); + break; + case 'z': + _dash(2); + _dot(2); + _delaySeparator(1); + break; + case ' ': + _delaySeparator(2); + break; + default: + break; + } +} + +void MorsDuino::Led::displayInt(int number) +{ + String numbers = String(number); + size_t numberOfElements = sizeof(numbers) / sizeof(numbers[0]); + for (int i = 0; i <= numberOfElements; i++) + { + MorsDuino::Led::displayChar(numbers[i]); + } +} \ No newline at end of file diff --git a/src/MorsDuino.cpp b/src/MorsDuino.cpp index 5e554da..554cf64 100644 --- a/src/MorsDuino.cpp +++ b/src/MorsDuino.cpp @@ -1,262 +1,10 @@ #include "Arduino.h" #include "MorsDuino.h" -MorsDuinoLed::MorsDuinoLed(int pin = 13) +MorsDuino::Led Led(int pin = 13) { pinMode(pin, OUTPUT); - _letterSeparatorDelay = 400; - _wordSeparatorDelay = 1000; - _pin = pin; -} - -void MorsDuinoLed::_dot(int count = 1) -{ - int num = 1; - do - { - digitalWrite(_pin, HIGH); - delay(125); - digitalWrite(_pin, LOW); - delay(125); - num++; - } while (num <= count); -} - -void MorsDuinoLed::_dash(int count = 1) -{ - int num = 1; - do - { - digitalWrite(_pin, HIGH); - delay(500); - digitalWrite(_pin, LOW); - delay(125); - num++; - } while (num <= count); -} - -void MorsDuinoLed::_delaySeparator(int type) -{ - if (type == 1) - { - delay(_letterSeparatorDelay); - } - else if (type == 2) - { - delay(_wordSeparatorDelay); - } -} - -void MorsDuinoLed::displayString(String text) -{ - size_t numberOfElements = sizeof(text) / sizeof(text[0]); - for (int i = 0; i <= numberOfElements; i++) - { - MorsDuinoLed::displayChar(text[i]); - } -} - -void MorsDuinoLed::displayChar(char character) -{ - switch (character) - { - // Numbers - case '1': - _dot(); - _dash(4); - _delaySeparator(1); - break; - case '2': - _dot(2); - _dash(3); - _delaySeparator(1); - break; - case '3': - _dot(3); - _dash(2); - _delaySeparator(1); - break; - case '4': - _dot(4); - _dash(1); - _delaySeparator(1); - break; - case '5': - _dot(5); - _delaySeparator(1); - break; - case '6': - _dash(1); - _dot(4); - _delaySeparator(1); - break; - case '7': - _dash(2); - _dot(3); - _delaySeparator(1); - break; - case '8': - _dash(3); - _dot(2); - _delaySeparator(1); - break; - case '9': - _dash(4); - _dot(1); - _delaySeparator(1); - break; - case '0': - _dash(5); - _delaySeparator(1); - break; - // English alphabet - case 'a': - _dot(); - _dash(); - _delaySeparator(1); - break; - case 'b': - _dash(); - _dot(3); - _delaySeparator(1); - break; - case 'c': - _dash(); - _dot(); - _dash(); - _dot(); - _delaySeparator(1); - break; - case 'd': - _dash(); - _dot(2); - _delaySeparator(1); - break; - case 'e': - _dot(); - _delaySeparator(1); - break; - case 'f': - _dot(2); - _dash(); - _dot(); - _delaySeparator(1); - break; - case 'g': - _dash(2); - _dot(); - _delaySeparator(1); - break; - case 'h': - _dot(4); - _delaySeparator(1); - break; - case 'i': - _dot(2); - _delaySeparator(1); - break; - case 'j': - _dot(); - _dash(3); - _delaySeparator(1); - break; - case 'k': - _dash(); - _dot(); - _dash(); - _delaySeparator(1); - break; - case 'l': - _dot(); - _dash(); - _dot(2); - _delaySeparator(1); - break; - case 'm': - _dash(2); - _delaySeparator(1); - break; - case 'n': - _dash(); - _dot(); - _delaySeparator(1); - break; - case 'o': - _dash(3); - _delaySeparator(1); - break; - case 'p': - _dot(); - _dash(2); - _dot(); - _delaySeparator(1); - break; - case 'q': - _dash(2); - _dot(); - _dash(); - _delaySeparator(1); - break; - case 'r': - _dot(); - _dash(); - _dot(); - _delaySeparator(1); - break; - case 's': - _dot(3); - _delaySeparator(1); - break; - case 't': - _dash(); - _delaySeparator(1); - break; - case 'u': - _dot(2); - _dash(); - _delaySeparator(1); - break; - case 'v': - _dot(3); - _dash(); - _delaySeparator(1); - break; - case 'w': - _dot(); - _dash(2); - _delaySeparator(1); - break; - case 'x': - _dash(); - _dot(2); - _dash(); - _delaySeparator(1); - break; - case 'y': - _dash(); - _dot(); - _dash(2); - _delaySeparator(1); - break; - case 'z': - _dash(2); - _dot(2); - _delaySeparator(1); - break; - case ' ': - _delaySeparator(2); - break; - default: - break; - } -} - -void MorsDuinoLed::displayInt(int number) -{ - String numbers = String(number); - size_t numberOfElements = sizeof(numbers) / sizeof(numbers[0]); - for (int i = 0; i <= numberOfElements; i++) - { - MorsDuinoLed::displayChar(numbers[i]); - } + MorsDuino::Led _letterSeparatorDelay = 400; + MorsDuino::Led _wordSeparatorDelay = 1000; + MorsDuino::Led _pin = pin; } \ No newline at end of file diff --git a/src/MorsDuino.h b/src/MorsDuino.h index 52ee6ca..4f96600 100644 --- a/src/MorsDuino.h +++ b/src/MorsDuino.h @@ -3,21 +3,42 @@ #include "Arduino.h" -class MorsDuinoLed +class MorsDuino { public: - MorsDuinoLed(int pin); - void displayString(String text); - void displayChar(char character); - void displayInt(int number); + class Led + { + public: + Led(int pin); + void displayString(String text); + void displayChar(char character); + void displayInt(int number); -private: - int _pin; - int _letterSeparatorDelay; - int _wordSeparatorDelay; - void _dot(int count = 1); - void _dash(int count = 1); - void _delaySeparator(int type); + private: + int _pin; + int _letterSeparatorDelay; + int _wordSeparatorDelay; + void _dot(int count); + void _dash(int count); + void _delaySeparator(int type); + }; + class RgbLed + { + public: + RgbLed(int red, int green, int blue); + void displayString(char color, String text); + void displayInt(char color, int number); + void displayChar(char color, char character); + + private: + int _redPin; + int _greenPin; + int _letterSeparatorDelay; + int _wordSeparatorDelay; + void _dot(int count); + void _dash(int count); + void _delaySeparator(int type); + }; }; #endif // MORSDUINO_H \ No newline at end of file From 1c40183406212b6adaa8f3ce4c5e46c14647d2d8 Mon Sep 17 00:00:00 2001 From: GGorAA <61655029+GGorAA@users.noreply.github.com> Date: Sun, 20 Sep 2020 18:15:26 +0300 Subject: [PATCH 2/8] add examples --- .vscode/settings.json | 3 +- examples/Led/RgbSosBlink.ino | 0 examples/Led/SosBlick.ino | 0 src/Led.cpp | 387 +++++++++++++++++------------------ src/MorsDuino.h | 67 +++--- 5 files changed, 220 insertions(+), 237 deletions(-) create mode 100644 examples/Led/RgbSosBlink.ino create mode 100644 examples/Led/SosBlick.ino diff --git a/.vscode/settings.json b/.vscode/settings.json index c06dca8..ca6a2a7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,5 +6,6 @@ "arduino.additionalUrls": "", "arduino.logLevel": "info", "arduino.enableUSBDetection": true, - "C_Cpp.intelliSenseEngine": "Default" + "C_Cpp.intelliSenseEngine": "Default", + "C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 2, ColumnLimit: 0}" } \ No newline at end of file diff --git a/examples/Led/RgbSosBlink.ino b/examples/Led/RgbSosBlink.ino new file mode 100644 index 0000000..e69de29 diff --git a/examples/Led/SosBlick.ino b/examples/Led/SosBlick.ino new file mode 100644 index 0000000..e69de29 diff --git a/src/Led.cpp b/src/Led.cpp index 3211743..6ce072f 100644 --- a/src/Led.cpp +++ b/src/Led.cpp @@ -1,255 +1,240 @@ #include "Arduino.h" #include "MorsDuino.h" -void MorsDuino::Led::_dot(int count = 1) -{ - - int num = 1; - do - { - digitalWrite(_pin, HIGH); - delay(125); - digitalWrite(_pin, LOW); - delay(125); - num++; - } while (num <= count); +void MorsDuino::Led::_dot(int count = 1) { + int num = 1; + do { + digitalWrite(_pin, HIGH); + delay(125); + digitalWrite(_pin, LOW); + delay(125); + num++; + } while (num <= count); } -void MorsDuino::Led::_dash(int count = 1) -{ - int num = 1; - do - { - digitalWrite(_pin, HIGH); - delay(500); - digitalWrite(_pin, LOW); - delay(125); - num++; - } while (num <= count); +void MorsDuino::Led::_dash(int count = 1) { + int num = 1; + do { + digitalWrite(_pin, HIGH); + delay(500); + digitalWrite(_pin, LOW); + delay(125); + num++; + } while (num <= count); } -void MorsDuino::Led::_delaySeparator(int type) -{ - if (type == 1) - { - delay(_letterSeparatorDelay); - } - else if (type == 2) - { - delay(_wordSeparatorDelay); - } +void MorsDuino::Led::_delaySeparator(int type) { + if (type == 1) { + delay(_letterSeparatorDelay); + } else if (type == 2) { + delay(_wordSeparatorDelay); + } } -void MorsDuino::Led::displayString(String text) -{ - size_t numberOfElements = sizeof(text) / sizeof(text[0]); - for (int i = 0; i <= numberOfElements; i++) - { - MorsDuino::Led::displayChar(text[i]); - } +void MorsDuino::Led::displayString(String text) { + size_t numberOfElements = sizeof(text) / sizeof(text[0]); + for (int i = 0; i <= numberOfElements; i++) { + MorsDuino::Led::displayChar(text[i]); + } } -void MorsDuino::Led::displayChar(char character) -{ - switch (character) - { +void MorsDuino::Led::displayChar(char character) { + switch (character) { // Numbers case '1': - _dot(); - _dash(4); - _delaySeparator(1); - break; + _dot(); + _dash(4); + _delaySeparator(1); + break; case '2': - _dot(2); - _dash(3); - _delaySeparator(1); - break; + _dot(2); + _dash(3); + _delaySeparator(1); + break; case '3': - _dot(3); - _dash(2); - _delaySeparator(1); - break; + _dot(3); + _dash(2); + _delaySeparator(1); + break; case '4': - _dot(4); - _dash(1); - _delaySeparator(1); - break; + _dot(4); + _dash(1); + _delaySeparator(1); + break; case '5': - _dot(5); - _delaySeparator(1); - break; + _dot(5); + _delaySeparator(1); + break; case '6': - _dash(1); - _dot(4); - _delaySeparator(1); - break; + _dash(1); + _dot(4); + _delaySeparator(1); + break; case '7': - _dash(2); - _dot(3); - _delaySeparator(1); - break; + _dash(2); + _dot(3); + _delaySeparator(1); + break; case '8': - _dash(3); - _dot(2); - _delaySeparator(1); - break; + _dash(3); + _dot(2); + _delaySeparator(1); + break; case '9': - _dash(4); - _dot(1); - _delaySeparator(1); - break; + _dash(4); + _dot(1); + _delaySeparator(1); + break; case '0': - _dash(5); - _delaySeparator(1); - break; + _dash(5); + _delaySeparator(1); + break; // English alphabet case 'a': - _dot(); - _dash(); - _delaySeparator(1); - break; + _dot(); + _dash(); + _delaySeparator(1); + break; case 'b': - _dash(); - _dot(3); - _delaySeparator(1); - break; + _dash(); + _dot(3); + _delaySeparator(1); + break; case 'c': - _dash(); - _dot(); - _dash(); - _dot(); - _delaySeparator(1); - break; + _dash(); + _dot(); + _dash(); + _dot(); + _delaySeparator(1); + break; case 'd': - _dash(); - _dot(2); - _delaySeparator(1); - break; + _dash(); + _dot(2); + _delaySeparator(1); + break; case 'e': - _dot(); - _delaySeparator(1); - break; + _dot(); + _delaySeparator(1); + break; case 'f': - _dot(2); - _dash(); - _dot(); - _delaySeparator(1); - break; + _dot(2); + _dash(); + _dot(); + _delaySeparator(1); + break; case 'g': - _dash(2); - _dot(); - _delaySeparator(1); - break; + _dash(2); + _dot(); + _delaySeparator(1); + break; case 'h': - _dot(4); - _delaySeparator(1); - break; + _dot(4); + _delaySeparator(1); + break; case 'i': - _dot(2); - _delaySeparator(1); - break; + _dot(2); + _delaySeparator(1); + break; case 'j': - _dot(); - _dash(3); - _delaySeparator(1); - break; + _dot(); + _dash(3); + _delaySeparator(1); + break; case 'k': - _dash(); - _dot(); - _dash(); - _delaySeparator(1); - break; + _dash(); + _dot(); + _dash(); + _delaySeparator(1); + break; case 'l': - _dot(); - _dash(); - _dot(2); - _delaySeparator(1); - break; + _dot(); + _dash(); + _dot(2); + _delaySeparator(1); + break; case 'm': - _dash(2); - _delaySeparator(1); - break; + _dash(2); + _delaySeparator(1); + break; case 'n': - _dash(); - _dot(); - _delaySeparator(1); - break; + _dash(); + _dot(); + _delaySeparator(1); + break; case 'o': - _dash(3); - _delaySeparator(1); - break; + _dash(3); + _delaySeparator(1); + break; case 'p': - _dot(); - _dash(2); - _dot(); - _delaySeparator(1); - break; + _dot(); + _dash(2); + _dot(); + _delaySeparator(1); + break; case 'q': - _dash(2); - _dot(); - _dash(); - _delaySeparator(1); - break; + _dash(2); + _dot(); + _dash(); + _delaySeparator(1); + break; case 'r': - _dot(); - _dash(); - _dot(); - _delaySeparator(1); - break; + _dot(); + _dash(); + _dot(); + _delaySeparator(1); + break; case 's': - _dot(3); - _delaySeparator(1); - break; + _dot(3); + _delaySeparator(1); + break; case 't': - _dash(); - _delaySeparator(1); - break; + _dash(); + _delaySeparator(1); + break; case 'u': - _dot(2); - _dash(); - _delaySeparator(1); - break; + _dot(2); + _dash(); + _delaySeparator(1); + break; case 'v': - _dot(3); - _dash(); - _delaySeparator(1); - break; + _dot(3); + _dash(); + _delaySeparator(1); + break; case 'w': - _dot(); - _dash(2); - _delaySeparator(1); - break; + _dot(); + _dash(2); + _delaySeparator(1); + break; case 'x': - _dash(); - _dot(2); - _dash(); - _delaySeparator(1); - break; + _dash(); + _dot(2); + _dash(); + _delaySeparator(1); + break; case 'y': - _dash(); - _dot(); - _dash(2); - _delaySeparator(1); - break; + _dash(); + _dot(); + _dash(2); + _delaySeparator(1); + break; case 'z': - _dash(2); - _dot(2); - _delaySeparator(1); - break; + _dash(2); + _dot(2); + _delaySeparator(1); + break; case ' ': - _delaySeparator(2); - break; + _delaySeparator(2); + break; default: - break; - } + break; + } } -void MorsDuino::Led::displayInt(int number) -{ - String numbers = String(number); - size_t numberOfElements = sizeof(numbers) / sizeof(numbers[0]); - for (int i = 0; i <= numberOfElements; i++) - { - MorsDuino::Led::displayChar(numbers[i]); - } +void MorsDuino::Led::displayInt(int number) { + String numbers = String(number); + size_t numberOfElements = sizeof(numbers) / sizeof(numbers[0]); + for (int i = 0; i <= numberOfElements; i++) { + MorsDuino::Led::displayChar(numbers[i]); + } } \ No newline at end of file diff --git a/src/MorsDuino.h b/src/MorsDuino.h index 4f96600..4e8306f 100644 --- a/src/MorsDuino.h +++ b/src/MorsDuino.h @@ -3,42 +3,39 @@ #include "Arduino.h" -class MorsDuino -{ -public: - class Led - { - public: - Led(int pin); - void displayString(String text); - void displayChar(char character); - void displayInt(int number); +class MorsDuino { + public: + class Led { + public: + Led(int pin); + void displayString(String text); + void displayChar(char character); + void displayInt(int number); - private: - int _pin; - int _letterSeparatorDelay; - int _wordSeparatorDelay; - void _dot(int count); - void _dash(int count); - void _delaySeparator(int type); - }; - class RgbLed - { - public: - RgbLed(int red, int green, int blue); - void displayString(char color, String text); - void displayInt(char color, int number); - void displayChar(char color, char character); + private: + int _pin; + int _letterSeparatorDelay; + int _wordSeparatorDelay; + void _dot(int count); + void _dash(int count); + void _delaySeparator(int type); + }; + class RgbLed { + public: + RgbLed(int red, int green, int blue); + void displayString(char color, String text); + void displayInt(char color, int number); + void displayChar(char color, char character); - private: - int _redPin; - int _greenPin; - int _letterSeparatorDelay; - int _wordSeparatorDelay; - void _dot(int count); - void _dash(int count); - void _delaySeparator(int type); - }; + private: + int _redPin; + int _greenPin; + int _letterSeparatorDelay; + int _wordSeparatorDelay; + void _dot(int count); + void _dash(int count); + void _delaySeparator(int type); + }; }; -#endif // MORSDUINO_H \ No newline at end of file +#endif // MORSDUINO_H \ No newline at end of file From 1040fdd36dd25dfb5757935252c820f10402ec5c Mon Sep 17 00:00:00 2001 From: GGorAA <61655029+GGorAA@users.noreply.github.com> Date: Sun, 20 Sep 2020 18:16:16 +0300 Subject: [PATCH 3/8] reformat --- .vscode/settings.json | 2 +- src/Led.cpp | 440 +++++++++++++++++++++--------------------- src/MorsDuino.cpp | 6 +- src/MorsDuino.h | 58 +++--- 4 files changed, 253 insertions(+), 253 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ca6a2a7..6faeac7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,5 +7,5 @@ "arduino.logLevel": "info", "arduino.enableUSBDetection": true, "C_Cpp.intelliSenseEngine": "Default", - "C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 2, ColumnLimit: 0}" + "C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 0}" } \ No newline at end of file diff --git a/src/Led.cpp b/src/Led.cpp index 6ce072f..5a45912 100644 --- a/src/Led.cpp +++ b/src/Led.cpp @@ -2,239 +2,239 @@ #include "MorsDuino.h" void MorsDuino::Led::_dot(int count = 1) { - int num = 1; - do { - digitalWrite(_pin, HIGH); - delay(125); - digitalWrite(_pin, LOW); - delay(125); - num++; - } while (num <= count); + int num = 1; + do { + digitalWrite(_pin, HIGH); + delay(125); + digitalWrite(_pin, LOW); + delay(125); + num++; + } while (num <= count); } void MorsDuino::Led::_dash(int count = 1) { - int num = 1; - do { - digitalWrite(_pin, HIGH); - delay(500); - digitalWrite(_pin, LOW); - delay(125); - num++; - } while (num <= count); + int num = 1; + do { + digitalWrite(_pin, HIGH); + delay(500); + digitalWrite(_pin, LOW); + delay(125); + num++; + } while (num <= count); } void MorsDuino::Led::_delaySeparator(int type) { - if (type == 1) { - delay(_letterSeparatorDelay); - } else if (type == 2) { - delay(_wordSeparatorDelay); - } + if (type == 1) { + delay(_letterSeparatorDelay); + } else if (type == 2) { + delay(_wordSeparatorDelay); + } } void MorsDuino::Led::displayString(String text) { - size_t numberOfElements = sizeof(text) / sizeof(text[0]); - for (int i = 0; i <= numberOfElements; i++) { - MorsDuino::Led::displayChar(text[i]); - } + size_t numberOfElements = sizeof(text) / sizeof(text[0]); + for (int i = 0; i <= numberOfElements; i++) { + MorsDuino::Led::displayChar(text[i]); + } } void MorsDuino::Led::displayChar(char character) { - switch (character) { - // Numbers - case '1': - _dot(); - _dash(4); - _delaySeparator(1); - break; - case '2': - _dot(2); - _dash(3); - _delaySeparator(1); - break; - case '3': - _dot(3); - _dash(2); - _delaySeparator(1); - break; - case '4': - _dot(4); - _dash(1); - _delaySeparator(1); - break; - case '5': - _dot(5); - _delaySeparator(1); - break; - case '6': - _dash(1); - _dot(4); - _delaySeparator(1); - break; - case '7': - _dash(2); - _dot(3); - _delaySeparator(1); - break; - case '8': - _dash(3); - _dot(2); - _delaySeparator(1); - break; - case '9': - _dash(4); - _dot(1); - _delaySeparator(1); - break; - case '0': - _dash(5); - _delaySeparator(1); - break; - // English alphabet - case 'a': - _dot(); - _dash(); - _delaySeparator(1); - break; - case 'b': - _dash(); - _dot(3); - _delaySeparator(1); - break; - case 'c': - _dash(); - _dot(); - _dash(); - _dot(); - _delaySeparator(1); - break; - case 'd': - _dash(); - _dot(2); - _delaySeparator(1); - break; - case 'e': - _dot(); - _delaySeparator(1); - break; - case 'f': - _dot(2); - _dash(); - _dot(); - _delaySeparator(1); - break; - case 'g': - _dash(2); - _dot(); - _delaySeparator(1); - break; - case 'h': - _dot(4); - _delaySeparator(1); - break; - case 'i': - _dot(2); - _delaySeparator(1); - break; - case 'j': - _dot(); - _dash(3); - _delaySeparator(1); - break; - case 'k': - _dash(); - _dot(); - _dash(); - _delaySeparator(1); - break; - case 'l': - _dot(); - _dash(); - _dot(2); - _delaySeparator(1); - break; - case 'm': - _dash(2); - _delaySeparator(1); - break; - case 'n': - _dash(); - _dot(); - _delaySeparator(1); - break; - case 'o': - _dash(3); - _delaySeparator(1); - break; - case 'p': - _dot(); - _dash(2); - _dot(); - _delaySeparator(1); - break; - case 'q': - _dash(2); - _dot(); - _dash(); - _delaySeparator(1); - break; - case 'r': - _dot(); - _dash(); - _dot(); - _delaySeparator(1); - break; - case 's': - _dot(3); - _delaySeparator(1); - break; - case 't': - _dash(); - _delaySeparator(1); - break; - case 'u': - _dot(2); - _dash(); - _delaySeparator(1); - break; - case 'v': - _dot(3); - _dash(); - _delaySeparator(1); - break; - case 'w': - _dot(); - _dash(2); - _delaySeparator(1); - break; - case 'x': - _dash(); - _dot(2); - _dash(); - _delaySeparator(1); - break; - case 'y': - _dash(); - _dot(); - _dash(2); - _delaySeparator(1); - break; - case 'z': - _dash(2); - _dot(2); - _delaySeparator(1); - break; - case ' ': - _delaySeparator(2); - break; - default: - break; - } + switch (character) { + // Numbers + case '1': + _dot(); + _dash(4); + _delaySeparator(1); + break; + case '2': + _dot(2); + _dash(3); + _delaySeparator(1); + break; + case '3': + _dot(3); + _dash(2); + _delaySeparator(1); + break; + case '4': + _dot(4); + _dash(1); + _delaySeparator(1); + break; + case '5': + _dot(5); + _delaySeparator(1); + break; + case '6': + _dash(1); + _dot(4); + _delaySeparator(1); + break; + case '7': + _dash(2); + _dot(3); + _delaySeparator(1); + break; + case '8': + _dash(3); + _dot(2); + _delaySeparator(1); + break; + case '9': + _dash(4); + _dot(1); + _delaySeparator(1); + break; + case '0': + _dash(5); + _delaySeparator(1); + break; + // English alphabet + case 'a': + _dot(); + _dash(); + _delaySeparator(1); + break; + case 'b': + _dash(); + _dot(3); + _delaySeparator(1); + break; + case 'c': + _dash(); + _dot(); + _dash(); + _dot(); + _delaySeparator(1); + break; + case 'd': + _dash(); + _dot(2); + _delaySeparator(1); + break; + case 'e': + _dot(); + _delaySeparator(1); + break; + case 'f': + _dot(2); + _dash(); + _dot(); + _delaySeparator(1); + break; + case 'g': + _dash(2); + _dot(); + _delaySeparator(1); + break; + case 'h': + _dot(4); + _delaySeparator(1); + break; + case 'i': + _dot(2); + _delaySeparator(1); + break; + case 'j': + _dot(); + _dash(3); + _delaySeparator(1); + break; + case 'k': + _dash(); + _dot(); + _dash(); + _delaySeparator(1); + break; + case 'l': + _dot(); + _dash(); + _dot(2); + _delaySeparator(1); + break; + case 'm': + _dash(2); + _delaySeparator(1); + break; + case 'n': + _dash(); + _dot(); + _delaySeparator(1); + break; + case 'o': + _dash(3); + _delaySeparator(1); + break; + case 'p': + _dot(); + _dash(2); + _dot(); + _delaySeparator(1); + break; + case 'q': + _dash(2); + _dot(); + _dash(); + _delaySeparator(1); + break; + case 'r': + _dot(); + _dash(); + _dot(); + _delaySeparator(1); + break; + case 's': + _dot(3); + _delaySeparator(1); + break; + case 't': + _dash(); + _delaySeparator(1); + break; + case 'u': + _dot(2); + _dash(); + _delaySeparator(1); + break; + case 'v': + _dot(3); + _dash(); + _delaySeparator(1); + break; + case 'w': + _dot(); + _dash(2); + _delaySeparator(1); + break; + case 'x': + _dash(); + _dot(2); + _dash(); + _delaySeparator(1); + break; + case 'y': + _dash(); + _dot(); + _dash(2); + _delaySeparator(1); + break; + case 'z': + _dash(2); + _dot(2); + _delaySeparator(1); + break; + case ' ': + _delaySeparator(2); + break; + default: + break; + } } void MorsDuino::Led::displayInt(int number) { - String numbers = String(number); - size_t numberOfElements = sizeof(numbers) / sizeof(numbers[0]); - for (int i = 0; i <= numberOfElements; i++) { - MorsDuino::Led::displayChar(numbers[i]); - } + String numbers = String(number); + size_t numberOfElements = sizeof(numbers) / sizeof(numbers[0]); + for (int i = 0; i <= numberOfElements; i++) { + MorsDuino::Led::displayChar(numbers[i]); + } } \ No newline at end of file diff --git a/src/MorsDuino.cpp b/src/MorsDuino.cpp index 554cf64..6cebc26 100644 --- a/src/MorsDuino.cpp +++ b/src/MorsDuino.cpp @@ -1,8 +1,8 @@ -#include "Arduino.h" #include "MorsDuino.h" -MorsDuino::Led Led(int pin = 13) -{ +#include "Arduino.h" + +MorsDuino::Led Led(int pin = 13) { pinMode(pin, OUTPUT); MorsDuino::Led _letterSeparatorDelay = 400; MorsDuino::Led _wordSeparatorDelay = 1000; diff --git a/src/MorsDuino.h b/src/MorsDuino.h index 4e8306f..039ad49 100644 --- a/src/MorsDuino.h +++ b/src/MorsDuino.h @@ -4,38 +4,38 @@ #include "Arduino.h" class MorsDuino { - public: - class Led { public: - Led(int pin); - void displayString(String text); - void displayChar(char character); - void displayInt(int number); + class Led { + public: + Led(int pin); + void displayString(String text); + void displayChar(char character); + void displayInt(int number); - private: - int _pin; - int _letterSeparatorDelay; - int _wordSeparatorDelay; - void _dot(int count); - void _dash(int count); - void _delaySeparator(int type); - }; - class RgbLed { - public: - RgbLed(int red, int green, int blue); - void displayString(char color, String text); - void displayInt(char color, int number); - void displayChar(char color, char character); + private: + int _pin; + int _letterSeparatorDelay; + int _wordSeparatorDelay; + void _dot(int count); + void _dash(int count); + void _delaySeparator(int type); + }; + class RgbLed { + public: + RgbLed(int red, int green, int blue); + void displayString(char color, String text); + void displayInt(char color, int number); + void displayChar(char color, char character); - private: - int _redPin; - int _greenPin; - int _letterSeparatorDelay; - int _wordSeparatorDelay; - void _dot(int count); - void _dash(int count); - void _delaySeparator(int type); - }; + private: + int _redPin; + int _greenPin; + int _letterSeparatorDelay; + int _wordSeparatorDelay; + void _dot(int count); + void _dash(int count); + void _delaySeparator(int type); + }; }; #endif // MORSDUINO_H \ No newline at end of file From 3e30323cdaede3dfaa45791dc65fd80e40ff15a3 Mon Sep 17 00:00:00 2001 From: GGorAA <61655029+GGorAA@users.noreply.github.com> Date: Mon, 21 Sep 2020 22:51:29 +0300 Subject: [PATCH 4/8] fixed errors, added RGB LED support --- README.md | 20 +--- src/Led.cpp | 16 +-- src/MorsDuino.cpp | 19 +++- src/MorsDuino.h | 76 ++++++++------ src/RgbLed.cpp | 259 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 327 insertions(+), 63 deletions(-) create mode 100644 src/RgbLed.cpp diff --git a/README.md b/README.md index 5ed0c3d..11fd607 100644 --- a/README.md +++ b/README.md @@ -2,22 +2,4 @@ The lightweight Arduino Library for generating Morse code on LEDs, light strips, and speakers. Every Arduino board is supported(library uses standart Wiring functions). -## What it can do - -## Usage - -``` C++ -#include "MorsDuino.h" - -MorsDuinoLed led(13); // Make new instance of MarsDuinoLed class with name 'led' - -void setup() { - Serial.begin(9600); // Start serial on 9600 baud rate -} - -void loop() { - while(!Serial.available()); // Wait until serial has some data - char data = Serial.read(); // Read data - led.displayChar(data); // Draw morse on 13 LED -} -``` +To see tutorials about using MorsDuino, visit Wiki. diff --git a/src/Led.cpp b/src/Led.cpp index 5a45912..aa60f65 100644 --- a/src/Led.cpp +++ b/src/Led.cpp @@ -1,7 +1,7 @@ #include "Arduino.h" #include "MorsDuino.h" -void MorsDuino::Led::_dot(int count = 1) { +void MorsDuinoLed::_dot(int count = 1) { int num = 1; do { digitalWrite(_pin, HIGH); @@ -12,7 +12,7 @@ void MorsDuino::Led::_dot(int count = 1) { } while (num <= count); } -void MorsDuino::Led::_dash(int count = 1) { +void MorsDuinoLed::_dash(int count = 1) { int num = 1; do { digitalWrite(_pin, HIGH); @@ -23,7 +23,7 @@ void MorsDuino::Led::_dash(int count = 1) { } while (num <= count); } -void MorsDuino::Led::_delaySeparator(int type) { +void MorsDuinoLed::_delaySeparator(int type) { if (type == 1) { delay(_letterSeparatorDelay); } else if (type == 2) { @@ -31,14 +31,14 @@ void MorsDuino::Led::_delaySeparator(int type) { } } -void MorsDuino::Led::displayString(String text) { +void MorsDuinoLed::displayString(String text) { size_t numberOfElements = sizeof(text) / sizeof(text[0]); for (int i = 0; i <= numberOfElements; i++) { - MorsDuino::Led::displayChar(text[i]); + MorsDuinoLed::displayChar(text[i]); } } -void MorsDuino::Led::displayChar(char character) { +void MorsDuinoLed::displayChar(char character) { switch (character) { // Numbers case '1': @@ -231,10 +231,10 @@ void MorsDuino::Led::displayChar(char character) { } } -void MorsDuino::Led::displayInt(int number) { +void MorsDuinoLed::displayInt(int number) { String numbers = String(number); size_t numberOfElements = sizeof(numbers) / sizeof(numbers[0]); for (int i = 0; i <= numberOfElements; i++) { - MorsDuino::Led::displayChar(numbers[i]); + MorsDuinoLed::displayChar(numbers[i]); } } \ No newline at end of file diff --git a/src/MorsDuino.cpp b/src/MorsDuino.cpp index 6cebc26..6fd0a8e 100644 --- a/src/MorsDuino.cpp +++ b/src/MorsDuino.cpp @@ -2,9 +2,20 @@ #include "Arduino.h" -MorsDuino::Led Led(int pin = 13) { +MorsDuinoLed::MorsDuinoLed(int pin = 13) { pinMode(pin, OUTPUT); - MorsDuino::Led _letterSeparatorDelay = 400; - MorsDuino::Led _wordSeparatorDelay = 1000; - MorsDuino::Led _pin = pin; + _letterSeparatorDelay = 400; + _wordSeparatorDelay = 1000; + _pin = pin; +} + +MorsDuinoRgbLed::MorsDuinoRgbLed(int red, int green, int blue, int type) { + // Setup pins + pinMode(red, OUTPUT); + pinMode(green, OUTPUT); + pinMode(blue, OUTPUT); + // Setup local variables + _redPin = red; + _greenPin = green; + _bluePin = blue; } \ No newline at end of file diff --git a/src/MorsDuino.h b/src/MorsDuino.h index 039ad49..0dc790c 100644 --- a/src/MorsDuino.h +++ b/src/MorsDuino.h @@ -3,39 +3,51 @@ #include "Arduino.h" -class MorsDuino { +class MorsDuinoLed { public: - class Led { - public: - Led(int pin); - void displayString(String text); - void displayChar(char character); - void displayInt(int number); - - private: - int _pin; - int _letterSeparatorDelay; - int _wordSeparatorDelay; - void _dot(int count); - void _dash(int count); - void _delaySeparator(int type); - }; - class RgbLed { - public: - RgbLed(int red, int green, int blue); - void displayString(char color, String text); - void displayInt(char color, int number); - void displayChar(char color, char character); - - private: - int _redPin; - int _greenPin; - int _letterSeparatorDelay; - int _wordSeparatorDelay; - void _dot(int count); - void _dash(int count); - void _delaySeparator(int type); - }; + MorsDuinoLed(int pin); + void displayString(String text); + void displayChar(char character); + void displayInt(int number); + + private: + int _pin; + int _letterSeparatorDelay; + int _wordSeparatorDelay; + void _dot(int count); + void _dash(int count); + void _delaySeparator(int type); +}; +class MorsDuinoRgbLed { + public: + MorsDuinoRgbLed(int red, int green, int blue); + + void displayString(String text); + void displayInt(int number); + void displayChar(char character); + + void setDefaultColor(char color); + void changeBrightness(int brightness); + + private: + int _redPin; + int _greenPin; + int _bluePin; + + int _letterSeparatorDelay; + int _wordSeparatorDelay; + + char _defaultColor; + + int _redPinMaxBrightnessBuffer; + int _greenPinMaxBrightnessBuffer; + int _bluePinMaxBrightnessBuffer; + + void _dot(int count); + void _dash(int count); + void _delaySeparator(int type); + void _drawColor(char color); + void _off(); }; #endif // MORSDUINO_H \ No newline at end of file diff --git a/src/RgbLed.cpp b/src/RgbLed.cpp new file mode 100644 index 0000000..5b38970 --- /dev/null +++ b/src/RgbLed.cpp @@ -0,0 +1,259 @@ +#include "Arduino.h" +#include "MorsDuino.h" + +void MorsDuinoRgbLed::setDefaultColor(char color) { + _defaultColor = color; +} + +// Function to display color +void MorsDuinoRgbLed::_drawColor(char color) { + int redColor = ((color >> 16) & 0xFF) / 255.0; // Extract the RR byte + int greenColor = ((color >> 8) & 0xFF) / 255.0; // Extract the GG byte + int blueColor = ((color)&0xFF) / 255.0; // Extract the BB byte + + analogWrite(_redPin, redColor); + analogWrite(_greenPin, greenColor); + analogWrite(_bluePin, blueColor); +} + +void MorsDuinoRgbLed::_off() { + analogWrite(_redPin, 0); + analogWrite(_greenPin, 0); + analogWrite(_bluePin, 0); +} +void MorsDuinoRgbLed::_dot(int count = 1) { + int num = 1; + do { + _drawColor(_defaultColor); + delay(125); + _off(); + delay(125); + num++; + } while (num <= count); +} +void MorsDuinoRgbLed::_dash(int count = 1) { + int num = 1; + do { + _drawColor(_defaultColor); + delay(500); + _off(); + delay(125); + num++; + } while (num <= count); +} + +void MorsDuinoRgbLed::_delaySeparator(int type) { + if (type == 1) { + delay(_letterSeparatorDelay); + } else if (type == 2) { + delay(_wordSeparatorDelay); + } +} + +void MorsDuinoRgbLed::displayString(String text) { + size_t numberOfElements = sizeof(text) / sizeof(text[0]); + for (int i = 0; i <= numberOfElements; i++) { + MorsDuinoRgbLed::displayChar(text[i]); + } +} + +void MorsDuinoRgbLed::displayChar(char character) { + switch (character) { + // Numbers + case '1': + _dot(); + _dash(4); + _delaySeparator(1); + break; + case '2': + _dot(2); + _dash(3); + _delaySeparator(1); + break; + case '3': + _dot(3); + _dash(2); + _delaySeparator(1); + break; + case '4': + _dot(4); + _dash(1); + _delaySeparator(1); + break; + case '5': + _dot(5); + _delaySeparator(1); + break; + case '6': + _dash(1); + _dot(4); + _delaySeparator(1); + break; + case '7': + _dash(2); + _dot(3); + _delaySeparator(1); + break; + case '8': + _dash(3); + _dot(2); + _delaySeparator(1); + break; + case '9': + _dash(4); + _dot(1); + _delaySeparator(1); + break; + case '0': + _dash(5); + _delaySeparator(1); + break; + // English alphabet + case 'a': + _dot(); + _dash(); + _delaySeparator(1); + break; + case 'b': + _dash(); + _dot(3); + _delaySeparator(1); + break; + case 'c': + _dash(); + _dot(); + _dash(); + _dot(); + _delaySeparator(1); + break; + case 'd': + _dash(); + _dot(2); + _delaySeparator(1); + break; + case 'e': + _dot(); + _delaySeparator(1); + break; + case 'f': + _dot(2); + _dash(); + _dot(); + _delaySeparator(1); + break; + case 'g': + _dash(2); + _dot(); + _delaySeparator(1); + break; + case 'h': + _dot(4); + _delaySeparator(1); + break; + case 'i': + _dot(2); + _delaySeparator(1); + break; + case 'j': + _dot(); + _dash(3); + _delaySeparator(1); + break; + case 'k': + _dash(); + _dot(); + _dash(); + _delaySeparator(1); + break; + case 'l': + _dot(); + _dash(); + _dot(2); + _delaySeparator(1); + break; + case 'm': + _dash(2); + _delaySeparator(1); + break; + case 'n': + _dash(); + _dot(); + _delaySeparator(1); + break; + case 'o': + _dash(3); + _delaySeparator(1); + break; + case 'p': + _dot(); + _dash(2); + _dot(); + _delaySeparator(1); + break; + case 'q': + _dash(2); + _dot(); + _dash(); + _delaySeparator(1); + break; + case 'r': + _dot(); + _dash(); + _dot(); + _delaySeparator(1); + break; + case 's': + _dot(3); + _delaySeparator(1); + break; + case 't': + _dash(); + _delaySeparator(1); + break; + case 'u': + _dot(2); + _dash(); + _delaySeparator(1); + break; + case 'v': + _dot(3); + _dash(); + _delaySeparator(1); + break; + case 'w': + _dot(); + _dash(2); + _delaySeparator(1); + break; + case 'x': + _dash(); + _dot(2); + _dash(); + _delaySeparator(1); + break; + case 'y': + _dash(); + _dot(); + _dash(2); + _delaySeparator(1); + break; + case 'z': + _dash(2); + _dot(2); + _delaySeparator(1); + break; + case ' ': + _delaySeparator(2); + break; + default: + break; + } +} + +void MorsDuinoRgbLed::displayInt(int number) { + String numbers = String(number); + size_t numberOfElements = sizeof(numbers) / sizeof(numbers[0]); + for (int i = 0; i <= numberOfElements; i++) { + MorsDuinoRgbLed::displayChar(numbers[i]); + } +} \ No newline at end of file From 6a60febc374939c5843ecdb0de006f8e5d0c7e71 Mon Sep 17 00:00:00 2001 From: GGorAA <61655029+GGorAA@users.noreply.github.com> Date: Mon, 21 Sep 2020 23:25:15 +0300 Subject: [PATCH 5/8] Tried to add brightness control. For now thinking how to impement --- src/MorsDuino.h | 12 +++++++++--- src/RgbLed.cpp | 47 ++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 49 insertions(+), 10 deletions(-) diff --git a/src/MorsDuino.h b/src/MorsDuino.h index 0dc790c..2f1fa93 100644 --- a/src/MorsDuino.h +++ b/src/MorsDuino.h @@ -26,18 +26,23 @@ class MorsDuinoRgbLed { void displayInt(int number); void displayChar(char character); - void setDefaultColor(char color); - void changeBrightness(int brightness); + void setColor(char color); + void setBrightness(int brightness); + void setState(bool state); private: int _redPin; int _greenPin; int _bluePin; + int _redColorBuffer; + int _greenColorBuffer; + int _blueColorBuffer; + int _letterSeparatorDelay; int _wordSeparatorDelay; - char _defaultColor; + char _savedColor; int _redPinMaxBrightnessBuffer; int _greenPinMaxBrightnessBuffer; @@ -46,6 +51,7 @@ class MorsDuinoRgbLed { void _dot(int count); void _dash(int count); void _delaySeparator(int type); + void _changeState(bool state); void _drawColor(char color); void _off(); }; diff --git a/src/RgbLed.cpp b/src/RgbLed.cpp index 5b38970..0e5e15e 100644 --- a/src/RgbLed.cpp +++ b/src/RgbLed.cpp @@ -1,16 +1,34 @@ #include "Arduino.h" #include "MorsDuino.h" -void MorsDuinoRgbLed::setDefaultColor(char color) { - _defaultColor = color; +void MorsDuinoRgbLed::setColor(char color) { + _drawColor(color); + _savedColor = color; +} + +void MorsDuinoRgbLed::setState(bool state) { + if (state) { + analogWrite(_redPin, _redColorBuffer); + analogWrite(_greenPin, _greenColorBuffer); + analogWrite(_bluePin, _blueColorBuffer); + } else { + analogWrite(_redPin, 0); + analogWrite(_greenPin, 0); + analogWrite(_bluePin, 0); + } } // Function to display color void MorsDuinoRgbLed::_drawColor(char color) { - int redColor = ((color >> 16) & 0xFF) / 255.0; // Extract the RR byte - int greenColor = ((color >> 8) & 0xFF) / 255.0; // Extract the GG byte + int redColor = ((color >> 16) & 0xFF) / 255.0; // Extract the RR byte + int greenColor = ((color >> 8) & 0xFF) / 255.0; // Extract the GG byte int blueColor = ((color)&0xFF) / 255.0; // Extract the BB byte + // Save colors + _redColorBuffer = redColor; + _greenColorBuffer = greenColor; + _blueColorBuffer = blueColor; + analogWrite(_redPin, redColor); analogWrite(_greenPin, greenColor); analogWrite(_bluePin, blueColor); @@ -24,7 +42,7 @@ void MorsDuinoRgbLed::_off() { void MorsDuinoRgbLed::_dot(int count = 1) { int num = 1; do { - _drawColor(_defaultColor); + _drawColor(_savedColor); delay(125); _off(); delay(125); @@ -34,7 +52,7 @@ void MorsDuinoRgbLed::_dot(int count = 1) { void MorsDuinoRgbLed::_dash(int count = 1) { int num = 1; do { - _drawColor(_defaultColor); + _drawColor(_savedColor); delay(500); _off(); delay(125); @@ -256,4 +274,19 @@ void MorsDuinoRgbLed::displayInt(int number) { for (int i = 0; i <= numberOfElements; i++) { MorsDuinoRgbLed::displayChar(numbers[i]); } -} \ No newline at end of file +} + +/*void MorsDuinoRgbLed::setBrightness(int brightness) { + // Extract data + int redColor = ((_savedColor >> 16) & 0xFF) / 255.0; // Extract the RR byte + int greenColor = ((_savedColor >> 8) & 0xFF) / 255.0; // Extract the GG byte + int blueColor = ((_savedColor)&0xFF) / 255.0; // Extract the BB byte + + // Save data + _redPinMaxBrightnessBuffer = redColor; + + // Set brightness using percents. Just get a percent value from variables :) + analogWrite(_redPin, redColor % brightness); + analogWrite(_greenPin, greenColor % brightness); + analogWrite(_bluePin, blueColor % brightness); +}*/ \ No newline at end of file From a7d6ea0c7821328eb12f5ab17ea11f18a002550d Mon Sep 17 00:00:00 2001 From: GGorAA <61655029+GGorAA@users.noreply.github.com> Date: Mon, 21 Sep 2020 23:29:54 +0300 Subject: [PATCH 6/8] upd --- src/RgbLed.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/RgbLed.cpp b/src/RgbLed.cpp index 0e5e15e..83d6d03 100644 --- a/src/RgbLed.cpp +++ b/src/RgbLed.cpp @@ -276,7 +276,7 @@ void MorsDuinoRgbLed::displayInt(int number) { } } -/*void MorsDuinoRgbLed::setBrightness(int brightness) { +void MorsDuinoRgbLed::setBrightness(int brightness) { // Extract data int redColor = ((_savedColor >> 16) & 0xFF) / 255.0; // Extract the RR byte int greenColor = ((_savedColor >> 8) & 0xFF) / 255.0; // Extract the GG byte @@ -289,4 +289,4 @@ void MorsDuinoRgbLed::displayInt(int number) { analogWrite(_redPin, redColor % brightness); analogWrite(_greenPin, greenColor % brightness); analogWrite(_bluePin, blueColor % brightness); -}*/ \ No newline at end of file +} \ No newline at end of file From a15b1236e3e89ea856888dcf7a90a18c92b79df8 Mon Sep 17 00:00:00 2001 From: GGorAA <61655029+GGorAA@users.noreply.github.com> Date: Thu, 24 Sep 2020 14:59:16 +0300 Subject: [PATCH 7/8] upd --- MorsDuino.code-workspace | 3 ++- library.properties | 2 +- src/MorsDuino.h | 1 + src/RgbLed.cpp | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/MorsDuino.code-workspace b/MorsDuino.code-workspace index 44e6bc5..8568d59 100644 --- a/MorsDuino.code-workspace +++ b/MorsDuino.code-workspace @@ -8,7 +8,8 @@ "files.associations": { "vector": "cpp", "iosfwd": "cpp", - "iterator": "cpp" + "iterator": "cpp", + "__locale": "cpp" } } } \ No newline at end of file diff --git a/library.properties b/library.properties index 62eba38..a3e7595 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=MorseDuino -version=1.0 +version=2.0 author=GGorAA maintainer=GGorAA sentence=Arduino library for generation morse code and displaying it on LEDs diff --git a/src/MorsDuino.h b/src/MorsDuino.h index 2f1fa93..69f20ff 100644 --- a/src/MorsDuino.h +++ b/src/MorsDuino.h @@ -52,6 +52,7 @@ class MorsDuinoRgbLed { void _dash(int count); void _delaySeparator(int type); void _changeState(bool state); + void _applyBrightnessSettings(); void _drawColor(char color); void _off(); }; diff --git a/src/RgbLed.cpp b/src/RgbLed.cpp index 83d6d03..115c8d8 100644 --- a/src/RgbLed.cpp +++ b/src/RgbLed.cpp @@ -4,6 +4,7 @@ void MorsDuinoRgbLed::setColor(char color) { _drawColor(color); _savedColor = color; + _applyBrightnessSettings(); } void MorsDuinoRgbLed::setState(bool state) { From f0d8b3e0fe8ece1b562c7388e92df7c67f582717 Mon Sep 17 00:00:00 2001 From: GGorAA <61655029+GGorAA@users.noreply.github.com> Date: Thu, 24 Sep 2020 15:13:14 +0300 Subject: [PATCH 8/8] library props upd --- library.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library.properties b/library.properties index a3e7595..eb1aa68 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=MorseDuino -version=2.0 +version=2.0-beta2 author=GGorAA maintainer=GGorAA sentence=Arduino library for generation morse code and displaying it on LEDs