Ljussabel använder Intel Edison (6 / 7 steg)
Steg 6: Arduino skiss
Slutligen, använda den följande Arduino skissen för att sammanställa allt.
Färgen på ljussabel ändras bara när du slår av och på saber. Det kommer att lysa med den färg som tidigare har angetts av app (Standardfärgen är blå).
#include < wire.h >
#include < intel_edison_bt_spp.h >
#include "Seeed_ws2812.h" < /intel_edison_bt_spp.h >< /wire.h >
Intel_Edison_BT_SPP spp = Intel_Edison_BT_SPP();
#define SIG_PIN 12
#define LEN_NUM 10
WS2812 strip = WS2812 (LEN_NUM, SIG_PIN);
int tempo = 20;
int x, y;
int r = 0;
int g = 0;
int b = 255;
int botao = 11;
char cor = ' o ';
bool liga;
void setup() {
Strip.BEGIN();
Serial.BEGIN(115200);
liga = sant;
pinMode (11, ingång);
för (x = 0; x < 11; x ++) {
Strip. WS2812SetRGB (x, r, g, b);
Delay(tempo);
Strip. WS2812Send();
}
spp.Open();
}
void loop() {
Växla (ReK) {
fall "Y":
r = 0;
g = 255;
b = 0;
bryta;
fallet ' o ':
r = 0;
g = 0;
b = 255;
bryta;
fallet "W":
r = 182;
g = 66;
b = 255;
bryta;
fallet "V":
r = 255;
g = 0;
b = 0;
bryta;
standard:
r = 0;
g = 255;
b = 0;
bryta;
}
Serial.println(digitalRead(botao));
IF(digitalRead(botao)) {
liga =! liga;
IF(liga) {
för (x = 0; x < 11; x ++) {
Strip. WS2812SetRGB (x, r, g, b);
Delay(tempo);
Strip. WS2812Send();
}
}
annat {
för (y = 11; y > = 0, y--) {
Strip. WS2812SetRGB (y, 0, 0, 0);
Delay(tempo);
Strip. WS2812Send();
}
}
}
int rc = spp.wait();
om (rc > 0 & & spp.ready()) {
ssize_t storlek = spp.read();
om (storlek! = -1) {
cor = * spp.getBuf();
Serial.println(cor);
}
}
Delay(100);
}