Generic testing module
I needed a generic testing module which had som inputs and some output. I hacked this emergency button so it had a button, potentiometer and a neopixel ring. Inside I have a esp32. This way I could always have microcontroller test setup in my backpack for experimenting with different elements.
#include "FastLED.h"
// How many leds in your strip?
#define NUM_LEDS 4
#define DATA_PIN 17
// Define the array of leds
CRGB leds[NUM_LEDS];
int analogValue = 0;
int analogPin = 32;
int buttonPin = 25;
boolean buttonValue = false;
boolean buttonValueOld = false;
int brightness = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(buttonPin, INPUT_PULLUP);
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
}
void loop() {
// put your main code here, to run repeatedly:
analogValue = analogRead(analogPin);
buttonValue = digitalRead(buttonPin);
if (buttonValue == 1 && buttonValueOld == 0) {
Serial.println("button pressed");
}
buttonValueOld = buttonValue;
int brightness = map(analogValue, 0, 4095, 0, 255); // maps from 0-4095 to scale 0-255
setLedBrightness(brightness);
// debug printing out
Serial.print(analogValue);
Serial.print(",");
Serial.print(brightness);
Serial.print(",");
Serial.println(buttonValue);
}
void setLedBrightness(int value) {
for (int i = 0; i < NUM_LEDS; i = i + 1) {
leds[i] = CRGB( value, 0, 0);
}
FastLED.show();
}