From a7f56703c08965ee6fda948e473474943e8af86a Mon Sep 17 00:00:00 2001 From: Michel Date: Sat, 28 Dec 2019 15:50:55 +0100 Subject: [PATCH 1/4] v2.0.0 --- Sketch/Sketch.ino | 77 ----------------- Sketch_visualPWM/Sketch_visualPWM.ino | 112 ------------------------ platformio.ini | 9 +- src/main.cpp | 118 ++++++++++++++++++++++++++ 4 files changed, 119 insertions(+), 197 deletions(-) delete mode 100644 Sketch/Sketch.ino delete mode 100644 Sketch_visualPWM/Sketch_visualPWM.ino create mode 100644 src/main.cpp diff --git a/Sketch/Sketch.ino b/Sketch/Sketch.ino deleted file mode 100644 index 428fdc2..0000000 --- a/Sketch/Sketch.ino +++ /dev/null @@ -1,77 +0,0 @@ -/************************************* - * Kerstboomshield voor Arduino - * Author: Michel Bats - * Website: www.batssoft.nl - * Version: 1.0.0 - * Revision: 20141216 - *************************************/ - -// Bepalingen -int ledPin[] = { - 6 ,9 ,10,11}; // Uitgangen met PWM-mogelijkheden -int randomLed[] = { - 0 ,0 ,0 ,0 }; // Variabele om te gebruiken bij het aftellen tot het moment van omschakelen -int countLedUp[] = { - 0 ,0 ,0 ,0 }; // Variabele waarbij bij 1 de LED feller moet gaan branden en bij 0 zwakker -int currentLedPwm[] = { - 0 ,0 ,0 ,0 }; // Variabele waarin de huidige PWM-waarde is opgeslagen (0-255) -int ledCount = 4; // Aantal aangesloten LED's (of LED-arrays) -int delayPot = A5; // Ingang potmeter - -// Aanmaken benodigde variabelen -int temp0; - -void setup() { - // Loop om door het aantal volgens ledCount te gaan - for (int i=0; i <= (ledCount-1); i++){ - // eerst initialisatie van de PWM-puls op de uitgangen - analogWrite(ledPin[i], currentLedPwm[i]); - } -} - -void loop() { - // Uitlezen potmeter voor instelling vertraging (delay()) - int delayPotValue = analogRead(delayPot); - // Gegevens potmeter omzetten naar 1 t/m 25ms voor de delay() - int delayPotValueMap = map(delayPotValue, 0, 1023, 1, 25); - - // Loop om door het aantal volgens ledCount te gaan - for (int i=0; i <= (ledCount-1); i++){ - // Controleren of randomLed 0 of kleiner is zodat deze een nieuwe waarde kan krijgen (random() tussen max in de nieuwe richting en de helft van max en huidige waarde) - if (randomLed[i] <= 0){ - // Waarde countLedUp omdraaien - countLedUp[i] = map (countLedUp[i], 1, 0, 0, 1); - // Controleren of countLedUp nu 1 of 0 is. - if (countLedUp[i] == 1) { - // In geval van een 1: temp0 vullen met de maximaal aantal stappen tussen currentLedPwm en de maximale PWM-puls-waarde (255). - temp0 = 255 - currentLedPwm[i]; - } else { - // In geval van een 0: temp0 vullen met currentLedPwm aangezien dat de stappen zijn tot de minimale waarde voor een PWM-puls (0). - temp0 = currentLedPwm[i]; - } - // radom() waarde aanmaken tussen het maximale verschil en de helft daarvan. - randomLed[i] = random(temp0/2, temp0); - } - - // Controleren of de LED(-array) feller of zwakker moet gaan branden op basis van countLedUp - if (countLedUp[i] == 1) { - // currentLedPwm met 1 ophogen. - currentLedPwm[i]++; - } else { - // currentLedPwm met 1 verlagen. - currentLedPwm[i]--; - } - - // randomLed met 1 verlagen. - randomLed[i]--; - - // De waarde van currentLedPwm wegschrijven naar de uitgang van de LED(-array) - analogWrite(ledPin[i], currentLedPwm[i]); - } - - // Pauze inlassen met het aantal ms volgens delayPotValueMap - delay(delayPotValueMap); -} - - - diff --git a/Sketch_visualPWM/Sketch_visualPWM.ino b/Sketch_visualPWM/Sketch_visualPWM.ino deleted file mode 100644 index c9262b1..0000000 --- a/Sketch_visualPWM/Sketch_visualPWM.ino +++ /dev/null @@ -1,112 +0,0 @@ -/************************************* - * Kerstboomshield voor Arduino - * Author: Michel Bats - * Website: www.batssoft.nl - * Version: 1.0.0 - * Revision: 20141216 - *************************************/ - -// Bibliotheken -#include -#include -#include -#include - -// Bepalingen -int ledPin[] = { - 6 ,9 ,10,11}; // Uitgangen met PWM-mogelijkheden -int randomLed[] = { - 0 ,0 ,0 ,0 }; // Variabele om te gebruiken bij het aftellen tot het moment van omschakelen -int countLedUp[] = { - 0 ,0 ,0 ,0 }; // Variabele waarbij bij 1 de LED feller moet gaan branden en bij 0 zwakker -int currentLedPwm[] = { - 0 ,0 ,0 ,0 }; // Variabele waarin de huidige PWM-waarde is opgeslagen (0-255) -int ledCount = 4; // Aantal aangesloten LED's (of LED-arrays) -int delayPot = A5; // Ingang potmeter -// Bepalingen Display -#define OLED_ADDR 60 // 60 = 0x3C / 61 = 0x3D -#define SCREEN_WIDTH 128 // OLED-scherm breedte, in pixels -#define SCREEN_HEIGHT 64 // OLED-scherm hoogte, in pixels -#define OLED_RESET 4 - -// Aanmaken benodigde variabelen -int temp0; -int currentLedPwmDisp; - -// Initialisatie Adafruit_SSD1306 -Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); - -void setup() { - // Start Display - display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR,HEX); - display.clearDisplay(); - - // Loop om door het aantal volgens ledCount te gaan - for (int i=0; i <= (ledCount-1); i++){ - // eerst initialisatie van de PWM-puls op de uitgangen - analogWrite(ledPin[i], currentLedPwm[i]); - } -} - -void loop() { - // Uitlezen potmeter voor instelling vertraging (delay()) - int delayPotValue = analogRead(delayPot); - // Gegevens potmeter omzetten naar 1 t/m 25ms voor de delay() - int delayPotValueMap = map(delayPotValue, 0, 1023, 1, 25); - - // Loop om door het aantal volgens ledCount te gaan - for (int i=0; i <= (ledCount-1); i++){ - // Controleren of randomLed 0 of kleiner is zodat deze een nieuwe waarde kan krijgen (random() tussen max in de nieuwe richting en de helft van max en huidige waarde) - if (randomLed[i] <= 0){ - // Waarde countLedUp omdraaien - countLedUp[i] = map (countLedUp[i], 1, 0, 0, 1); - // Controleren of countLedUp nu 1 of 0 is. - if (countLedUp[i] == 1) { - // In geval van een 1: temp0 vullen met de maximaal aantal stappen tussen currentLedPwm en de maximale PWM-puls-waarde (255). - temp0 = 255 - currentLedPwm[i]; - } - else { - // In geval van een 0: temp0 vullen met currentLedPwm aangezien dat de stappen zijn tot de minimale waarde voor een PWM-puls (0). - temp0 = currentLedPwm[i]; - } - // radom() waarde aanmaken tussen het maximale verschil en de helft daarvan. - randomLed[i] = random(temp0/2, temp0); - } - - // Controleren of de LED(-array) feller of zwakker moet gaan branden op basis van countLedUp - if (countLedUp[i] == 1) { - // currentLedPwm met 1 ophogen. - currentLedPwm[i]++; - } - else { - // currentLedPwm met 1 verlagen. - currentLedPwm[i]--; - } - - // randomLed met 1 verlagen. - randomLed[i]--; - - // De waarde van currentLedPwm wegschrijven naar de uitgang van de LED(-array) - analogWrite(ledPin[i], currentLedPwm[i]); - - currentLedPwmDisp = map(currentLedPwm[i], 0, 255, 0, 127); - - // Lijnen tekenen voor visuele weergave (op het scherm) van de gegevens - display.drawLine(0, (16*(i))+7, 127, (16*(i))+7, WHITE); - display.drawLine(0, (16*(i)), 0, (16*(i))+14, WHITE); - display.drawLine(127, (16*(i)), 127, (16*(i))+14, WHITE); - display.drawLine(currentLedPwmDisp, (16*(i))+4, currentLedPwmDisp, (16*(i))+10, WHITE); - //display.fillRect(currentLedPwmDisp, (16*(i)), currentLedPwmDisp, (16*(i))+14, WHITE); - } - - // Uitvoer display - display.display(); - display.clearDisplay(); - - // Pauze inlassen met het aantal ms volgens delayPotValueMap - delay(1); -} - - - - diff --git a/platformio.ini b/platformio.ini index c3307a8..2134292 100644 --- a/platformio.ini +++ b/platformio.ini @@ -1,4 +1,4 @@ -; PlatformIO Project Configuration File +;PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags @@ -8,14 +8,7 @@ ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html -[platformio] -src_dir = Sketch -src_dir = Sketch_visualPWM - [env:uno] platform = atmelavr board = uno framework = arduino -lib_deps = - Adafruit GFX Library - Adafruit SSD1306 diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..bfc792d --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,118 @@ +/************************************* + * Kerstboomshield voor Arduino + ESP8266 + * Author: Michel Bats + * Website: www.batssoft.nl + * Version: 2.0.0 + * Revision: 20191228 + *************************************/ + +// Bibliotheken +#include + +// Bepalingen +int ledPin[] = { + 6 ,9 ,10,11}; // Uitgangen met PWM-mogelijkheden +int randomLed[] = { + 0 ,0 ,0 ,0 }; // Variabele om te gebruiken bij het aftellen tot het moment van omschakelen +int countLedUp[] = { + 0 ,0 ,0 ,0 }; // Variabele waarbij bij 1 de LED feller moet gaan branden en bij 0 zwakker +int currentLedPwm[] = { + 0 ,0 ,0 ,0 }; // Variabele waarin de huidige PWM-waarde is opgeslagen (0-255) +int ledCount = 4; // Aantal aangesloten LED's (of LED-arrays) +int delayPot = A5; // Ingang potmeter + +// Aanmaken benodigde variabelen +int temp0; +bool state = false; // Wordt gebruikt om de huidige status in weg te schrijven +int sketchDelay = 0; // Om in plaats van een delay een aantal keer geen data te schrijven. + +String inputString = ""; // Een sting om inkomende data in weg te schrijven. + +void serialEvent() { + while (Serial.available()) { + // Haal de nieuwe byte op. + char inChar = (char)Serial.read(); + // Verander het in een string. + inputString = inChar; + // Als de nieuwe waarde iets is om wat mee te doen pas state dan aan. + if(inputString == "1"){ + state = true; + Serial.println("ON"); + } else if(inputString == "0"){ + state = false; + Serial.println("OFF"); + } + inputString = ""; + } +} + +void setup() { + // Loop om door het aantal volgens ledCount te gaan + for (int i=0; i <= (ledCount-1); i++){ + // eerst initialisatie van de PWM-puls op de uitgangen + analogWrite(ledPin[i], currentLedPwm[i]); + } + + // Initialiseer seriƫle verbinding + Serial.begin(9600); + // reserveer 200 bytes voor de inputString: + inputString.reserve(200); +} + +void loop() { + if (state == 1) { + // Uitlezen potmeter voor instelling vertraging (delay()) + int delayPotValue = analogRead(delayPot); + // Gegevens potmeter omzetten naar 1 t/m 25ms voor de delay() + int delayPotValueMap = map(delayPotValue, 0, 1023, 1, 100); + + // Loop om door het aantal volgens ledCount te gaan + if (sketchDelay <= 0) { + for (int i=0; i <= (ledCount-1); i++){ + // Controleren of randomLed 0 of kleiner is zodat deze een nieuwe waarde kan krijgen (random() tussen max in de nieuwe richting en de helft van max en huidige waarde) + if (randomLed[i] <= 0){ + // Waarde countLedUp omdraaien + countLedUp[i] = map (countLedUp[i], 1, 0, 0, 1); + // Controleren of countLedUp nu 1 of 0 is. + if (countLedUp[i] == 1) { + // In geval van een 1: temp0 vullen met de maximaal aantal stappen tussen currentLedPwm en de maximale PWM-puls-waarde (255). + temp0 = 255 - currentLedPwm[i]; + } else { + // In geval van een 0: temp0 vullen met currentLedPwm aangezien dat de stappen zijn tot de minimale waarde voor een PWM-puls (0). + temp0 = currentLedPwm[i]; + } + // radom() waarde aanmaken tussen het maximale verschil en de helft daarvan. + randomLed[i] = random(temp0/2, temp0); + } + + // Controleren of de LED(-array) feller of zwakker moet gaan branden op basis van countLedUp + if (countLedUp[i] == 1) { + // currentLedPwm met 1 ophogen. + currentLedPwm[i]++; + } else { + // currentLedPwm met 1 verlagen. + currentLedPwm[i]--; + } + + // randomLed met 1 verlagen. + randomLed[i]--; + + // De waarde van currentLedPwm wegschrijven naar de uitgang van de LED(-array) + analogWrite(ledPin[i], currentLedPwm[i]); + } + + // Pauze inlassen met het aantal ms volgens delayPotValueMap + // delay(delayPotValueMap); + + sketchDelay = delayPotValueMap; + } else { + sketchDelay--; + } + } + + if(state == false) { + for (int i=0; i <= (ledCount-1); i++){ + analogWrite(ledPin[i], 0); + } + } +} From 6547f2eaedd27325b806a8f4420075c038df9f59 Mon Sep 17 00:00:00 2001 From: Michel Date: Sat, 28 Oct 2023 00:38:38 +0200 Subject: [PATCH 2/4] Removed unnecessary files --- .travis.yml | 67 -------------------------------------------------- include/README | 39 ----------------------------- lib/README | 46 ---------------------------------- test/README | 11 --------- 4 files changed, 163 deletions(-) delete mode 100644 .travis.yml delete mode 100644 include/README delete mode 100644 lib/README delete mode 100644 test/README diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a8bbc57..0000000 --- a/.travis.yml +++ /dev/null @@ -1,67 +0,0 @@ -# Continuous Integration (CI) is the practice, in software -# engineering, of merging all developer working copies with a shared mainline -# several times a day < https://docs.platformio.org/page/ci/index.html > -# -# Documentation: -# -# * Travis CI Embedded Builds with PlatformIO -# < https://docs.travis-ci.com/user/integration/platformio/ > -# -# * PlatformIO integration with Travis CI -# < https://docs.platformio.org/page/ci/travis.html > -# -# * User Guide for `platformio ci` command -# < https://docs.platformio.org/page/userguide/cmd_ci.html > -# -# -# Please choose one of the following templates (proposed below) and uncomment -# it (remove "# " before each line) or use own configuration according to the -# Travis CI documentation (see above). -# - - -# -# Template #1: General project. Test it using existing `platformio.ini`. -# - -# language: python -# python: -# - "2.7" -# -# sudo: false -# cache: -# directories: -# - "~/.platformio" -# -# install: -# - pip install -U platformio -# - platformio update -# -# script: -# - platformio run - - -# -# Template #2: The project is intended to be used as a library with examples. -# - -# language: python -# python: -# - "2.7" -# -# sudo: false -# cache: -# directories: -# - "~/.platformio" -# -# env: -# - PLATFORMIO_CI_SRC=path/to/test/file.c -# - PLATFORMIO_CI_SRC=examples/file.ino -# - PLATFORMIO_CI_SRC=path/to/test/directory -# -# install: -# - pip install -U platformio -# - platformio update -# -# script: -# - platformio ci --lib="." --board=ID_1 --board=ID_2 --board=ID_N diff --git a/include/README b/include/README deleted file mode 100644 index 45496b1..0000000 --- a/include/README +++ /dev/null @@ -1,39 +0,0 @@ - -This directory is intended for project header files. - -A header file is a file containing C declarations and macro definitions -to be shared between several project source files. You request the use of a -header file in your project source file (C, C++, etc) located in `src` folder -by including it, with the C preprocessing directive `#include'. - -```src/main.c - -#include "header.h" - -int main (void) -{ - ... -} -``` - -Including a header file produces the same results as copying the header file -into each source file that needs it. Such copying would be time-consuming -and error-prone. With a header file, the related declarations appear -in only one place. If they need to be changed, they can be changed in one -place, and programs that include the header file will automatically use the -new version when next recompiled. The header file eliminates the labor of -finding and changing all the copies as well as the risk that a failure to -find one copy will result in inconsistencies within a program. - -In C, the usual convention is to give header files names that end with `.h'. -It is most portable to use only letters, digits, dashes, and underscores in -header file names, and at most one dot. - -Read more about using header files in official GCC documentation: - -* Include Syntax -* Include Operation -* Once-Only Headers -* Computed Includes - -https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/lib/README b/lib/README deleted file mode 100644 index 8c9c29c..0000000 --- a/lib/README +++ /dev/null @@ -1,46 +0,0 @@ - -This directory is intended for project specific (private) libraries. -PlatformIO will compile them to static libraries and link into executable file. - -The source code of each library should be placed in a an own separate directory -("lib/your_library_name/[here are source files]"). - -For example, see a structure of the following two libraries `Foo` and `Bar`: - -|--lib -| | -| |--Bar -| | |--docs -| | |--examples -| | |--src -| | |- Bar.c -| | |- Bar.h -| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html -| | -| |--Foo -| | |- Foo.c -| | |- Foo.h -| | -| |- README --> THIS FILE -| -|- platformio.ini -|--src - |- main.c - -and a contents of `src/main.c`: -``` -#include -#include - -int main (void) -{ - ... -} - -``` - -PlatformIO Library Dependency Finder will find automatically dependent -libraries scanning project source files. - -More information about PlatformIO Library Dependency Finder -- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/test/README b/test/README deleted file mode 100644 index c3b0ed6..0000000 --- a/test/README +++ /dev/null @@ -1,11 +0,0 @@ - -This directory is intended for PIO Unit Testing and project tests. - -Unit Testing is a software testing method by which individual units of -source code, sets of one or more MCU program modules together with associated -control data, usage procedures, and operating procedures, are tested to -determine whether they are fit for use. Unit testing finds problems early -in the development cycle. - -More information about PIO Unit Testing: -- https://docs.platformio.org/page/plus/unit-testing.html From 005c05ae6131a2fc1e8ba5a4767c37befb83b47d Mon Sep 17 00:00:00 2001 From: Michel Date: Sat, 28 Oct 2023 00:39:39 +0200 Subject: [PATCH 3/4] Updated by PlatformIO --- .gitignore | 11 +++++------ .vscode/extensions.json | 17 ++++++++++------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index e426dbd..89cc49c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ -.pio -.pioenvs -.piolibdeps -.vscode/.browse.c_cpp.db* -.vscode/c_cpp_properties.json -.vscode/launch.json +.pio +.vscode/.browse.c_cpp.db* +.vscode/c_cpp_properties.json +.vscode/launch.json +.vscode/ipch diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 8281e64..080e70d 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,7 +1,10 @@ -{ - // See http://go.microsoft.com/fwlink/?LinkId=827846 - // for the documentation about the extensions.json format - "recommendations": [ - "platformio.platformio-ide" - ] -} \ No newline at end of file +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "platformio.platformio-ide" + ], + "unwantedRecommendations": [ + "ms-vscode.cpptools-extension-pack" + ] +} From 5be10b62c0421b790a146e279b7cd8e8c8ac08af Mon Sep 17 00:00:00 2001 From: Michel Date: Sat, 28 Oct 2023 00:44:21 +0200 Subject: [PATCH 4/4] Code cleanup --- platformio.ini | 10 ------ src/main.cpp | 92 +++++++++++++++++++++++++++++--------------------- 2 files changed, 54 insertions(+), 48 deletions(-) diff --git a/platformio.ini b/platformio.ini index 2134292..41867f4 100644 --- a/platformio.ini +++ b/platformio.ini @@ -1,13 +1,3 @@ -;PlatformIO Project Configuration File -; -; Build options: build flags, source filter -; Upload options: custom upload port, speed and extra flags -; Library options: dependencies, extra library storages -; Advanced options: extra scripting -; -; Please visit documentation for the other options and examples -; https://docs.platformio.org/page/projectconf.html - [env:uno] platform = atmelavr board = uno diff --git a/src/main.cpp b/src/main.cpp index bfc792d..0a40b59 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,44 +1,43 @@ /************************************* - * Kerstboomshield voor Arduino + ESP8266 + * arduino-kerstboomshield * Author: Michel Bats * Website: www.batssoft.nl - * Version: 2.0.0 - * Revision: 20191228 *************************************/ // Bibliotheken #include // Bepalingen -int ledPin[] = { - 6 ,9 ,10,11}; // Uitgangen met PWM-mogelijkheden -int randomLed[] = { - 0 ,0 ,0 ,0 }; // Variabele om te gebruiken bij het aftellen tot het moment van omschakelen -int countLedUp[] = { - 0 ,0 ,0 ,0 }; // Variabele waarbij bij 1 de LED feller moet gaan branden en bij 0 zwakker -int currentLedPwm[] = { - 0 ,0 ,0 ,0 }; // Variabele waarin de huidige PWM-waarde is opgeslagen (0-255) -int ledCount = 4; // Aantal aangesloten LED's (of LED-arrays) -int delayPot = A5; // Ingang potmeter +int ledPin[] = {6, 9, 10, 11}; // Uitgangen met PWM-mogelijkheden +int randomLed[] = {0, 0, 0, 0}; // Variabele om te gebruiken bij het aftellen tot het moment van omschakelen +int countLedUp[] = {0, 0, 0, 0}; // Variabele waarbij bij 1 de LED feller moet gaan branden en bij 0 zwakker +int currentLedPwm[] = {0, 0, 0, 0}; // Variabele waarin de huidige PWM-waarde is opgeslagen (0-255) +int ledCount = 4; // Aantal aangesloten LED's (of LED-arrays) +int delayPot = A5; // Ingang potmeter // Aanmaken benodigde variabelen int temp0; -bool state = false; // Wordt gebruikt om de huidige status in weg te schrijven -int sketchDelay = 0; // Om in plaats van een delay een aantal keer geen data te schrijven. +bool state = false; // Wordt gebruikt om de huidige status in weg te schrijven +int sketchDelay = 0; // Om in plaats van een delay een aantal keer geen data te schrijven. -String inputString = ""; // Een sting om inkomende data in weg te schrijven. +String inputString = ""; // Een sting om inkomende data in weg te schrijven. -void serialEvent() { - while (Serial.available()) { +void serialEvent() +{ + while (Serial.available()) + { // Haal de nieuwe byte op. char inChar = (char)Serial.read(); // Verander het in een string. inputString = inChar; // Als de nieuwe waarde iets is om wat mee te doen pas state dan aan. - if(inputString == "1"){ + if (inputString == "1") + { state = true; Serial.println("ON"); - } else if(inputString == "0"){ + } + else if (inputString == "0") + { state = false; Serial.println("OFF"); } @@ -46,9 +45,11 @@ void serialEvent() { } } -void setup() { +void setup() +{ // Loop om door het aantal volgens ledCount te gaan - for (int i=0; i <= (ledCount-1); i++){ + for (int i = 0; i <= (ledCount - 1); i++) + { // eerst initialisatie van de PWM-puls op de uitgangen analogWrite(ledPin[i], currentLedPwm[i]); } @@ -57,39 +58,50 @@ void setup() { Serial.begin(9600); // reserveer 200 bytes voor de inputString: inputString.reserve(200); -} +} -void loop() { - if (state == 1) { +void loop() +{ + if (state == 1) + { // Uitlezen potmeter voor instelling vertraging (delay()) int delayPotValue = analogRead(delayPot); // Gegevens potmeter omzetten naar 1 t/m 25ms voor de delay() int delayPotValueMap = map(delayPotValue, 0, 1023, 1, 100); // Loop om door het aantal volgens ledCount te gaan - if (sketchDelay <= 0) { - for (int i=0; i <= (ledCount-1); i++){ + if (sketchDelay <= 0) + { + for (int i = 0; i <= (ledCount - 1); i++) + { // Controleren of randomLed 0 of kleiner is zodat deze een nieuwe waarde kan krijgen (random() tussen max in de nieuwe richting en de helft van max en huidige waarde) - if (randomLed[i] <= 0){ + if (randomLed[i] <= 0) + { // Waarde countLedUp omdraaien - countLedUp[i] = map (countLedUp[i], 1, 0, 0, 1); + countLedUp[i] = map(countLedUp[i], 1, 0, 0, 1); // Controleren of countLedUp nu 1 of 0 is. - if (countLedUp[i] == 1) { + if (countLedUp[i] == 1) + { // In geval van een 1: temp0 vullen met de maximaal aantal stappen tussen currentLedPwm en de maximale PWM-puls-waarde (255). temp0 = 255 - currentLedPwm[i]; - } else { + } + else + { // In geval van een 0: temp0 vullen met currentLedPwm aangezien dat de stappen zijn tot de minimale waarde voor een PWM-puls (0). temp0 = currentLedPwm[i]; } // radom() waarde aanmaken tussen het maximale verschil en de helft daarvan. - randomLed[i] = random(temp0/2, temp0); + randomLed[i] = random(temp0 / 2, temp0); } // Controleren of de LED(-array) feller of zwakker moet gaan branden op basis van countLedUp - if (countLedUp[i] == 1) { + if (countLedUp[i] == 1) + { // currentLedPwm met 1 ophogen. currentLedPwm[i]++; - } else { + } + else + { // currentLedPwm met 1 verlagen. currentLedPwm[i]--; } @@ -105,13 +117,17 @@ void loop() { // delay(delayPotValueMap); sketchDelay = delayPotValueMap; - } else { + } + else + { sketchDelay--; } } - - if(state == false) { - for (int i=0; i <= (ledCount-1); i++){ + + if (state == false) + { + for (int i = 0; i <= (ledCount - 1); i++) + { analogWrite(ledPin[i], 0); } }