Помогите пожалуйста с кодом в Arduino IDE

Тема в разделе "Arduino & Shields", создана пользователем Yanderfully, 30 янв 2018.

  1. Yanderfully

    Yanderfully Нерд

    Пишу код для трехцветного светодиода.
    Не получается в цикле написать код, что бы от определенной кнопки горел определенный цвет.
    Помогите пожалуйста.
    Скетч:
    Код (C++):
    #define FIRST_KEY_PIN 7
    #define KEY_COUNT 3

    int r = 13;
    int g = 12;
    int b = 11;

    void setup()
    {
    pinMode(r, OUTPUT);
    pinMode(g, OUTPUT);
    pinMode(b, OUTPUT);
    }

    void loop()
    {
    for (int i = 0; i < KEY_COUNT; ++i) {
      int keyPin = i + FIRST_KEY_PIN;
      boolean keyUp = digitalWrite(keyPin);
    if(!keyUp) {

    }
    }
    }
     
    *точнее обьяснить как это сделать
     
  2. fogary

    fogary Гик

    Например:
    Код (C++):
    void loop(){
      for (int i = 0; i < KEY_COUNT; ++i){
        boolean keyUp = digitalRead(FIRST_KEY_PIN + i);
        if(!keyUp){
          swith(i){
          case: 0
            digitalWrite(r, color1_r);
            digitalWrite(g, color1_g);
            digitalWrite(b, color1_b);
            breack;
          case: 1
            digitalWrite(r, color2_r);
            digitalWrite(g, color2_g);
            digitalWrite(b, color2_b);
            breack;
          case: 2
            digitalWrite(r, color3_r);
            digitalWrite(g, color3_g);
            digitalWrite(b, color3_b);
            breack;
          }
        }
      }
    }
    Или так:
    Код (C++):
    void loop(){
      const int colors[3][3] = {{255,0,0},{0,255,0},{0,0,255}};

      for (int i = 0; i < KEY_COUNT; ++i){
        boolean keyUp = digitalRead(FIRST_KEY_PIN + i);
        if(!keyUp){
          digitalWrite(r, colors[i][0]);
          digitalWrite(g, colors[i][1]);
          digitalWrite(b, colors[i][2]);
        }
      }
    }