Paso 2: Codificación y calibrar
En primer lugar vamos a empezar con la definición de los componentes y variables.
El minVal y maxVal es para calibración. Se trata de un casi 99% seguro lo que tienes que cambiar de su uno mismo.
Si usted tiene ápice de cualquier problema que sólo me mensaje y vamos a ver eso si yo te puedo ayudar.
#include #include "rgb_lcd.h" rgb_lcd lcd;//Analog read pins const int xPin = 0; const int yPin = 1; const int zPin = 2;//Change these to calibrate the acceleration sensor. Get the values by reading the (zRead) int minVal = 274; int maxVal = 450;double x; double y; double z;
Entonces es tiempo para la configuración. En esto le basta iniciar el visor y la serie.
void setup(){ Serial.begin(115200); lcd.begin(16, 2); }
El lazo es donde la magia comienza a suceder.
Primero deberás hacer los cálculos para la aceleración lecturas del sensor. (en el código de la base matemática no está hecha por mí. Me chupo en matemáticas: P) pero básicamente ese cálculo significa que tienes que convertir los radianes a grados calculando (atan2(-y,-z)+PI) para obtener el grado de x y así sucesivamente... Aquí hay más información de atan2 y cálculo.
void loop(){ int xRead = analogRead(xPin); int yRead = analogRead(yPin); int zRead = analogRead(zPin); //convert read values to degrees -90 to 90 - Needed for atan2 int xAng = map(xRead, minVal, maxVal, -90, 90); int yAng = map(yRead, minVal, maxVal, -90, 90); int zAng = map(zRead, minVal, maxVal, -90, 90); //Caculate 360deg values like so: atan2(-yAng, -zAng) //atan2 outputs the value of -π to π (radians) //We are then converting the radians to degrees x = RAD_TO_DEG * (atan2(-yAng, -zAng) + PI); y = RAD_TO_DEG * (atan2(-xAng, -zAng) + PI); z = RAD_TO_DEG * (atan2(-yAng, -xAng) + PI);
Resto del código es bastante simple y básica. Establece el color RGB. Y eligió lo que imprimir o escribir en la pantalla.
La imagen muestra cómo hacer símbolos básicos para la pantalla LCD. Que una flecha a la derecha tienes que encontrar la correcta imagen de la tabla, escriba el archivo binario correcto para el símbolo como en ejemplo (arrowright = 0111 mayor 4 bits y bits inferiores 1110 = 01111110, en binario.
Serial.print("x: "); Serial.print(x); Serial.print(" | y: "); Serial.print(y); Serial.print(" | z: "); Serial.println(z); // To change the colour simply change the numbers below to something else. Ie ( 255,123,50) lcd.setRGB(0, 0, 255); lcd.setCursor(0,0); lcd.print("X:"); lcd.print(x); lcd.setCursor(7,0); lcd.write(0b11011111); lcd.setCursor(0,1); lcd.print("Y:"); lcd.print(y); lcd.setCursor(7,1); lcd.write(0b11011111); lcd.setCursor(15,0); lcd.write(0b01011110); lcd.setCursor(15,1);//the arrow is this one. lcd.write(0b01111110); delay(1000); }