Você está na página 1de 8

Acelerômetros e Arduino ADXL345 - Uma Introdução

Os acelerômetros são bastante comuns em eletrônicos, especialmente em projetos de


hobby. Muitos de vocês já ouviram falar sobre acelerômetros, e já usaram alguns deles.

Aqui estamos indo para obter um acelerômetro conectado e nos dando as medições em
15 minutos. Este breve tutorial explica em primeiro lugar o que é um acelerômetro, e
depois como ligar um em seu Arduino usando Biblioteca ADXL345 – Arduino da Love
Eletrônica. Estamos focando em um acelerômetro que usamos aqui na Love Electronics,
o ADXL345 acelerômetro eixo triplo.

Este acelerômetro é um ótimo para começar a usar, como ele tem boa variedade (até
16G), interface digital (I2C e SPI), e é bastante resistente a vibrações. Nós também
fizemos e é realmente fácil de usar como nós colocamos ele em uma placa de fuga
pequeno para você, assim você não precisa de solda este chip x 3mm 5mm a seu
Arduino. Nós também adicionamos os capacitores adequados de filtragem e de afinação
para você.

Um acelerômetro mede aceleração. Que pode parecer óbvio, no entanto, existem dois
tipos de aceleração. Aceleração estática - como a gravidade - que é o que você vai usar
o seu acelerômetro para medir com mais frequência. Também aceleração dinâmica, que
é basicamente o movimento, que normalmente fica no caminho da maioria da nossa
inclinação em aplicações de sensoriamento remoto geralmente usou-se acelerômetros
para tal atividade.

Para uma mais profunda explicação de acelerômetros, você vai querer verificar para
fora nossos Acelerômetros: ADXL345 Biblioteca e Tutorial Netduino, como esse
tutorial entra em grandes detalhes sobre como trabalhar com acelerômetros, e quais os
benefícios e os problemas vêm com o uso de um.
Instalação

Junto com o acelerômetro, você precisará do hardware abaixo:

 An ADXL345 Breakout Board.


 An Arduino Uno or Arduino Mega.
 A small breadboard.
 Two resistors (between 4.7k and 10k Ohms).
 A bundle of wires.
 A green LED.
 Some male headers

Você também vai precisar destes softwares:

 The Arduino development environment.


 The Love Electronics ADXL345 Arduino Library.

Em primeiro lugar vamos configurar o seu ambiente de desenvolvimento. Faça o


download do ambiente de desenvolvimento do Arduino e instalá-lo. A maioria de vocês
já fizeram essa etapa, mas apenas no caso, baixe a versão mais recente para o seu
computador a partir do site do Arduino e extraí-lo em algum lugar (eu coloquei em C: \
Arquivos de Programas \Arduino\).

Uma vez que você tem o ambiente Arduino configurado, você vai precisar instalar a
Biblioteca da Love Eletrônica ADXL345 – Arduino. Baixe a biblioteca e extraí-lo para
aqui: C: \ Arquivos de programas \ \ Arduino bibliotecas, ou onde quer que você tenha
colocado o ambiente Arduino.

Muito bom. Esse é o lado do software tudo feito. Agora você vai ser capaz de usar a
Biblioteca da Love Eletrônica ADXL345 em seus programas Arduino (esboços).

Do lado do hardware é tão fácil. Siga estas instruções para conectar seu Conselho
Breakout ADXL345 para o Arduino, ou siga a imagem abaixo. Você provavelmente vai
querer solda em alguns cabeçalhos masculinos em seu Conselho de Triplo Eixo
ADXL345 Breakout acelerômetro para tornar mais fácil para ligar a sua placa de
montagem.
Ligue Arduino 3.3V a ADXL345 VCC, SDO e CS.

Ligue Arduino GND para ADXL345 GND.

Ligue ADXL345 SDA para Arduino 3.3V usando uma de suas resistências.

Ligue ADXL345 SCL para Arduino 3.3V usando uma de suas resistências.

Ligue ADXL345 SDA para Arduino analógica 4 (dados I2C) em seu (Pino 20 em um
Arduino Mega).

Ligue ADXL345 SCL para Arduino analógica 5 (Clock I2C) em seu (Pin 21 em um
Arduino Mega).

Seu feito conectando seu ADXL345 para o Arduino. Eu normalmente gosto de incluir
um LED, então eu sei o que meu desenho está fazendo só de olhar. Este passo é
opcional, por isso eu estou conectando um LED verde ao pino digital 2 e GND no meu
Arduino. (Fixe o pino mais no LED para GND, e quanto menor o seu pino para pino
digital).

Você deve acabar com algo parecido com isto:


Programação

Agora que você tem o circuito montado, podemos iniciar a programação! Agora esta
parte é realmente fácil. Nós colocamos todas as partes complicadas sobre a
comunicação com o acelerômetro em nossa biblioteca, então tudo que você tem a fazer
é usar métodos sensivelmente nomeados para obter o acelerômetro para fazer o que
você precisa. Vamos começar com um esboço simples para ver se você tem o circuito
montado corretamente.

Veja o código abaixo que se conecta ao acelerômetro o eixo triplo e nos permite saber,
através da porta serial e nosso LED de status, se podemos nos comunicar com o
acelerômetro de 3 eixos:

// Include the Wire library so we can start using I2C.


#include <Wire.h>
// Include the Love Electronics ADXL345 library so we can use the
accelerometer.
#include <ADXL345.h>

// Declare a global instance of the accelerometer.


ADXL345 accel;

// Set up a pin we are going to use to indicate our status using an LED.
int statusPin = 2; // I'm using digital pin 2.

