Axiometa
Axiometa Pixie M1
Axiometa Pixie M1
SKU:MTA0007
Regular price
$6.29
Regular price
Sale price
$6.29
Unit price
per
Taxes included.
Shipping calculated at checkout.
Couldn't load pickup availability




PCB Design
-
Top
-
Bottom
Arduino Code Example
#include <FastLED.h>
#define LED_PIN 21
#define NUM_LEDS 1
#define BUTTON_PIN 0
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
// Touch pins configuration
#define NUM_TOUCH_PINS 11
int touchPins[NUM_TOUCH_PINS] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
#define TOUCH_THRESHOLD 50000
// Effect variables
int currentHue = 0; // Current color in the spectrum (0-255)
int brightness = 128; // LED brightness
uint8_t breatheValue = 0; // Breathing animation value
int breatheDirection = 1; // Breathing direction
void setup() {
Serial.begin(115200);
delay(1000);
// Initialize FastLED
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
FastLED.setBrightness(brightness);
Serial.println("Touch Spectrum Breathing LED Ready!");
Serial.println("Scroll your finger across pins 1-11 to change colors!");
}
void loop() {
handleTouchInput();
updateBreathingEffect();
FastLED.show();
delay(20);
}
void handleTouchInput() {
static unsigned long lastTouchCheck = 0;
if (millis() - lastTouchCheck < 50) return;
lastTouchCheck = millis();
int activeTouchPin = -1;
int highestTouchValue = 0;
// Find the pin with the strongest touch
for(int i = 0; i < NUM_TOUCH_PINS; i++) {
int touchValue = touchRead(touchPins[i]);
if (touchValue > TOUCH_THRESHOLD && touchValue > highestTouchValue) {
highestTouchValue = touchValue;
activeTouchPin = i;
}
}
// If we have an active touch, map pin position to color spectrum
if (activeTouchPin >= 0) {
// Map pin index (0-10) to full color spectrum (0-255)
// INSTANT color change - no smooth transitions
currentHue = map(activeTouchPin, 0, NUM_TOUCH_PINS-1, 0, 255);
// Map touch intensity to brightness
brightness = map(constrain(highestTouchValue, TOUCH_THRESHOLD, TOUCH_THRESHOLD + 200000),
TOUCH_THRESHOLD, TOUCH_THRESHOLD + 200000, 80, 255);
FastLED.setBrightness(brightness);
Serial.print("Pin: ");
Serial.print(activeTouchPin + 1);
Serial.print(" -> Hue: ");
Serial.print(currentHue);
Serial.print(" (");
Serial.print(getColorName(currentHue));
Serial.print("), Brightness: ");
Serial.println(brightness);
}
}
void updateBreathingEffect() {
// Update breathing animation
breatheValue += breatheDirection * 3;
if (breatheValue >= 255) {
breatheValue = 255;
breatheDirection = -1;
} else if (breatheValue <= 30) {
breatheValue = 30;
breatheDirection = 1;
}
// Apply current hue with breathing brightness
leds[0] = CHSV(currentHue, 255, breatheValue);
}
String getColorName(int hue) {
if (hue < 20) return "Red";
else if (hue < 40) return "Orange";
else if (hue < 70) return "Yellow";
else if (hue < 90) return "Yellow-Green";
else if (hue < 130) return "Green";
else if (hue < 160) return "Cyan";
else if (hue < 190) return "Blue";
else if (hue < 220) return "Purple";
else if (hue < 240) return "Magenta";
else return "Pink-Red";
}
Guides and Blogs
-
First time setup
Pair text with an image to focus on your chosen product, collection, or blog post. Add details on availability, style, or even provide a review.
-
Using Core WiFi with Toit
Pair text with an image to focus on your chosen product, collection, or blog post. Add details on availability, style, or even provide a review.
-
Making first Web Server
Pair text with an image to focus on your chosen product, collection, or blog post. Add details on availability, style, or even provide a review.