Stap 4: Testen van de versnellingsmeter
Nu, het moeilijkste deel, testen van de versnellingsmeter. Dit was de eerste keer dat we met versnellingsmeters vandaar die de enorme hoeveelheid tijd besteed experimenteren en proberen werkten te begrijpen van de waarden.We vonden een geweldige website die hielp ons te voorzien van een basiskennis van versnellingsmeters, alsmede een grote code.
http://bildr.org/2011/04/sensing-Orientation-with-the-adxl335-Arduino/
Dit is de code die zij verstrekt en wat we gebruikt.
=================================================
//////////////////////////////////////////////////////////////////
© 2011 bildr
Vrijgegeven onder de MIT-licentie - alstublieft verandering hergebruiken en delen
Eenvoudige code voor de ADXL335, wordt afgedrukt berekende oriëntatie via seriële
//////////////////////////////////////////////////////////////////
Analoge Lees pinnen
Const int xPin = 0;
Const int yPin = 1;
Const int zPin = 2;
De minimale en maximale waarden die vandaan
de versnellingsmeter terwijl stil
U moet zeer goed mogelijk om deze te veranderen
int minVal = 265;
int maxVal = 402;
om te houden van de caculated-waarden
dubbele x;
dubbele y;
dubbele z;
VOID Setup {}
Serial.begin(9600);
}
void loop {}
Lees de analoge waarden van de versnellingsmeter
int xRead = analogRead(xPin);
int yRead = analogRead(yPin);
int zRead = analogRead(zPin);
Lees waarden tot-90 90 - graden die nodig zijn voor atan2 converteren
int xAng = kaart (xRead, minVal, maxVal,-90, 90);
int yAng = kaart (yRead, minVal, maxVal,-90, 90);
int zAng = kaart (zRead, minVal, maxVal,-90, 90);
Caculate 360deg waarden als volgt: atan2 (-yAng, -zAng)
ATAN2 uitgangen de waarde van - pi tot pi (radialen)
Wij zijn dan de radialen converteren naar graden
x = RAD_TO_DEG * (atan2 (-yAng, -zAng) + PI);
y = RAD_TO_DEG * (atan2 (-xAng, - zAng) + PI);
z = RAD_TO_DEG * (atan2 (-yAng, -xAng) + PI);
Uitgang van de caculations
Serial.Print ("x:");
Serial.Print(x);
Serial.Print("| y: ");
Serial.Print(y);
Serial.Print("| z: ");
Serial.println(z);
vertraging (100); //just hier om te vertragen van de uitgang voor seriële - gemakkelijker te lezen
=======================================================