Entender un código

vi este vídeo en youtube y hace tiempo estuve tratando de descifrar el código que dejo… (aun soy nuevo…)

y el codigo que dejo fue este

#include <TM1637.h>
TM1637 disp(11,12);
unsigned long currentTime;
unsigned long loopTime;
unsigned long blTime;
#define pin_A 6 // clk
#define pin_B 5 // dt
#define pin_S 4 // sw
boolean encoder_A_prev=0;
int val=0;
void setup() { // declare pin 9 to be an output:
 Serial.begin(9600);
  pinMode(13, OUTPUT);  
  digitalWrite(13,1);
  pinMode(3, OUTPUT);  
  digitalWrite(3,1);
  pinMode(2, OUTPUT);  
  digitalWrite(2,0);
  pinMode(pin_A, INPUT);
  pinMode(pin_B, INPUT);
  pinMode(pin_S, INPUT);
  currentTime = millis();
  loopTime = currentTime;
  blTime=currentTime;
  disp.set(0);
  disp.display(val);

}

void loop() {
  currentTime = millis();
static boolean f=0;
      if(currentTime>=(blTime+2000)&&f==0)
    {
      disp.set(0);
      f=1;
      disp.display(val);
    }
  if(currentTime >= (loopTime + 3)){ // проверяем каждые 5мс (200 Гц)
    if(digitalRead(pin_S)==0){
      val=0;
      disp.display(val);
      Serial.println(val);
    }
    boolean encoder_A = digitalRead(pin_A); // считываем состояние выхода А энкодера
    boolean encoder_B = digitalRead(pin_B); // считываем состояние выхода А энкодера
    if((!encoder_A) && (encoder_A_prev)){ // если состояние изменилось с положительного к нулю
      disp.set(5);
      f=0;
      blTime=currentTime;
      if(encoder_B) {
        val--; 
      }
      else { // выход В в 0 сост., вращение по часовой стрелки
        val++;
      }

      disp.display(val);
      Serial.println(val);
    }
    encoder_A_prev = encoder_A; // сохраняем значение А для следующего цикла
    loopTime = currentTime;
  }
}

esta en ruso y no entiendo mucho…

alguien me puede explicar como rayos llego a funcionar eso?

si suena tonto …pero aun estoy usando PSeint…quier aprender mas

Para entender un código primero entiende las partes involucradas TM1637

Encoder
Cuando entiendas las partes tal vez ni siquieras necesites traducir algo del ruso.

lo que pasa son 2 cosas que no me quedaron claras

disp.diplay

conecta los 4 y 5 pines del display y el encoder a los pines digitales...

El display esta conectado a los pines 11 y 12 y lo define en la línea "TM1637 disp(11,12);"

El encoder lo conecta a los pines 6, 5 y 4 y lo define en

#define pin_A 6 // clk
#define pin_B 5 // dt
#define pin_S 4 // sw

Si quieres un código para probar sin tener que usar un display, usa la comunicación serial te dejo el link