ws2812b и arduino Подсветка клавиатуры

Тема в разделе "Arduino & Shields", создана пользователем Александр wer, 8 май 2018.

  1. Как то все неправильно понимаю
    void loop()
    {
    char key = keypad.getKey();
    if (key)
    { showType;
    if (key = 1)
    showType=0;

    else if (key = 2)
    showType=1;

    else if (key = 3)
    showType=2;
    else if (key = 4)
    showType=3;
    }{


    if (showType > 3)
    showType=0;
    startShow(showType);
    }
    }
     
    Последнее редактирование: 11 май 2018
  2. Daniil

    Daniil Гуру

    Нужно сделать так:
    Код (C++):
    считать нажатую клавишу
    если нажата клавиша 1 то showType=1
    если нажата клавиша 2 то showType=2
    и т.д.
     
    Александр wer нравится это.
  3. Код (C++):
    void loop()
    {
      char key = keypad.getKey();
      {
        if (key = 1)
        showType=0;
       
        else if (key = 2)
        showType=1;
       
        else if (key = 3)
        showType=2;
        else if (key = 4)
        showType=3;
       }{
        if (showType > 3)                          
            showType=0;                            
          startShow(showType);
      }
    }
    спасибо, посижу, подумаю.
     
  4. Daniil

    Daniil Гуру

    Не забудьте, условие равенства записывается чере 2 знака равно ("==").
    В вашем случае можно обойтись switch-case
     
    Александр wer нравится это.
  5. Понял, попробую
     
  6. Скетч который работает как надо мне. Спасибо Даниил, все благодаря вам получилось!!!!! До ума все доведу когда время будет.
    Код (C++):
    #include <Adafruit_NeoPixel.h>
    #include <Keypad.h>

    const byte ROWS = 2; //Число строк у клавиатуры
    const byte COLS = 2; //Число столбцов у клавиатуры


    char keys[ROWS][COLS] = {
      {'0','1'},
      {'2','3'}
        };
    byte rowPins[ROWS] = {6, 4}; //к каким выводам подключаем управление строками
    byte colPins[COLS] = {8, 7}; //к каим выводам подключаем управление столбцами

    Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );


    #define PIXEL_PIN     13

    #define PIXEL_COUNT   99    

    #define MODE_COUNT    4

    int max_bright = 50;

    Adafruit_NeoPixel pixels = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);

    bool oldState = HIGH;
    int showType = 0;

    //                         режим L1
    //      КЛАВИШИ                     L2,  L1,  L3, Mx9, Mx7  Mx5  Mx3  Mx1  Mx2  Mx4  Mx6  Mx8  Mx10   ESC   M1   M2   M3   M4   M5   M6   M7   M8   M9  M10  M11  M12  F12  F11  F10   F9   F8   F7   F6   F5   F4   F3   F2   F1    ё    1    2    3    4    5    6    7    8    9    0    -    =  Bac    \    Ъ    Х    P    O    I    U    Y    T    R    E    W    Q  TAB  CAP    A    S    D    F    G    H    J    K    L    Ж    Э  ENT SHIF    /    >    <    M    N    B    V    C    X    Z SHIF  CTRL  WIN  ALT1  ALT2  OM1  OM2  CTRL
    byte R_part_mode1[PIXEL_COUNT] = {   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   255,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 215,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 215, 215, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 215, 215, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 215, 215, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 215,  215, 215,  215,  215, 215, 215,  215};
    byte G_part_mode1[PIXEL_COUNT] = {   0, 100,   0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,     0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,   3, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,   3,   3,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   3,   3,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   3,   3,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   3,    3,   3,    3,    3,   3,   3,    3};            
    byte B_part_mode1[PIXEL_COUNT] = {   0, 255,   0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,     0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 252, 252,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 252, 252,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 252, 252,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 252,  252, 252,  252,  252, 252, 252,  252};          

    //                         режим L2
    //...................................................................................
    //                         режим L3
    //  .....................................................................................
    //                         режим L4
    //  .......................................................................................


    void setup()
    {

      pixels.setBrightness(max_bright);

      pixels.show();
    }


    // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    void loop()
    {
      char key = keypad.getKey();
      if(key)
      {
        switch (key)
        {
          case '0':
          showType=0;
          break;
          case '1':
          showType=1;
          break;
          case '2':
          showType=2;
          break;
          case '3':
          showType=3;
          break;
        }
      }startShow(showType);
    }

    // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    void startShow(int i)          //
    {

      switch (i)              
      {
        //...........................................................Общая подцветка клавиатуры.L1.................................................................
        case 0:                                            //режим №1
      pixels.show();

          for (byte j = 0; j < PIXEL_COUNT - 1; j = j + 1) //обратите внимание на PIXEL_COUNT-1 (в массиве номера начинается с нуля)
          {
            pixels.setPixelColor(j, pixels.Color(R_part_mode1[j], G_part_mode1[j], B_part_mode1[j]));
          }
          break;

    //.......................................................................3DsMax.L2............................................................................
        case 1:                                            //режим №2
         
      pixels.show();
          for (byte j = 0; j < PIXEL_COUNT - 1; j = j + 1)
          {
            pixels.setPixelColor(j, pixels.Color(R_part_mode2[j], G_part_mode2[j], B_part_mode2[j]));
          }
          break;

    //.......................................................................3DsMax.L3............................................................................
         case 2:                                            //режим №3
         
      pixels.show();
          for (byte j = 0; j < PIXEL_COUNT - 1; j = j + 1)
          {
            pixels.setPixelColor(j, pixels.Color(R_part_mode3[j], G_part_mode3[j], B_part_mode3[j]));
          }
          break;
    //...............................................................Photoshop и другие проги.L4.................................................................
           case 3:                                            //режим №4
         
      pixels.show();
          for (byte j = 0; j < PIXEL_COUNT - 1; j = j + 1)
          {
            pixels.setPixelColor(j, pixels.Color(R_part_mode4[j], G_part_mode4[j], B_part_mode4[j]));
          }
          break;
      }
    }
     
    Daniil нравится это.