This commit is contained in:
sublunarspace 2020-06-03 18:58:42 +02:00
parent 74648bb968
commit 6a398e2ddb

View file

@ -25,7 +25,8 @@ SOFTWARE.
*/ */
#include "OneButton.h" #include <OneButton.h>
#include <fix_fft.h>
#define btnA 0 //PA0 / Button A: #define btnA 0 //PA0 / Button A:
#define btnB 2 //PA1 / Button B: #define btnB 2 //PA1 / Button B:
@ -43,6 +44,7 @@ SOFTWARE.
//---- BUTTONS ---- //---- BUTTONS ----
byte counterA = 0; //count push btnA: byte counterA = 0; //count push btnA:
byte counterB = 0; //count push btnB:
byte counterC = 0; //count push btnC: byte counterC = 0; //count push btnC:
bool enabled_btnAC = true; //Button A + C enabled or not bool enabled_btnAC = true; //Button A + C enabled or not
bool enabled_btnB = true; //Button B enabled or not bool enabled_btnB = true; //Button B enabled or not
@ -88,8 +90,9 @@ void setup() {
// BUTTONS // BUTTONS
buttonA.attachClick(cycleColors); buttonA.attachClick(cycleColors);
buttonB.attachLongPressStart(ultraviolet); buttonB.attachClick(ultraviolet);
buttonC.attachLongPressStart(opAmp); buttonB.attachLongPressStart(uvForever);
buttonC.attachClick(opAmp);
// LEDS // LEDS
pinMode(led_B, OUTPUT); pinMode(led_B, OUTPUT);
@ -118,7 +121,9 @@ void loop() {
if ( countDelay == true && ((millis()-oldTime) > 60000)) { //If enabled, turns UV LED off after 1min if ( countDelay == true && ((millis()-oldTime) > 60000)) { //If enabled, turns UV LED off after 1min
//Turn the UV LED off //Turn the UV LED off
digitalWrite(uv_LED, LOW); enabled_btnAC = true;
digitalWrite(uv_LED, OFF);
counterB = 0;
countDelay = false; countDelay = false;
} }
} }
@ -150,8 +155,8 @@ void showColor() { // 100% of color
} }
void cycleColors() { void cycleColors() {
counterA++;
if (enabled_btnAC == true) { if (enabled_btnAC == true) {
counterA++;
switch (counterA) { switch (counterA) {
case 1: case 1:
enabled_LED = true; enabled_LED = true;
@ -194,38 +199,58 @@ void cycleColors() {
void ultraviolet() { void ultraviolet() {
if (enabled_btnB == true) { if (enabled_btnB == true) {
blinker(led_B, 500, 5); counterB++;
if ( digitalRead(btnA) == LOW ) { switch (counterB) {
blinker(led_B, 50, 10); case 1:
enabled_btnB = false; blinker(led_B, 500, 5);
enabled_btnAC = false; enabled_LED = false;
countDelay = false; enabled_btnAC = false;
digitalWrite(uv_LED, ON); digitalWrite(uv_LED, ON);
return; if ( countDelay == false ) {
oldTime = millis();
}
countDelay = true; // turn on delay counter in loop()
break;
case 2:
enabled_btnAC = true;
digitalWrite(uv_LED, OFF);
counterB = 0;
break;
} }
digitalWrite(uv_LED, ON);
if ( countDelay == false ) {
oldTime = millis();
}
countDelay = true; // turn on delay counter in loop()
} }
} }
void uvForever() {
blinker(led_B, 500, 5);
blinker(led_B, 50, 10);
enabled_btnB = false;
enabled_btnAC = false;
countDelay = false;
digitalWrite(uv_LED, ON);
}
void opAmp() { void opAmp() {
if (enabled_btnAC == true) { if (enabled_btnAC == true) {
counterC++; counterC++;
if (counterC == 1) { //1st press: switch (counterC) {
blinker(led_G, 50, 2); case 1:
digitalWrite(OPAMP, ON); blinker(led_G, 50, 2);
} digitalWrite(OPAMP, ON);
if (counterC == 2) { //2nd press: break;
blinker(led_R, 50, 2); case 2:
digitalWrite(OPAMP, OFF); blinker(led_R, 50, 2);
counterC = 0; digitalWrite(OPAMP, OFF);
counterC = 0;
break;
} }
} }
} }
void disco() {
int data = analogRead(ANALOG);
}
void blinker(byte pin, int len, byte rep) { void blinker(byte pin, int len, byte rep) {
byte counter = 1; byte counter = 1;
while (counter <= rep) { while (counter <= rep) {