nkorobkov
@nkorobkov

Как работает данный код Arduino?

Есть следующая схема:
5bbb009ee8ecf484367087.png

Код написан не мной, в Arduino я не разбираюсь и не планирую. Помогите, пожалуйста, просто понять, как работает следующий код, потому что это очень важно:
const int data = 2;
const int store = 3;
const int shift = 4;

int potiValue;

// column counter
int j = 0;
// showDuration counter
int k;

int row[8] = {127, 191, 223, 239, 247, 251, 253, 254};
// Smiley Happy
int columnH[8] = {60, 66, 165, 129, 165, 153, 66, 60};
// Smiley Normal
int columnN[8] = {60, 66, 165, 129, 129, 189, 66, 60};
// Smiley Sad
int columnS[8] = {60, 66, 165, 129, 153, 165, 66, 60};

void setup()
{
  Serial.begin(9600);
  // 74HC595
  pinMode(data, OUTPUT); // data
  pinMode(store, OUTPUT); // store
  pinMode(shift, OUTPUT); // shift
  
  pinMode(13, OUTPUT);
}

void poti()
{
  potiValue = analogRead(0);
}

void happy()
{
  for(k = 0; k<100; k++)
  {
    for(int i=0; i<8; i++)
    {
      digitalWrite(store, LOW);
      shiftOut(data, shift, LSBFIRST, columnH[j]);
      shiftOut(data, shift, LSBFIRST, row[i]);
      digitalWrite(store, HIGH);
      j++;
      poti();
      delay(potiValue);
    }
    j = 0;
  }
}

void normal()
{
  for(k = 0; k<100; k++)
  {
    for(int i=0; i<8; i++)
    {
      digitalWrite(store, LOW);
      shiftOut(data, shift, LSBFIRST, columnN[j]);
      shiftOut(data, shift, LSBFIRST, row[i]);
      digitalWrite(store, HIGH);
      j++;
      poti();
      delay(potiValue);
    }
    j = 0;
  }
}

void sad()
{
  for(k = 0; k<100; k++)
  {
    for(int i=0; i<8; i++)
    {
      digitalWrite(store, LOW);
      shiftOut(data, shift, LSBFIRST, columnS[j]);
      shiftOut(data, shift, LSBFIRST, row[i]);
      digitalWrite(store, HIGH);
      j++;
      poti();
      delay(potiValue);
    }
    j = 0;
  }
}

void loop()
{
  happy();
  normal();
  sad();
}


Результат работы: на диодах выводится смайлик, у которого по очереди меняется 3 эмоции:
5bbb01781eb2c121647459.png
  • Вопрос задан
  • 292 просмотра
Пригласить эксперта
Ответы на вопрос 1
proudmore
@proudmore
Как в коде написано, так и работает :)
Было бы проще разъяснить вам то, что вас интересует, если бы была известна ваша конечная цель.
А то понимать как работает хочу, но разбираться как работает не хочу и не планирую :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы