Paso 4: Mi código. Yay aún más.
Solo copia y pega en arduino y se deben trabajar si ya tienes las bibliotecas de codificador y tv.
Ardudro programa, revisión 2
#define ENCODER_OPTIMIZE_INTERRUPTS
no has probado usando la línea de arriba, puede hacerlo más rápido, pero no puede.
#include < Encoder.h >
#include < TVout.h >
int xminus = 0;
int yminus = 0;
Codificador myEnc (2, 7); //flip "myEnc" y "Ecy" si los ejes X e Y son al revés
Ecy codificador (3, 6);
flotador anaval = 0;
Float value01 = 0;
flotador val = 1000;
Float valor;
Float value10;
Float value100;
int
int r = 0;
pos de flotador = 0;
rd de int = 4;
largo np = 0;
flotador de incr = 0.000390625; 1/2560, este número puede cambiar para su configuración. Asegúrese de utilizar un decimal, no una fracción.
int onx = 12;
negx int = 0;
npy largo = 0;
ty int = 0;
TVout TV;
const int buttonx = 11; //flip estos dos (x y y o los números) si los botones están apagadas.
const int buttony = 10;
unsigned char x, y;
char i = 48;
int ic = 6;
void setup() {}
pinMode(buttonx,INPUT);
pinMode(buttony,INPUT);
digitalWrite(buttonx,HIGH);
digitalWrite(buttony,HIGH);
x = 0;
y = 0;
TV.begin(_NTSC,110,30);
}
void loop() {}
if(digitalRead(buttonx) == 0) {//this no necesita leerse inmediatamente, así que vamos a utilizar el bucle
en lugar de una interrupción. Además, los codificadores utilizan las otras interrupciones.
myEnc.write(0);
}
if(digitalRead(buttony) == 0) {//same aquí.
Ecy.Write(0);
}
NP = myEnc.read();
NP = np *-1; descomentar si se gira el eje X
Delay(1);
Ty = 0;
TV.print_char(onx,ty,'X');
Si (val! = np) {}
Si (np < 0) {}
Val = -1 * np;
negx = 1;
} else {}
Val = np;
negx = 0;
}
}
DISP();
NP = Ecy.read();
NP = np *-1; //uncomment si se gira el eje Y
Delay(1);
Ty = 10;
TV.print_char(onx,ty,'Y');
Si (val! = np) {}
Si (np < 0) {}
Val = -1 * np;
negx = 1;
} else {}
Val = np;
negx = 0;
}
}
DISP();
}
void stringer() {}
value01 = val;
valor = val / 10;
value10 = val / 100;
value100 = val / 1000;
valor = int(value);
value10 = int(value10);
value100 = int(value100);
value01 = int(value01);
value01 = value01 - (valor * 10);
valor = valor - (value10 * 10);
value10 = value10 - (value100 * 10);
}
{} void disp()
Val = val * incr;
Val = int(val * 1000);
Stringer();
Si (negx == 1) {}
TV.print_char(onx-ic,ty,'-');
} else {}
TV.print_char (onx-ic, ty,' ');
}
TV.print_char(onx+ic,ty,char(value100)+48);
TV.print_char(onx+(ic*2),ty,char(value10)+48);
TV.print_char(onx+(ic*3),ty,char(value)+48);
TV.print_char(onx+(ic*4),ty,char(value01)+48);
}