Программирование ардуино

Тема в разделе "Arduino & Shields", создана пользователем Евгений Сапронов, 12 фев 2018.

  1. Мне не понятно,как вывести значение из массива:
    Код (C++):
    #define OE_ 3
    #define LATCH 4
    #define CLOCK 5
    #define SBROS 6
    #define DATA 7
    int q,q1,q2,q3,q4,q5,q6;
    byte a[] = {1,1,1,0,1,1,0,1};
    byte d[] = {1,0,0,0,1,1,1,1};
    byte b[] = {0,0,1,0,1,1,1,1};
    byte r[] = {0,0,0,0,1,0,0,1};
    byte c[] = {0,0,0,0,1,0,1,1};
    byte e[] = {0,1,1,0,1,0,1,1};
    byte u[] = {0,0,0,0,0,1,1,1};
    byte t[] = {0,0,1,0,1,0,1,1};
    byte I[] = {0,0,1,0,0,0,0,1};
    byte o[] = {0,0,0,0,1,1,1,1};
    byte f[] = {0,1,1,0,1,0,0,1};
    byte l[] = {0,0,1,0,0,0,1,1};
    byte n[] = {0,0,0,0,1,1,0,1};
    byte h[] = {0,0,1,0,1,1,0,1};
    byte g[] = {0,1,1,0,1,1,1,1};
    byte p[] = {1,1,1,0,1,0,0,1};
    byte j[] = {1,0,0,0,0,1,1,1};
    byte s[] = {0,1,1,0,1,1,1,0};
    byte one[] = {0,0,1,0,0,0,0,1};
    byte two[] = {1,1,0,0,1,0,1,1};
    byte three[] = {1,1,0,0,1,1,1,0};
    byte four[] = {1,0,1,0,1,1,0,0};
    byte five[] = {0,1,1,0,1,1,1,0};
    byte six[] = {0,1,1,0,1,1,1,1};
    byte seven[] = {1,1,0,0,0,1,0,0};
    byte eight[] = {1,1,1,0,1,1,1,1};
    byte nine[] = {1,1,1,0,1,1,1,0};
    byte zero[] = {1,1,1,0,0,1,1,1};
    byte grad[] = {1,1,1,0,1,0,0,0};
    byte tire[] = {0,0,0,0,1,0,0,0};
    byte tochka[] = {q,q1,q2,1,q3,q4,q5,q6};
    byte ravno[] = {0,0,0,0,1,0,1,0};
    byte probel[] = {0,0,0,0,0,0,0,0};
    void setup()
    {
      Serial.begin(9600);
    pinMode(3,OUTPUT);
    pinMode(4,OUTPUT);
    pinMode(5,OUTPUT);
    pinMode(6,OUTPUT);
    pinMode(7,OUTPUT);
    digitalWrite(OE_,LOW);
    digitalWrite(SBROS,HIGH);
    }

    void loop()
    {
      if (Serial.available() > 0)
      {
        char bukva = Serial.read();
        Serial.println(bukva);
        digitalWrite(LATCH,LOW);
        bool nn = bukva + '[i]'; //хочу здесь сложить массив из названия,полученного из сериал-порта,и [i] (i-счетчик в for)
        for (int i = 0;i<=7;i++)
        {
          digitalWrite(DATA,nn); // здесь я хочу вставить получившийся массив,но как это сделать?
          digitalWrite(CLOCK,HIGH);
          digitalWrite(CLOCK,LOW);
          digitalWrite(DATA,LOW);
        }
        digitalWrite(LATCH,HIGH);
      }
    }
     
     
  2. fogary

    fogary Гик

    Это зачем?
    Код (C++):
    byte tochka[] = {q,q1,q2,1,q3,q4,q5,q6};
    Сам подход не очень, ну да ладно.
    Примерно так (если правильно уловил ход Вашей мысли):
    Код (C++):
        char bukva = Serial.read();
        Serial.println(bukva);
        digitalWrite(LATCH,LOW);
    //    bool nn = bukva + '[i]'; //хочу здесь сложить массив из названия,полученного из сериал-порта,и [i] (i-счетчик в for)
        bool nn;
        for (int i = 0;i<=7;i++)
        {
          switch (bukva){
            case 'a': nn = a[i];
              break;
            case 'b': nn = b[i];
              break;

            ...

            case ' ': nn = probel[i];
              break;
          }
          digitalWrite(DATA,nn); // здесь я хочу вставить получившийся массив,но как это сделать?

          ...