led-ring-clock-ntp/constants.h
2018-09-09 19:12:13 -07:00

91 lines
2.5 KiB
C

//
// WS2812 LED Analog Clock Firmware
// Copyright (c) 2016-2018 jackw01
// This code is distrubuted under the MIT License, see LICENSE for details
//
#ifndef CONFIG_H
#define CONFIG_H
#include <Arduino.h>
#include <FastLED.h>
// IO Pin Assignments
const uint8_t pinLeds = 3;
const uint8_t pinButton = 4;
const uint8_t pinBrightness = 0;
// Number of LEDs in ring
const int ledRingSize = 24;
// Default colors - tweaked to look right on WS2812Bs
const CRGB red = CRGB(255, 0, 0);
const CRGB orange = CRGB(255, 78, 0);
const CRGB yellow = CRGB(255, 237, 0);
const CRGB green = CRGB(0, 255, 23);
const CRGB cyan = CRGB(0, 247, 255);
const CRGB blue = CRGB(0, 21, 255);
const CRGB magenta = CRGB(190, 0, 255);
const CRGB white = CRGB(255, 255, 255);
const CRGB off = CRGB(0, 0, 0);
// Default clock face colors
// red, orange, yellow, green, cyan, blue, magenta, and white are acceptable, along with CRGB(r, g, b)
const int colorSchemeCount = 7;
const CRGB colorSchemes[colorSchemeCount][3] = {
{red, // Color for hour display
green, // Color for minute display
blue}, // Color for second display
{ CRGB(255, 255, 255), CRGB(255, 255, 255), CRGB( 0, 130, 255) },
{ CRGB(255, 255, 255), CRGB(255, 255, 255), CRGB(255, 25, 0) },
{ CRGB( 64, 0, 128), CRGB(255, 72, 0), CRGB(255, 164, 0) },
{ CRGB(255, 25, 0), CRGB(255, 84, 0), CRGB(255, 224, 0) },
{ CRGB( 0, 0, 255), CRGB( 0, 84, 255), CRGB( 0, 255, 255) },
{ CRGB(255, 0, 96), CRGB(255, 84, 0), CRGB( 0, 255, 164) }
};
// Clock settings
const bool useEnhancedRenderer = true;
const bool showSecondHand = true;
const bool twelveHour = true;
const int hourGlowWidth = 4; // Pixels in each direction
const int minuteGlowWidth = 2; // Pixels in each direction
const int secondGlowWidth = 1; // Pixels in each direction
const int hourTrailLength = 1;
const int minuteTrailLength = 2;
const int secondTrailLength = 3;
const int buttonClickRepeatDelayMs = 1500;
const int buttonLongPressDelayMs = 300;
// Serial
const long serialPortBaudRate = 115200;
const int debugMessageIntervalMs = 2000;
// Clock modes
typedef enum {
ClockModeRingClock,
ClockModeDotClock,
ClockModeDotClockTrail,
ClockModeDotClockGlow,
ClockModeCount
} ClockMode;
// Brightness
const uint8_t minBrightness = 4;
// Run loop
const int runLoopIntervalMs = 30;
// EEPROM addresses
const uint16_t eepromAddrColorScheme = 0;
const uint16_t eepromAddrClockMode = 1;
// LED blend modes
typedef enum {
BlendModeOver,
BlendModeAlpha,
BlendModeAdd
} BlendMode;
#endif