09-11-2017, 21:58
Hej,
Mam problem z napisaniem kodu, który będzie wykonywał różne case'y zależnie od wyboru na pilocie, dokładnie to nie wiem, jak napisać to aby pętla z wybranej już opcji (wybranego przycisku) wykonywała się do momentu wyboru innej opcji (innego przycisku) - mam nadzieje że rozumiecie
Załączam kod
Jakieś pomysły? Pierwszy raz mam do czynienia z sterowaniem IR
Mam problem z napisaniem kodu, który będzie wykonywał różne case'y zależnie od wyboru na pilocie, dokładnie to nie wiem, jak napisać to aby pętla z wybranej już opcji (wybranego przycisku) wykonywała się do momentu wyboru innej opcji (innego przycisku) - mam nadzieje że rozumiecie
Załączam kod
Kod:
#include <FastLED.h>
#include <IRremote.h>
#define LED_PIN 7
#define NUM_LEDS 144
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
#define BRIGHTNESS 10
#define Speed 20
#define nr_0 0xFF9867
#define nr_1 0xFFA25D
#define nr_2 0xFFE21D
#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();
}
void loop()
{
if (irrecv.decode(&results)) {
ir_signal = results.value;
Serial.println( ir_signal );
// irrecv.resume();
// digitalWrite(5 , HIGH);
// digitalWrite(5 , LOW);
switch ( results.value ) {
case nr_0:
for (int i = 0; i < NUM_LEDS; i++) {
leds[i] = CRGB::White;
}
FastLED.show();
delay(10);
for (int i = 0; i < NUM_LEDS; i++) {
leds[i] = CRGB::Black;
}
delay(400);
irrecv.resume();
break;
case nr_1:
for (int i = 0 ; i <= 108 ; i++ ) {
if ( i <= 72 ) {
leds[i] = CRGB::Green;
leds[144 - i] = CRGB::Green;
}
if ( i >= 36 ) {
leds[i - 36] = CRGB::Black;
leds[180 - i] = CRGB::Black;
}
FastLED.show();
delay(1);
}
irrecv.resume();
break;
}
ir_signal = 0;
irrecv.resume();
}
}
Jakieś pomysły? Pierwszy raz mam do czynienia z sterowaniem IR