Estoy con acelerómetro para marcar los grados de inclinación.
Tengo el código funcionando y una pantalla ST7735 funcionando.
El caso es que los datos no 'se refrescan' en pantalla, se solapan y quedan ilegibles.
Por otro lado, he dividido la pantalla para presentar el ángulo actual, de forma continua (que es el que no consigo que 'refresque') y en otra división de la pantalla, dejar el máximo ángulo fijo, y no sé como hacer para sacar el máximo ángulo obtenido a una variable para luego 'imprimirla'.
Gracias de antemano.
Este es el código:
void loop(){
//*************************Acelerómetro ****************************//
analog_x=analogRead(0);
analog_y=analogRead(1);
analog_z=analogRead(2);
vol_x=analog_x*3.3/1024;
vol_y=analog_y*3.3/1024;
vol_z=analog_z*3.3/1024;
add_x=vol_x-1.75;
add_y=vol_y-1.85;
add_z=vol_z-1.50;
g_x=add_x/0.8;
g_y=add_y/0.8;
g_z=add_z/0.8;
if(g_x<=1&&g_x>=-1)
{
grados_x=asin(g_x)*180.0/PI;
grados_y=asin(g_y)*180.0/PI;
grados_z=asin(g_z)*180.0/PI;
}
if(g_x>1)
grados_x=90;
if(g_x<-1)
grados_x=-90;
if(g_y>1)
grados_y=90;
if(g_y<-1)
grados_y=-90;
if(g_z>1)
grados_z=90;
if(g_z<-1)
grados_z=-90;
grad_X = int (grados_x);
grad_Y = int (grados_y);
grad_Z = int (grados_z);
// ********************** TFT *********************//
tft.setCursor (90,60);
tft.setTextColor (ST7735_GREEN);
tft.setTextSize(4);
tft.print (grad_X);
tft.setCursor (9,6);
tft.setTextColor (ST7735_GREEN);
tft.setTextSize(4);
tft.print (grad_Y);
Serial.print("x:");
Serial.print(grad_X);
Serial.print(" y:");
Serial.println(grad_Y);
//Serial.print(" z:");
//Serial.println(grad_Z);
delay(100);
}