Go Down

Topic: Entender un código (Read 286 times) previous topic - next topic

krokada

Jun 04, 2018, 01:42 pm Last Edit: Jun 04, 2018, 09:14 pm by surbyte
vi este vídeo en youtube y hace tiempo estuve tratando de descifrar el código que dejo... (aun soy nuevo...)
https://www.youtube.com/watch?v=ghZcqTvejiM

y el codigo que dejo fue este

Code: [Select]

#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

surbyte

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.

krokada

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...

Daniel_Arg

#3
Aug 03, 2018, 10:26 am Last Edit: Aug 03, 2018, 09:36 pm by surbyte
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

Code: [Select]
#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



Go Up