O produto em estoque pode ser diferente do exibido abaixo (principalmente posição dos pinos), mas o funcionamento é o mesmo.
Teste básico
Você precisa conectar o acelerômetro como indicado abaixo.
Nota: A ligação de 3.3V a AREF só é necessária para o último exemplo, porque a biblioteca define AREF como EXTERNAL.
O seguinte sketch mostrará se o acelerômetro está funcionando:
void setup() { Serial.begin(9600); } void loop() { for (int analogPin = 0; analogPin < 3; analogPin++) { int sensor = analogRead(analogPin); Serial.print(" "); Serial.print(sensor); } Serial.println(" "); delay(100); }
Usando uma biblioteca
Como você pode ver pelo sketch acima, não é realmente necessário usar uma biblioteca para usar o acelerômetro. Se tudo o que você precisa saber é a orientação, sem precisar saber valores precisos de ângulos e aceleração, basta uma interpretação simples dos valores das entradas analógicas. Mas se você precisar de algo um pouco mais compicado, uma biblioteca pode ajudar a manter o código organizado.
A melhor biblioteca que encontrei até agora foi a AcceleroMMA7361.
Em anexo, um software escrito por mim que facilita o teste do acelerômetro. Para usá-lo, o arduino precisa estar rodando o seguiuinte sketch, que é uma ligeira modificação do exemplo RawData da biblioteca:
#include <AcceleroMMA7361.h> AcceleroMMA7361 accelero; int x; int y; int z; void setup() { Serial.begin(9600); accelero.begin(13, 12, 11, 10, A0, A1, A2); accelero.setARefVoltage(3.3); //sets the AREF voltage to 3.3V accelero.setSensitivity(LOW); //sets the sensitivity to +/-6G accelero.calibrate(); } void loop() { x = accelero.getXRaw(); y = accelero.getYRaw(); z = accelero.getZRaw(); Serial.print("\nx: "); Serial.print(x); Serial.print("\ty: "); Serial.print(y); Serial.print("\tz: "); Serial.print(z); delay(100); }
Leave a Comment