Étape 2: Codage et étalonnage
Tout d’abord commençons par la définition des variables et des composants.
Le minVal et maxVal est pour l’étalonnage. Il s’agit d’un presque 99 % sûr que vous aurez à changer par vous-même.
Si vous avez de Pentecôte de n’importe quel problème qui me message juste et nous allons voir que si je peux vous aider.
#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;
Est temps pour le programme d’installation. En cela, vous devrez juste commencer l’écran LCD et la série.
void setup(){ Serial.begin(115200); lcd.begin(16, 2); }
La boucle est où la magie commence à se produire.
Tout d’abord, vous devrez faire des calculs pour l’accélération lectures du capteur. (dans le code les mathématiques de base ne sont pas fait par moi. Je suis nul en maths: P) mais ce calcul signifie essentiellement que vous aurez à convertir des radians en degrés en calculant (atan2(-y,-z)+PI) pour obtenir le degré de x, et ainsi de suite... Voici plus d’informations dans atan2 et calcul.
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);
Reste du code est assez simple et basique. Définissez la couleur RVB. Et a choisi ce qu’il faut imprimer ou écrire sur l’écran.
L’image montre comment faire des symboles de base de l’écran LCD. Comme dans l’exemple pour faire une flèche vers la droite, vous devrez trouver la bonne image de la table et écrire le binaire correct pour le symbole (arrowright = 0111 pour plus de 4 bits et 1110 bits inférieurs = 01111110 au format binaire.
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); }