You are on page 1of 8

Acelermetros e Arduino ADXL345 - Uma Introduo

Os acelermetros so bastante comuns em eletrnicos, especialmente em projetos de hobby. Muitos de vocs j ouviram falar sobre acelermetros, e j usaram alguns deles. Aqui estamos indo para obter um acelermetro conectado e nos dando as medies em 15 minutos. Este breve tutorial explica em primeiro lugar o que um acelermetro, e depois como ligar um em seu Arduino usando Biblioteca ADXL345 Arduino da Love Eletrnica. Estamos focando em um acelermetro que usamos aqui na Love Electronics, o ADXL345 acelermetro eixo triplo.

Este acelermetro um timo para comear a usar, como ele tem boa variedade (at 16G), interface digital (I2C e SPI), e bastante resistente a vibraes. Ns tambm fizemos e realmente fcil de usar como ns colocamos ele em uma placa de fuga pequeno para voc, assim voc no precisa de solda este chip x 3mm 5mm a seu Arduino. Ns tambm adicionamos os capacitores adequados de filtragem e de afinao para voc. Um acelermetro mede acelerao. Que pode parecer bvio, no entanto, existem dois tipos de acelerao. Acelerao esttica - como a gravidade - que o que voc vai usar o seu acelermetro para medir com mais frequncia. Tambm acelerao dinmica, que basicamente o movimento, que normalmente fica no caminho da maioria da nossa inclinao em aplicaes de sensoriamento remoto geralmente usou-se acelermetros para tal atividade. Para uma mais profunda explicao de acelermetros, voc vai querer verificar para fora nossos Acelermetros: ADXL345 Biblioteca e Tutorial Netduino, como esse tutorial entra em grandes detalhes sobre como trabalhar com acelermetros, e quais os benefcios e os problemas vm com o uso de um.

Instalao
Junto com o acelermetro, 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 tambm vai precisar destes softwares:


The Arduino development environment. The Love Electronics ADXL345 Arduino Library.

Em primeiro lugar vamos configurar o seu ambiente de desenvolvimento. Faa o download do ambiente de desenvolvimento do Arduino e instal-lo. A maioria de vocs j fizeram essa etapa, mas apenas no caso, baixe a verso 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 Eletrnica 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 Eletrnica ADXL345 em seus programas Arduino (esboos). Do lado do hardware to fcil. Siga estas instrues para conectar seu Conselho Breakout ADXL345 para o Arduino, ou siga a imagem abaixo. Voc provavelmente vai querer solda em alguns cabealhos masculinos em seu Conselho de Triplo Eixo ADXL345 Breakout acelermetro para tornar mais fcil 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 resistncias. Ligue ADXL345 SCL para Arduino 3.3V usando uma de suas resistncias. Ligue ADXL345 SDA para Arduino analgica 4 (dados I2C) em seu (Pino 20 em um Arduino Mega). Ligue ADXL345 SCL para Arduino analgica 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, ento 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:

Programao
Agora que voc tem o circuito montado, podemos iniciar a programao! Agora esta parte realmente fcil. Ns colocamos todas as partes complicadas sobre a comunicao com o acelermetro em nossa biblioteca, ento tudo que voc tem a fazer usar mtodos sensivelmente nomeados para obter o acelermetro para fazer o que voc precisa. Vamos comear com um esboo simples para ver se voc tem o circuito montado corretamente. Veja o cdigo abaixo que se conecta ao acelermetro o eixo triplo e nos permite saber, atravs da porta serial e nosso LED de status, se podemos nos comunicar com o acelermetro 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 tambm ser aceso:

Se voc ver isso em vez da imagem acima, h um problema no circuito, d uma olhada nas instrues 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 ns ficaramos felizes em lhe dar uma mo.

Uma vez conectado, ento ns queremos ler os dados do dispositivo que ainda no possumos dados nenhum! Assim, segurem seus cavalos! Os chips pobres ainda no 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 ns queremos que ele comece a tomar medidas. Fazemos isso adicionando o seguinte cdigo 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 mximo que se pode obter. Ele tambm saber para iniciar a medio, ento agora a sua beavering de distncia (ou o que nunca chips fazem quando eles esto 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 mtodos no acelermetro que declaramos em nossa rotina de configurao 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 cdigo no ir compilar. Voc pode ter observado que, no fim da rotina de loop () chamamos um mtodo chamado de

Output(). Que toma as medies brutas e dimensionadas, temos recuperado do ADXL345. Basta adicionar este mtodo para o fim de seu esboo, 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 mtodos fazem, enviar nossos dados para fora atravs da janela de srie. Se voc abrir a janela de srie que voc deve ver todos os dados de inundao de volta! Dar a coisa toda uma inclinao pouco e voc vai ver os valores oscilando em torno de como o movimento da placa. Tente experimentar com os dois tipos de acelerao. Esttica, o dispositivo de inclinao, e dinmico, movendo a placa de lado a lado.

Se os seus problemas so com a obteno de dados a partir do dispositivo, ou se est tendo problemas para por o cdigo para funcionar, tente carregar o esboo exemplo (que o que ns 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 eletrnica da Love Eletrnica e super fcil de ser montado, alm de usar a Biblioteca da Love Eletrnica ADXL345 Arduino. Espero que tenham gostado deste tutorial. Por ter mais gente a ler nossos tutoriais ns vamos ser capazes de produzir mais para vocs sobre todos os tipos de coisas.

Fonte

do

Tutorial:

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

accelerometer-arduino-tutorial.

You might also like