Índice:
- Etapa 1: Componentes
- Etapa 2: Princípio
- Etapa 3: Procedimentos
- Etapa 4: Código
- Etapa 5: Análise de código
Vídeo: ADXL345 usando Arduino Uno R3: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Nesta lição, aprenderemos como usar o sensor de aceleração ADXL345.
Etapa 1: Componentes
- Placa Arduino Uno * 1
- Cabo USB * 1
- ADXL345 * 1
- Breadboard * 1
- Fios de ligação
Etapa 2: Princípio
Um acelerômetro é usado para medir a força gerada durante a aceleração. O mais fundamental é a aceleração da gravidade comumente conhecida, que é 1g.
Ao medir a aceleração causada pela gravidade, você pode calcular o ângulo de inclinação do dispositivo em relação à superfície nivelada. Através da análise da aceleração dinâmica, você pode dizer a maneira como o dispositivo está se movendo. Por exemplo, a prancha de auto-equilíbrio ou hoverboard aplica o sensor de aceleração e o giroscópio para filtro de Kalman e correção de postura.
ADXL345
O ADXL345 é um acelerômetro de 3 eixos pequeno, fino e de baixa potência com medição de alta resolução (13 bits) de até ± 16 g. Os dados de saída digital são formatados como complemento de dois de 16 bits e são acessíveis por meio de uma interface digital SPI (3 ou 4 fios) ou I2C. Neste experimento, a interface digital I2C é usada.
É adequado para medir a aceleração estática da gravidade em aplicações de detecção de inclinação, bem como a aceleração dinâmica resultante de movimento ou choque. Sua alta resolução (4 mg / LSB) permite a medição da mudança de inclinação em menos de 1,0 °. E a excelente sensibilidade (3,9mg / LSB @ 2g) fornece uma saída de alta precisão de até ± 16g.
Como funciona ADXL345
O ADXL345 detecta a aceleração com o componente de detecção na frente e, em seguida, o componente de detecção de sinal elétrico o transforma em sinal elétrico, que é analógico. Em seguida, o adaptador AD integrado no módulo converterá o sinal analógico em digital.
O X_OUT, Y_OUT e Z_OUT são os valores nos eixos X, Y e Z respectivamente. Coloque o módulo voltado para cima: Z_OUT pode atingir + 1g no máximo, o mínimo de X_OUT é -1g na direção do Ax e o mínimo de Y_OUT é -1g na direção Ay. Por outro lado, vire o módulo de cabeça para baixo: o mínimo de Z_OUT é -1g, o máximo de X_OUT é + 1g na direção Ax e o máximo de Y_OUT é + 1g na direção Ay., como mostrado abaixo. Gire o módulo ADXL345 e você verá a mudança de três valores.
quando o canal A muda de nível alto para nível baixo, se o canal B é de nível alto, indica que o codificador rotativo gira no sentido horário (CW); se naquele momento o canal B estiver em nível baixo, significa que gira no sentido anti-horário (CCW). Portanto, se lermos o valor do canal B quando o canal A estiver em nível baixo, podemos saber em qual direção o codificador rotativo gira.
Princípio: Veja o diagrama esquemático do módulo Codificador Rotativo abaixo. A partir dele podemos ver que o pino 3 do codificador rotativo, ou seja, CLK no módulo, é o canal B. O pino 5, que é DT, é o canal A. Para saber a direção de rotação do gravador, basta ler o valor de CLK e DT.
Há um chip regulador de tensão de 3,3 V no circuito, então você pode alimentar o módulo com 5 V ou 3,3 V.
Como o SDO foi conectado ao GND, o endereço I2C do ADXL345 é 0x53, 0xA6 para gravação, 0xA7 para leitura
Função do pino do módulo ADXL345.
Etapa 3: Procedimentos
Etapa 1. Construir o circuito.
Passo 2:
Baixe o código em
Etapa 3:
Faça upload do esboço para a placa Arduino Uno
Clique no ícone Upload para fazer upload do código para o painel de controle.
Se "Upload concluído" aparecer na parte inferior da janela, significa que o esboço foi carregado com sucesso.
Após o upload, abra o Serial Monitor, onde você pode ver os dados detectados. Quando a aceleração do módulo muda, a figura muda de acordo na janela.
Etapa 4: Código
// ADXL335
/********************************
ADXL335
nota: vcc5v, mas ADXL335 Vs é 3,3 V
O circuito:
5V: VCC
analógico 0: eixo x
analógico 1: eixo y
analógico 2: eixo z
Depois de queimar o
programa, abra a janela de depuração do monitor serial, onde você pode ver os dados detectados sendo exibidos. Quando a aceleração varia, o valor irá variar de acordo.
*********************************
/O email:
//Website:www.primerobotics.in
const int xpin =
A0; // eixo x do acelerômetro
const int ypin =
A1; // eixo y
const int zpin =
A2; // eixo z (apenas em modelos de 3 eixos)
void setup ()
{
// inicializa as comunicações seriais:
Serial.begin (9600);
}
void loop ()
{
int x = analogRead (xpin); // ler do xpin
atraso (1); //
int y = analogRead (ypin); // ler de ypin
atraso (1);
int z = analogRead (zpin); // ler do zpin
float zero_G = 338,0; // fonte de alimentação ADXL335
por Vs 3,3 V: 3,3 V / 5 V * 1024 = 676/2 = 338
//Serial.print(x);
//Serial.print("\t ");
//Serial.print(y);
//Serial.print("\t ");
//Serial.print(z);
//Serial.print("\n ");
flutuador
zero_Gx = 331,5; // a saída zero_G do eixo x: (x_max + x_min) / 2
flutuador
zero_Gy = 329,5; // a saída zero_G do eixo y: (y_max + y_min) / 2
float zero_Gz = 340.0; // o
saída zero_G do eixo z: (z_max + z_min) / 2
escala flutuante =
67,6; // fonte de alimentação por Vs 3,3 V: 3,3 V / 5 V * 1024 / 3,3 V * 330 mv / g = 67,6 g
float scale_x =
65; // a escala do eixo x: x_max / 3,3v * 330mv / g
float scale_y =
68,5; // a escala do eixo y: y_max / 3,3v * 330mv / g
float scale_z =
68; // a escala do eixo z: z_max / 3,3v * 330mv / g
Serial.print (((float) x
- zero_Gx) / escala_x); // imprime o valor x no monitor serial
Serial.print ("\ t");
Serial.print (((float) y
- zero_Gy) / escala_y); // imprime o valor y no monitor serial
Serial.print ("\ t");
Serial.print (((float) z
- zero_Gz) / scale_z); // imprime o valor z no monitor serial
Serial.print ("\ n");
atraso (1000); // aguarde 1 segundo
}
Etapa 5: Análise de código
O código para o experimento ADXL345 inclui 3 partes: inicializar cada porta e dispositivo, adquirir e armazenar dados enviados dos sensores e converter os dados.
Recomendado:
DIY -- Como fazer um robô aranha que pode ser controlado usando um smartphone usando o Arduino Uno: 6 etapas
DIY || Como fazer um robô aranha que pode ser controlado com smartphone usando o Arduino Uno: Ao fazer um robô aranha, pode-se aprender muitas coisas sobre robótica. Como fazer robôs é divertido e também desafiador. Neste vídeo vamos mostrar a vocês como fazer um robô aranha, que podemos operar usando nosso smartphone (Androi
Medição de aceleração usando ADXL345 e partícula de fóton: 4 etapas
Medição de aceleração usando ADXL345 e partícula de fóton: O ADXL345 é um acelerômetro de 3 eixos pequeno, fino e ultrabaixo com medição de alta resolução (13 bits) de até ± 16 g. Os dados de saída digital são formatados como complemento de dois de 16 bits e são acessíveis por meio da interface digital I2C. Ele mede o
Medição de aceleração usando ADXL345 e Raspberry Pi: 4 etapas
Medição de aceleração usando ADXL345 e Raspberry Pi: O ADXL345 é um acelerômetro de 3 eixos pequeno, fino e ultrabaixo com medição de alta resolução (13 bits) de até ± 16 g. Os dados de saída digital são formatados como complemento de dois de 16 bits e são acessíveis por meio da interface digital I2C. Ele mede o
Medição de aceleração usando ADXL345 e Arduino Nano: 4 etapas
Medição de aceleração usando ADXL345 e Arduino Nano: O ADXL345 é um acelerômetro de 3 eixos pequeno, fino e ultrabaixo com medição de alta resolução (13 bits) de até ± 16 g. Os dados de saída digital são formatados como complemento de dois de 16 bits e são acessíveis por meio da interface digital I2C. Ele mede o
Como fazer um drone usando o Arduino UNO. Faça um quadricóptero usando um microcontrolador: 8 etapas (com imagens)
Como fazer um drone usando o Arduino UNO. Faça um Quadcopter Usando Microcontrolador: IntroduçãoVisite Meu Canal do YoutubeUm Drone é um gadget (produto) muito caro para comprar. Neste post irei discutir, como faço isso mais barato ?? E como você pode fazer seu próprio assim a um preço barato … Bem, na Índia, todos os materiais (motores, ESCs