Stap 2: Codering en kalibreren
Allereerst laten we beginnen met de definitie van componenten en variabelen.
De minVal en de maxVal is voor kalibratie. Dit is een bijna 99% zeker ding dat u zult moeten veranderen door uw zelf.
Hebt u van enig probleem whit die enkel message me en laten we zien dat als kan ik u helpen.
#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;
Vervolgens is het tijd voor de installatie. In dit moet u alleen om het LCD-scherm en serie.
void setup(){ Serial.begin(115200); lcd.begin(16, 2); }
De lus is waar de magie begint te gebeuren.
Eerst zul je om berekeningen te maken voor de versnelling sensor lezingen. (in de code de basis wiskunde gebeurt niet door mij. Ik zuigen op wiskunde: P) maar die berekening betekent in feite dat u de radialen converteren naar graden door te berekenen (atan2(-y,-z)+PI) moeten zult om de mate van x, enzovoort... Hier is meer informatie van atan2 en berekening.
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);
Rest van de code is een vrij eenvoudige en elementaire dingen. De RGB-kleur instellen. En koos wat af te drukken of op het scherm schrijven.
De foto toont hoe u elementaire symbolen aan het LCD-scherm. In het volgende voorbeeld willen maken van een pijl rechts zul je om te vinden van de juiste afbeelding uit de tabel en het schrijven van het juiste binaire bestand van het symbool (arrowright = 0111 voor hogere 4 bits en lage bits 1110 = 01111110 in binary.
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); }