New led control
This commit is contained in:
@@ -4,12 +4,28 @@
|
||||
#include <MFRC522.h>
|
||||
#include "LedControl.h"
|
||||
#include "rotary_encoder.h"
|
||||
#include "LedAnimation.h"
|
||||
|
||||
MFRC522 rfid(5); // Instance of the class
|
||||
#include "containers/LedStripRGBW.h"
|
||||
#include "drivers/Esp32DriverRGBW.h"
|
||||
#include "effects/Circular.h"
|
||||
|
||||
MFRC522 rfid; // Instance of the class
|
||||
|
||||
MFRC522::MIFARE_Key key;
|
||||
|
||||
LedStrip led(144, 13);
|
||||
//LedStrip led(46, 23);
|
||||
LedStripRGBW<51> ledStrip;
|
||||
Esp32DriverRGBW ledDriver;
|
||||
|
||||
EffectCircular<decltype(ledStrip)> effectFox(EffectCircularConfig{60.0f, 180.0f, ColorRGBW{15, 230, 230, 0} * 0.2f},
|
||||
ledStrip);
|
||||
|
||||
EffectCircular<decltype(ledStrip)> effectOwl(EffectCircularConfig{360.0f, 180.0f, ColorRGBW{0, 0, 0, 150} * 0.2f},
|
||||
ledStrip);
|
||||
|
||||
bool owl = false;
|
||||
bool fox = false;
|
||||
|
||||
void tag_handler(uint8_t *sn)
|
||||
{
|
||||
@@ -22,22 +38,29 @@ void tag_handler(uint8_t *sn)
|
||||
if (sn[4] == 0x30)
|
||||
{
|
||||
Serial.println("Fuchs");
|
||||
////////////////////////////////////////////////////////////////////////////////////led.setAll(0, 0, 254, 0);
|
||||
led.setRange(led.numLeds() - 40, led.numLeds(), 0, 0, 243, 0);
|
||||
fox = true;
|
||||
owl = false;
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
//led.setRange(0, 50, 0, 0, 243, 0);
|
||||
//led.setRange(led.numLeds() - 40, led.numLeds(), 0, 0, 243, 0);
|
||||
}
|
||||
if (sn[4] == 0xf0)
|
||||
{
|
||||
Serial.println("Eule");
|
||||
//led.setAll(0, 0, 0, 254);
|
||||
led.setRange(led.numLeds() - 40, led.numLeds(), 0, 0, 0, 254);
|
||||
owl = true;
|
||||
fox = false;
|
||||
//led.setRange(0, 50, 0, 0, 0, 254);
|
||||
//led.setRange(led.numLeds() - 40, led.numLeds(), 0, 0, 0, 254);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
led.clear();
|
||||
//led.clear();
|
||||
owl = false;
|
||||
fox = false;
|
||||
Serial.println("Nichts");
|
||||
}
|
||||
led.transmit();
|
||||
//led.transmit();
|
||||
}
|
||||
QueueHandle_t event_queue;
|
||||
|
||||
@@ -45,14 +68,15 @@ rotary_encoder_info_t info;
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
led.begin();
|
||||
digitalWrite(5, 1);
|
||||
|
||||
//led.begin();
|
||||
ledDriver.begin(23, 0);
|
||||
|
||||
const rc522_start_args_t start_args = {
|
||||
19, // MISO
|
||||
18, // MOSI
|
||||
22, // SCK
|
||||
23, // SDA
|
||||
21, // MISO
|
||||
5, // MOSI
|
||||
18, // SCK
|
||||
19, // SDA
|
||||
VSPI_HOST,
|
||||
&tag_handler,
|
||||
125, // scan_interval_ms
|
||||
@@ -62,16 +86,26 @@ void setup()
|
||||
rc522_start(start_args);
|
||||
|
||||
ESP_ERROR_CHECK(gpio_install_isr_service(0));
|
||||
ESP_ERROR_CHECK(rotary_encoder_init(&info, GPIO_NUM_12, GPIO_NUM_14));
|
||||
ESP_ERROR_CHECK(rotary_encoder_init(&info, GPIO_NUM_26, GPIO_NUM_27));
|
||||
ESP_ERROR_CHECK(rotary_encoder_enable_half_steps(&info, false));
|
||||
event_queue = rotary_encoder_create_queue();
|
||||
ESP_ERROR_CHECK(rotary_encoder_set_queue(&info, event_queue));
|
||||
|
||||
pinMode (2, OUTPUT);
|
||||
digitalWrite(2, HIGH);
|
||||
//button leds
|
||||
//pinMode(33, OUTPUT);
|
||||
//digitalWrite(33, HIGH);
|
||||
//pinMode(12, OUTPUT);
|
||||
//digitalWrite(12, HIGH);
|
||||
|
||||
//// button in
|
||||
//pinMode(25, INPUT_PULLUP);
|
||||
//pinMode(14, INPUT_PULLUP);
|
||||
//pinMode(13, INPUT_PULLUP);
|
||||
}
|
||||
|
||||
bool btn2state = true;
|
||||
|
||||
SweepCircularAnimation animation(ColorRGB{0, 0, 255}, 100, 15, 0.7);
|
||||
void loop()
|
||||
{
|
||||
/*
|
||||
@@ -82,7 +116,37 @@ void loop()
|
||||
event.state.direction ? (event.state.direction == ROTARY_ENCODER_DIRECTION_CLOCKWISE ? "CW" : "CCW") : "NOT_SET");
|
||||
}
|
||||
*/
|
||||
Serial.println(touchRead(15)); // get value of Touch 0 pin = GPIO 4
|
||||
|
||||
/*
|
||||
for (int i = 48; i < ledStrip.numLeds(); ++i)
|
||||
{
|
||||
clear(ledStrip);
|
||||
setLedRGBW(ledStrip, i, 0, 0, 255, 255);
|
||||
Serial.println(i);
|
||||
ledDriver.writeSync(ledStrip.rawData(), ledStrip.numLeds());
|
||||
delay(3000);
|
||||
}
|
||||
*/
|
||||
int delayVal;
|
||||
if (owl)
|
||||
delayVal = effectOwl();
|
||||
else if (fox)
|
||||
delayVal = effectFox();
|
||||
else
|
||||
clear(ledStrip);
|
||||
|
||||
ledDriver.writeSync(ledStrip.rawData(), ledStrip.numLeds());
|
||||
delay(delayVal);
|
||||
/*
|
||||
auto delayMs = animation(led);
|
||||
led.transmit();
|
||||
delay(delayMs);
|
||||
*/
|
||||
|
||||
/*
|
||||
Serial.printf("btn1 %d btn2 %d rot %d\n", digitalRead(25), digitalRead(14), digitalRead(13));
|
||||
delay(500);
|
||||
//digitalWrite(2, HIGH);
|
||||
btn2state = !btn2state;
|
||||
digitalWrite(12, btn2state);
|
||||
*/
|
||||
}
|
||||
Reference in New Issue
Block a user