13-11-2017, 23:45
Kod:
#include <FastLED.h>
#include <IRremote.h>
#include "TimerOne.h"
#define LED_PIN 7
#define NUM_LEDS 144
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
#define BRIGHTNESS 100
#define Speed 20
#define nr_0 0xFF9867
#define nr_1 0xFFA25D
#define nr_2 0xFF629D
#define nr_3 0xFFE21D
#define nr_4 0xFF22DD
#define nr_5 0xFF02FD
#define nr_6 0xFFC23D
#define nr_7 0xFFE01F
#define nr_8 0xFFA857
#define nr_9 0xFF906F
long ir_signal;
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
CRGB leds[NUM_LEDS];
void setup() {
pinMode(5 , OUTPUT);
delay(1000);
LEDS.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
FastLED.setBrightness(BRIGHTNESS);
Serial.begin(9600);
irrecv.enableIRIn();
randomSeed(analogRead(4));
Timer1.initialize(500000);
Timer1.attachInterrupt(test);
}
int kolor_los()
{
int x = random(3);
if (x == 0) return 0;
if (x == 1) return 128;
if (x == 2) return 255;
}
void loop()
{
if (irrecv.decode(&results)) {
while (!results.value == 0) {
Sprawadz( results.value);
}
}
}
void Sprawadz( int x) {
ir_signal = results.value;
Serial.println( ir_signal );
int t = 0;
int v = kolor_los() , y = kolor_los() , z = kolor_los();
if (v == 0 && y == 0 && z == 0) z = 255;
if (v == 255 && y == 255 && z == 255) v = 0;
switch (x) {
case nr_0:
{
for (int i = 0; i < 144; i++) {
leds[i] = CRGB::White;
}
FastLED.show();
delay(2);
for (int i = 0; i < 144; i++) {
leds[i] = CRGB::Black;
}
FastLED.show();
delay(400);
}
break;
case nr_1:
{
for (int i = 0 ; i <= 108 ; i++ ) {
if ( i <= 72 ) {
leds[i] .setRGB(v, y, z);
leds[144 - i] .setRGB(v, y, z);
}
if ( i >= 36 ) {
leds[i - 36] = CRGB::Black;
leds[180 - i] = CRGB::Black;
}
FastLED.show();
delay(1);
}
}
break;
case nr_2:
{
for (int i = -1 ; i <= 144 + 16 ; i += 2 ) {
if ( i <= 144 ) {
leds[i - 1] .setRGB(v, y, z);
leds[i] .setRGB(v, y, z);
}
if ( i >= 16 ) {
leds[i - 17] = CRGB::Black;
leds[i - 16] = CRGB::Black;
}
FastLED.show();
delay(1);
}
for (int i = 144 ; i <= -16 ; i -= 2 ) {
if ( i >= 0 ) {
leds[i + 1] .setRGB(v, y, z);
leds[i] .setRGB(v, y, z);
}
if ( i <= 128 ) {
leds[i + 17] = CRGB::Black;
leds[i + 16] = CRGB::Black;
}
FastLED.show();
delay(1);
}
}
break;
case nr_3:
{
for (int i = -1 ; i <= 144 + 16 ; i += 3 ) {
if ( i <= 144 ) {
leds[i - 2] .setRGB(v, y, z);
leds[i - 1] .setRGB(v, y, z);
leds[i] .setRGB(v, y, z);
if ( i >= 16 ) {
leds[i - 18] = CRGB::Black;
leds[i - 17] = CRGB::Black;
leds[i - 16] = CRGB::Black;
}
FastLED.show();
delay(1);
}
}
for (int i = 144 ; i >= -16 ; i -= 3 ) {
if ( i >= 0 ) {
leds[i + 2] .setRGB(v, y, z);
leds[i + 1] .setRGB(v, y, z);
leds[i] .setRGB(v, y, z);
}
if ( i <= 128 ) {
leds[i + 18] = CRGB::Black;
leds[i + 17] = CRGB::Black;
leds[i + 16] = CRGB::Black;
}
FastLED.show();
delay(1);
}
}
break;
ir_signal = 0;
irrecv.resume();
}
}