void setup()
{
// Begin by setting up the Serial Port so we can output our results.
Serial.begin(9600);
// Start the I2C Wire library so we can use I2C to talk to the
accelerometer.
Wire.begin();

// Ready an LED to indicate our status.


pinMode(statusPin, OUTPUT);

// Create an instance of the accelerometer on the default address (0x1D)


accel = ADXL345();

// Check that the accelerometer is infact connected.


if(accel.EnsureConnected())
{
Serial.println("Connected to ADXL345.");
digitalWrite(statusPin, HIGH); // If we are connected, light our status
LED.
}
else
{
Serial.println("Could not connect to ADXL345.");
digitalWrite(statusPin, LOW); // If we are not connected, turn our LED
off.
}
}

void loop() {}

Você deve ver isso quando você abrir a janela da porta serial no ambiente Arduino, o
LED de status deverá também ser aceso:

Se você ver isso em vez da imagem acima, há um problema no circuito, dê uma olhada
nas instruções acima e veja se você pode resolver o problema. Se você ficar preso de
verdade, nos envie um e-mail para info@loveelectronics.co.uk e nós ficaríamos felizes
em lhe dar uma mão.

Uma vez conectado, então nós queremos ler os dados do dispositivo que ainda não
possuímos dados nenhum! Assim, segurem seus cavalos! Os chips pobres ainda não
sabem que tipo de dados que você deseja. Você ainda nem disse que quer todos os
dados ainda! Permite dizer a ADXL345 que queremos medir dados entre +2G e -2G, e
que nós queremos que ele comece a tomar medidas. Fazemos isso adicionando o
seguinte código para o fundo da nossa rotina de setup():
// Set the range of the accelerometer to a maximum of 2G.
accel.SetRange(2, true);
// Tell the accelerometer to start taking measurements.
accel.EnableMeasurements();

Ótimo, agora o ADXL345 vai saber informar sobre medidas entre +2G e -2G, e se
receber mais alguma coisa, irá nos dizer o valor máximo que se pode obter. Ele também
saberá para iniciar a medição, então agora a sua beavering de distância (ou o que nunca
chips fazem quando eles estão trabalhando duro - lascar talvez) nos deixando saber
como ele é inclinado. Para ouvi-la, vamos substituir o nosso loop () de rotina com um
presente:

void loop()
{
if(accel.IsConnected) // If we are connected to the accelerometer.
{
// Read the raw data from the accelerometer.
AccelerometerRaw raw = accel.ReadRawAxis();
//This data can be accessed like so:
int xAxisRawData = raw.XAxis;

// Read the *scaled* data from the accelerometer (this does it's own read
from the accelerometer
// so you don't have to ReadRawAxis before you use this method).
// This useful method gives you the value in G thanks to the Love
Electronics library.
AccelerometerScaled scaled = accel.ReadScaledAxis();
// This data can be accessed like so:
float xAxisGs = scaled.XAxis;

// We output our received data.


Output(raw, scaled);
}
}

Como você pode ver, este é realmente simples. É só você chamar os métodos no
acelerômetro que declaramos em nossa rotina de configuração para obter dados a partir
do dispositivo! Todas as partes complicadas sobre a escrita aos registos I2C,
estabelecendo velocidades de clock, ORing, ANDing e MAYBEing tudo é feito dentro
da nossa biblioteca ADXL345!

Agora, antes de você chegar muito apressado, este código não irá compilar. Você pode
ter observado que, no fim da rotina de loop () chamamos um método chamado de
Output(). Que toma as medições brutas e dimensionadas, temos recuperado do
ADXL345. Basta adicionar este método para o fim de seu esboço, e está feito.

void Output(AccelerometerRaw raw, AccelerometerScaled scaled)


{
// Tell us about the raw values coming from the accelerometer.
Serial.print("Raw:\t");
Serial.print(raw.XAxis);
Serial.print(" ");
Serial.print(raw.YAxis);
Serial.print(" ");
Serial.print(raw.ZAxis);

// Tell us about the this data, but scale it into useful units (G).
Serial.print(" \tScaled:\t");
Serial.print(scaled.XAxis);
Serial.print("G ");
Serial.print(scaled.YAxis);
Serial.print("G ");
Serial.print(scaled.ZAxis);
Serial.println("G");
}

O que todos esses métodos fazem, é enviar nossos dados para fora através da janela de
série. Se você abrir a janela de série que você deve ver todos os dados de inundação de
volta! Dar a coisa toda uma inclinação pouco e você vai ver os valores oscilando em
torno de como o movimento da placa. Tente experimentar com os dois tipos de
aceleração. Estática, o dispositivo de inclinação, e dinâmico, movendo a placa de lado a
lado.
Se os seus problemas são com a obtenção de dados a partir do dispositivo, ou se está
tendo problemas para por o código para funcionar, tente carregar o esboço exemplo (que
é o que nós fizemos aqui) a partir do menu abaixo, e tentar novamente.

Tudo certo! Você está conectado com sucesso a ADXL345 para o Arduino! Ela foi feita
em uma placa eletrônica da Love Eletrônica e super fácil de ser montado, além de usar a
Biblioteca da Love Eletrônica ADXL345 – Arduino.

Espero que tenham gostado deste tutorial. Por ter mais gente a ler nossos tutoriais nós
vamos ser capazes de produzir mais para vocês sobre todos os tipos de coisas.

Fonte do Tutorial: https://www.loveelectronics.co.uk/Tutorials/12/adxl345-


accelerometer-arduino-tutorial.

Você também pode gostar