Truncated IcosaLEDron
This commit is contained in:
parent
545acb7144
commit
37ba04106d
@ -16,6 +16,9 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define FASTLED_ALLOW_INTERRUPTS 0
|
||||||
|
//#define FASTLED_INTERRUPT_RETRY_COUNT 1
|
||||||
|
|
||||||
#include <FastLED.h>
|
#include <FastLED.h>
|
||||||
FASTLED_USING_NAMESPACE
|
FASTLED_USING_NAMESPACE
|
||||||
|
|
||||||
@ -24,13 +27,13 @@ extern "C" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#include <ESP8266WiFi.h>
|
#include <ESP8266WiFi.h>
|
||||||
#include <ESP8266mDNS.h>
|
//#include <ESP8266mDNS.h>
|
||||||
#include <ESP8266WebServer.h>
|
#include <ESP8266WebServer.h>
|
||||||
#include <ESP8266HTTPUpdateServer.h>
|
#include <ESP8266HTTPUpdateServer.h>
|
||||||
#include <WebSocketsServer.h>
|
#include <WebSocketsServer.h>
|
||||||
#include <FS.h>
|
#include <FS.h>
|
||||||
#include <EEPROM.h>
|
#include <EEPROM.h>
|
||||||
#include <IRremoteESP8266.h>
|
//#include <IRremoteESP8266.h>
|
||||||
#include "GradientPalettes.h"
|
#include "GradientPalettes.h"
|
||||||
|
|
||||||
#define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0]))
|
#define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0]))
|
||||||
@ -39,10 +42,10 @@ extern "C" {
|
|||||||
|
|
||||||
#define HOSTNAME "ESP8266-" ///< Hostname. The setup function adds the Chip ID at the end.
|
#define HOSTNAME "ESP8266-" ///< Hostname. The setup function adds the Chip ID at the end.
|
||||||
|
|
||||||
#define RECV_PIN D4
|
//#define RECV_PIN D4
|
||||||
IRrecv irReceiver(RECV_PIN);
|
//IRrecv irReceiver(RECV_PIN);
|
||||||
|
|
||||||
#include "Commands.h"
|
//#include "Commands.h"
|
||||||
|
|
||||||
const bool apMode = false;
|
const bool apMode = false;
|
||||||
|
|
||||||
@ -59,10 +62,10 @@ ESP8266HTTPUpdateServer httpUpdateServer;
|
|||||||
|
|
||||||
#include "FSBrowser.h"
|
#include "FSBrowser.h"
|
||||||
|
|
||||||
#define DATA_PIN D8
|
#define DATA_PIN D5
|
||||||
#define LED_TYPE WS2811
|
#define LED_TYPE WS2811
|
||||||
#define COLOR_ORDER GRB
|
#define COLOR_ORDER RGB
|
||||||
#define NUM_LEDS 24
|
#define NUM_LEDS 32
|
||||||
|
|
||||||
#define MILLI_AMPS 2000 // IMPORTANT: set the max milli-Amps of your power supply (4A = 4000mA)
|
#define MILLI_AMPS 2000 // IMPORTANT: set the max milli-Amps of your power supply (4A = 4000mA)
|
||||||
#define FRAMES_PER_SECOND 120 // here you can control the speed. With the Access Point / Web Server the animations run a bit slower.
|
#define FRAMES_PER_SECOND 120 // here you can control the speed. With the Access Point / Web Server the animations run a bit slower.
|
||||||
@ -228,7 +231,7 @@ void setup() {
|
|||||||
|
|
||||||
FastLED.setBrightness(brightness);
|
FastLED.setBrightness(brightness);
|
||||||
|
|
||||||
irReceiver.enableIRIn(); // Start the receiver
|
// irReceiver.enableIRIn(); // Start the receiver
|
||||||
|
|
||||||
Serial.println();
|
Serial.println();
|
||||||
Serial.print( F("Heap: ") ); Serial.println(system_get_free_heap_size());
|
Serial.print( F("Heap: ") ); Serial.println(system_get_free_heap_size());
|
||||||
@ -263,10 +266,10 @@ void setup() {
|
|||||||
for (uint8_t i = 0; i < hostname.length(); i++)
|
for (uint8_t i = 0; i < hostname.length(); i++)
|
||||||
hostnameChar[i] = hostname.charAt(i);
|
hostnameChar[i] = hostname.charAt(i);
|
||||||
|
|
||||||
MDNS.begin(hostnameChar);
|
// MDNS.begin(hostnameChar);
|
||||||
|
//
|
||||||
// Add service to MDNS-SD
|
// // Add service to MDNS-SD
|
||||||
MDNS.addService("http", "tcp", 80);
|
// MDNS.addService("http", "tcp", 80);
|
||||||
|
|
||||||
// Print hostname.
|
// Print hostname.
|
||||||
Serial.println("Hostname: " + hostname);
|
Serial.println("Hostname: " + hostname);
|
||||||
@ -476,7 +479,7 @@ void loop() {
|
|||||||
webSocketsServer.loop();
|
webSocketsServer.loop();
|
||||||
webServer.handleClient();
|
webServer.handleClient();
|
||||||
|
|
||||||
handleIrInput();
|
// handleIrInput();
|
||||||
|
|
||||||
if (power == 0) {
|
if (power == 0) {
|
||||||
fill_solid(leds, NUM_LEDS, CRGB::Black);
|
fill_solid(leds, NUM_LEDS, CRGB::Black);
|
||||||
@ -551,213 +554,213 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//
|
||||||
void handleIrInput()
|
//void handleIrInput()
|
||||||
{
|
//{
|
||||||
InputCommand command = readCommand();
|
// InputCommand command = readCommand();
|
||||||
|
//
|
||||||
if (command != InputCommand::None) {
|
// if (command != InputCommand::None) {
|
||||||
Serial.print("command: ");
|
// Serial.print("command: ");
|
||||||
Serial.println((int) command);
|
// Serial.println((int) command);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
switch (command) {
|
// switch (command) {
|
||||||
case InputCommand::Up: {
|
// case InputCommand::Up: {
|
||||||
adjustPattern(true);
|
// adjustPattern(true);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Down: {
|
// case InputCommand::Down: {
|
||||||
adjustPattern(false);
|
// adjustPattern(false);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Power: {
|
// case InputCommand::Power: {
|
||||||
setPower(power == 0 ? 1 : 0);
|
// setPower(power == 0 ? 1 : 0);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::BrightnessUp: {
|
// case InputCommand::BrightnessUp: {
|
||||||
adjustBrightness(true);
|
// adjustBrightness(true);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::BrightnessDown: {
|
// case InputCommand::BrightnessDown: {
|
||||||
adjustBrightness(false);
|
// adjustBrightness(false);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::PlayMode: { // toggle pause/play
|
// case InputCommand::PlayMode: { // toggle pause/play
|
||||||
setAutoplay(!autoplay);
|
// setAutoplay(!autoplay);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// pattern buttons
|
// // pattern buttons
|
||||||
|
//
|
||||||
case InputCommand::Pattern1: {
|
// case InputCommand::Pattern1: {
|
||||||
setPattern(0);
|
// setPattern(0);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Pattern2: {
|
// case InputCommand::Pattern2: {
|
||||||
setPattern(1);
|
// setPattern(1);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Pattern3: {
|
// case InputCommand::Pattern3: {
|
||||||
setPattern(2);
|
// setPattern(2);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Pattern4: {
|
// case InputCommand::Pattern4: {
|
||||||
setPattern(3);
|
// setPattern(3);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Pattern5: {
|
// case InputCommand::Pattern5: {
|
||||||
setPattern(4);
|
// setPattern(4);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Pattern6: {
|
// case InputCommand::Pattern6: {
|
||||||
setPattern(5);
|
// setPattern(5);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Pattern7: {
|
// case InputCommand::Pattern7: {
|
||||||
setPattern(6);
|
// setPattern(6);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Pattern8: {
|
// case InputCommand::Pattern8: {
|
||||||
setPattern(7);
|
// setPattern(7);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Pattern9: {
|
// case InputCommand::Pattern9: {
|
||||||
setPattern(8);
|
// setPattern(8);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Pattern10: {
|
// case InputCommand::Pattern10: {
|
||||||
setPattern(9);
|
// setPattern(9);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Pattern11: {
|
// case InputCommand::Pattern11: {
|
||||||
setPattern(10);
|
// setPattern(10);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Pattern12: {
|
// case InputCommand::Pattern12: {
|
||||||
setPattern(11);
|
// setPattern(11);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// custom color adjustment buttons
|
// // custom color adjustment buttons
|
||||||
|
//
|
||||||
case InputCommand::RedUp: {
|
// case InputCommand::RedUp: {
|
||||||
solidColor.red += 8;
|
// solidColor.red += 8;
|
||||||
setSolidColor(solidColor);
|
// setSolidColor(solidColor);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::RedDown: {
|
// case InputCommand::RedDown: {
|
||||||
solidColor.red -= 8;
|
// solidColor.red -= 8;
|
||||||
setSolidColor(solidColor);
|
// setSolidColor(solidColor);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::GreenUp: {
|
// case InputCommand::GreenUp: {
|
||||||
solidColor.green += 8;
|
// solidColor.green += 8;
|
||||||
setSolidColor(solidColor);
|
// setSolidColor(solidColor);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::GreenDown: {
|
// case InputCommand::GreenDown: {
|
||||||
solidColor.green -= 8;
|
// solidColor.green -= 8;
|
||||||
setSolidColor(solidColor);
|
// setSolidColor(solidColor);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::BlueUp: {
|
// case InputCommand::BlueUp: {
|
||||||
solidColor.blue += 8;
|
// solidColor.blue += 8;
|
||||||
setSolidColor(solidColor);
|
// setSolidColor(solidColor);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::BlueDown: {
|
// case InputCommand::BlueDown: {
|
||||||
solidColor.blue -= 8;
|
// solidColor.blue -= 8;
|
||||||
setSolidColor(solidColor);
|
// setSolidColor(solidColor);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// color buttons
|
// // color buttons
|
||||||
|
//
|
||||||
case InputCommand::Red: {
|
// case InputCommand::Red: {
|
||||||
setSolidColor(CRGB::Red);
|
// setSolidColor(CRGB::Red);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::RedOrange: {
|
// case InputCommand::RedOrange: {
|
||||||
setSolidColor(CRGB::OrangeRed);
|
// setSolidColor(CRGB::OrangeRed);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Orange: {
|
// case InputCommand::Orange: {
|
||||||
setSolidColor(CRGB::Orange);
|
// setSolidColor(CRGB::Orange);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::YellowOrange: {
|
// case InputCommand::YellowOrange: {
|
||||||
setSolidColor(CRGB::Goldenrod);
|
// setSolidColor(CRGB::Goldenrod);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Yellow: {
|
// case InputCommand::Yellow: {
|
||||||
setSolidColor(CRGB::Yellow);
|
// setSolidColor(CRGB::Yellow);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
case InputCommand::Green: {
|
// case InputCommand::Green: {
|
||||||
setSolidColor(CRGB::Green);
|
// setSolidColor(CRGB::Green);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Lime: {
|
// case InputCommand::Lime: {
|
||||||
setSolidColor(CRGB::Lime);
|
// setSolidColor(CRGB::Lime);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Aqua: {
|
// case InputCommand::Aqua: {
|
||||||
setSolidColor(CRGB::Aqua);
|
// setSolidColor(CRGB::Aqua);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Teal: {
|
// case InputCommand::Teal: {
|
||||||
setSolidColor(CRGB::Teal);
|
// setSolidColor(CRGB::Teal);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Navy: {
|
// case InputCommand::Navy: {
|
||||||
setSolidColor(CRGB::Navy);
|
// setSolidColor(CRGB::Navy);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
case InputCommand::Blue: {
|
// case InputCommand::Blue: {
|
||||||
setSolidColor(CRGB::Blue);
|
// setSolidColor(CRGB::Blue);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::RoyalBlue: {
|
// case InputCommand::RoyalBlue: {
|
||||||
setSolidColor(CRGB::RoyalBlue);
|
// setSolidColor(CRGB::RoyalBlue);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Purple: {
|
// case InputCommand::Purple: {
|
||||||
setSolidColor(CRGB::Purple);
|
// setSolidColor(CRGB::Purple);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Indigo: {
|
// case InputCommand::Indigo: {
|
||||||
setSolidColor(CRGB::Indigo);
|
// setSolidColor(CRGB::Indigo);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Magenta: {
|
// case InputCommand::Magenta: {
|
||||||
setSolidColor(CRGB::Magenta);
|
// setSolidColor(CRGB::Magenta);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
case InputCommand::White: {
|
// case InputCommand::White: {
|
||||||
setSolidColor(CRGB::White);
|
// setSolidColor(CRGB::White);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::Pink: {
|
// case InputCommand::Pink: {
|
||||||
setSolidColor(CRGB::Pink);
|
// setSolidColor(CRGB::Pink);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::LightPink: {
|
// case InputCommand::LightPink: {
|
||||||
setSolidColor(CRGB::LightPink);
|
// setSolidColor(CRGB::LightPink);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::BabyBlue: {
|
// case InputCommand::BabyBlue: {
|
||||||
setSolidColor(CRGB::CornflowerBlue);
|
// setSolidColor(CRGB::CornflowerBlue);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case InputCommand::LightBlue: {
|
// case InputCommand::LightBlue: {
|
||||||
setSolidColor(CRGB::LightBlue);
|
// setSolidColor(CRGB::LightBlue);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
void loadSettings()
|
void loadSettings()
|
||||||
{
|
{
|
||||||
@ -1001,7 +1004,7 @@ void sinelon()
|
|||||||
{
|
{
|
||||||
// a colored dot sweeping back and forth, with fading trails
|
// a colored dot sweeping back and forth, with fading trails
|
||||||
fadeToBlackBy( leds, NUM_LEDS, 20);
|
fadeToBlackBy( leds, NUM_LEDS, 20);
|
||||||
int pos = beatsin16(speed, 0, NUM_LEDS);
|
int pos = beatsin16(speed, 0, NUM_LEDS - 1);
|
||||||
static int prevpos = 0;
|
static int prevpos = 0;
|
||||||
CRGB color = ColorFromPalette(palettes[currentPaletteIndex], gHue, 255);
|
CRGB color = ColorFromPalette(palettes[currentPaletteIndex], gHue, 255);
|
||||||
if( pos < prevpos ) {
|
if( pos < prevpos ) {
|
||||||
|
Loading…
Reference in New Issue
Block a user