samdark / yiiframework-ru

yiiframework.ru
http://yiiframework.ru/
Other
52 stars 21 forks source link

ARDUINO,IRremoute, как считывать двузначные числа с ик-пульта #153

Closed pozib-hub closed 4 years ago

pozib-hub commented 4 years ago

Как сделать ввод двузначных чисел (11,12,20 и т.д.) с использованием ик-пульта? по одиночке работает все хорошо ( от 0 до 9 ), а вот как сделать двузначные числа не понимаю

`#include

define LED_COUNT 300

define RECV_PIN 6

define butt_1 0xFFA25D

define butt_2 0xFF629D

define butt_3 0xFFE21D

define butt_4 0xFF22DD

define butt_5 0xFF02FD

define butt_6 0xFFC23D

define butt_7 0xFFE01F

define butt_8 0xFFA857

define butt_9 0xFF906F

define butt_0 0xFF9867

define butt_star 0xFF6897

define butt_lattice 0xFFB04F

define butt_up 0xFF18E7

define butt_down 0xFF4AB5

define butt_left 0xFF10EF

define butt_right 0xFF5AA5

define butt_ok 0xFF38C7

long key; uint32_t val; int j = 0; byte k = 0;

IRrecv irrecv (RECV_PIN); decode_results results;

void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void settings(byte lattice, byte left_or_right, byte rgb) { switch (lattice) {

case 0: if (left_or_right == 1) {
    if (Brightness > 0 ) {
      Brightness--;
      FastLED.setBrightness(Brightness);
    }
  }
  else if (Brightness != 255) {
    Brightness++;
  } break;

case 1: if (left_or_right == 1) {
    if (led_speed > 0 ) {
      led_speed--;
    }
  }
  else if (led_speed != 255) {
    led_speed++;
  } break;

case 2:  {
    // one_color_all(rgb,left_or_righ); //цветокоррекция, можно создать любой оттенок
  } break;         // 0-red,1-green,2-blue - какой будем изменять

} Serial.print("Brightness: "); Serial.println(Brightness); Serial.print("led_speed "); Serial.println(led_speed); Serial.println(lattice); }

void one_color(byte color) { switch (color) { case 0: Serial.println("WHITE"); break; case 1: Serial.println("RED"); break; case 2: Serial.println("PINK"); break; case 3: Serial.println("AQUA"); break; case 4: Serial.println("YELLOW"); break; case 5: Serial.println("MAROON"); break; case 6: Serial.println("PURPLE"); break; case 7: Serial.println("NAVY"); break; case 8: Serial.println("BLUE"); break; case 9: Serial.println("TEAL"); break; case 10: Serial.println("LIME"); break;
} }

void resetOK() { lattice = 0; //сделать 3-4 светодиода, сообщающих о состоянии } void loop() { if (irrecv.decode(&results)) //чтение кода ик сигнала { if (results.value != 0xFFFFFFFF) { val = results.value; }

if (results.value == butt_lattice)
{
  if (lattice != 2)
  {
    lattice++;;
  }
  else lattice = 0;
}    
switch (val)
{
  //case butt_0: Serial.println('0'); one_color(j); break;
  case butt_up: //Serial.println("up");
    {
      if (j == countEffects) {
        j = 0;
      }
      else
        masEffects[++j];
    } break;

  case butt_down: {//Serial.println("down");
      if (j == 0) {
        j = countEffects;
      }
      else
        masEffects[--j];
    } break;

  //---------------------------
  case butt_left:
    {
      settings(lattice, 1, 1);
    } break;
  //---------------------------
  case butt_right:
    {
      settings(lattice, 2, 1);
    } break;
}
Serial.println("j: ");
Serial.println(j);
//-----------------------------------------------------------------------

switch (results.value)
{
  case butt_1: Serial.println('1'); break;
  case butt_2: Serial.println('2'); break;
  case butt_3: Serial.println('3'); break;
  case butt_4: Serial.println('4'); break;
  case butt_5: Serial.println('5'); break;
  case butt_6: Serial.println('6'); break;
  case butt_7: Serial.println('7'); break;
  case butt_8: Serial.println('8'); break;
  case butt_9: Serial.println('9'); break;
  case butt_star: Serial.println("*"); break;
  case butt_ok: Serial.println("ok"); resetOK(); break;
 }
irrecv.resume(); 

} delay(100); }`