Stap 6: Arduino schets
Ten slotte, gebruiken de volgende Arduino schets alles om samen te stellen.
De kleur van de lightsaber zal alleen wijzigen wanneer u zwenking af en aan de saber. Het zal oplichten met de kleur die eerder was ingesteld door de app (de standaardkleur is blauw).
#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 = true; pinMode(11, INPUT); for(x=0; x<11; x++){ strip.WS2812SetRGB(x, r, g, b); delay(tempo); strip.WS2812Send(); } spp.open(); } void loop() { switch (cor){ case 'Y': r = 0; g = 255; b = 0; break; case 'O': r = 0; g = 0; b = 255; break; case 'W': r = 182; g = 66; b = 255; break; case 'V': r = 255; g = 0; b = 0; break; default: r = 0; g = 255; b = 0; break; } //Serial.println(digitalRead(botao)); if(digitalRead(botao)){ liga = !liga; if(liga){ for(x=0; x<11; x++){ strip.WS2812SetRGB(x, r, g, b); delay(tempo); strip.WS2812Send(); } } else{ for(y=11; y>=0; y--){ strip.WS2812SetRGB(y, 0, 0, 0); delay(tempo); strip.WS2812Send(); } } } int rc = spp.wait(); if(rc > 0 && spp.ready()) { ssize_t size = spp.read(); if (size != -1) { cor = *spp.getBuf(); Serial.println(cor); } } delay(100); }