led test
This commit is contained in:
parent
60a76d10a1
commit
c22afeba26
@ -1,31 +1,89 @@
|
|||||||
|
#include <FastGPIO.h>
|
||||||
|
#define APA102_USE_FAST_GPIO
|
||||||
|
#include <APA102.h>
|
||||||
|
|
||||||
const int HALL_PIN = 2;
|
const int HALL_PIN = 2;
|
||||||
const int ROUND_COUNT = 2;
|
const int ROUND_COUNT = 2;
|
||||||
|
|
||||||
void setup() {
|
// Define which pins to use.
|
||||||
|
const uint8_t dataPin = 10;
|
||||||
|
const uint8_t clockPin = 11;
|
||||||
|
|
||||||
|
// Create an object for writing to the LED strip.
|
||||||
|
APA102<dataPin, clockPin> ledStrip;
|
||||||
|
|
||||||
|
const uint16_t ledCount = 56;
|
||||||
|
const uint8_t brightness = 1;
|
||||||
|
const rgb_color RED = rgb_color(255, 0, 0);
|
||||||
|
const rgb_color GREEN = rgb_color(0, 255, 0);
|
||||||
|
const rgb_color BLUE = rgb_color(0, 0, 255);
|
||||||
|
const rgb_color WHITE = rgb_color(255, 255, 255);
|
||||||
|
|
||||||
|
const int state_count = 4;
|
||||||
|
|
||||||
|
rgb_color colors[ledCount];
|
||||||
|
float passed = 0;
|
||||||
|
int state = 0;
|
||||||
|
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
pinMode(LED_BUILTIN, OUTPUT);
|
|
||||||
pinMode(HALL_PIN, INPUT);
|
pinMode(HALL_PIN, INPUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop()
|
||||||
|
{
|
||||||
float start = micros();
|
float start = micros();
|
||||||
int count = 0;
|
int count = 0;
|
||||||
bool change = false;
|
bool change = false;
|
||||||
while (count < ROUND_COUNT) {
|
while (count < ROUND_COUNT)
|
||||||
if (digitalRead(HALL_PIN) == LOW) {
|
{
|
||||||
if(!change) {
|
if (digitalRead(HALL_PIN) == LOW)
|
||||||
|
{
|
||||||
|
if (!change)
|
||||||
|
{
|
||||||
change = true;
|
change = true;
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
change = false;
|
change = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float current_diff = micros() - start;
|
||||||
|
|
||||||
|
for (int i = 0; i < state_count; i++)
|
||||||
|
{
|
||||||
|
if (current_diff > ((passed / state_count) * i))
|
||||||
|
{
|
||||||
|
state = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rgb_color color = WHITE;
|
||||||
|
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
color = RED;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
color = GREEN;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
color = BLUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint16_t i = 0; i < ledCount; i++)
|
||||||
|
{
|
||||||
|
colors[i] = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
ledStrip.write(colors, ledCount, brightness);
|
||||||
}
|
}
|
||||||
|
|
||||||
float end = micros();
|
passed = (micros() - start);
|
||||||
float passed = (end - start);
|
|
||||||
Serial.print("Diff: ");
|
|
||||||
Serial.print(passed);
|
|
||||||
Serial.println("micro seconds");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user