Tabla de contenido:
- Paso 1: componentes
- Paso 2: Principio
- Paso 3: procedimientos
- Paso 4: Código
- Paso 5: Análisis de código
Video: ADXL345 usando Arduino Uno R3: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
En esta lección, aprenderemos a utilizar el sensor de aceleración ADXL345.
Paso 1: componentes
- Placa Arduino Uno * 1
- Cable USB * 1
- ADXL345 * 1
- Tablero de pruebas * 1
- Cables de puente
Paso 2: Principio
Se utiliza un acelerómetro para medir la fuerza generada durante la aceleración. La más fundamental es la aceleración de la gravedad comúnmente conocida, que es de 1 g.
Al medir la aceleración causada por la gravedad, puede calcular el ángulo de inclinación del dispositivo a la superficie nivelada. Mediante el análisis de la aceleración dinámica, puede saber la forma en que se mueve el dispositivo. Por ejemplo, una tabla autoequilibrada o una tabla flotante aplica el sensor de aceleración y el giroscopio para el filtro Kalman y la corrección de la postura.
ADXL345
El ADXL345 es un acelerómetro de 3 ejes pequeño, delgado y de baja potencia con medición de alta resolución (13 bits) de hasta ± 16 g. Los datos de salida digital están formateados como complemento a dos de 16 bits y se puede acceder a ellos a través de una interfaz digital SPI (3 o 4 cables) o I2C. En este experimento, se utiliza la interfaz digital I2C.
Es muy adecuado para medir la aceleración estática de la gravedad en aplicaciones de detección de inclinación, así como la aceleración dinámica resultante de movimientos o golpes. Su alta resolución (4 mg / LSB) permite la medición del cambio de inclinación en menos de 1.0 °. Y la excelente sensibilidad (3,9 mg / LSB a 2 g) proporciona una salida de alta precisión de hasta ± 16 g.
Cómo funciona ADXL345
El ADXL345 detecta la aceleración con el componente sensor en la parte delantera, y luego el componente sensor de señal eléctrica la cambia a señal eléctrica, que es analógica. A continuación, el adaptador AD integrado en el módulo convertirá la señal analógica en digital.
X_OUT, Y_OUT y Z_OUT son los valores en los ejes X, Y y Z respectivamente. Coloque el módulo boca arriba: Z_OUT puede alcanzar + 1g como máximo, el mínimo de X_OUT es -1g hacia la dirección del Hacha y el mínimo de Y_OUT es -1g hacia la dirección Ay. Por otro lado, voltee el módulo al revés: el mínimo de Z_OUT es -1g, el máximo de X_OUT es + 1g hacia la dirección Ax, y el máximo de Y_OUT es + 1g hacia la dirección Ay., Como se muestra abajo. Gire el módulo ADXL345 y verá el cambio de tres valores.
cuando el canal A cambia de nivel alto a nivel bajo, si el canal B es de nivel alto, indica que el codificador giratorio gira en el sentido de las agujas del reloj (CW); si en ese momento el canal B está en nivel bajo, significa que gira en sentido antihorario (CCW). Entonces, si leemos el valor del canal B cuando el canal A está en nivel bajo, podemos saber en qué dirección gira el codificador rotatorio.
Principio: consulte el diagrama esquemático del módulo Codificador rotatorio a continuación. En él podemos ver que el pin 3 del codificador rotatorio, a saber CLK en el módulo, es el canal B. El pin 5, que es DT, es el canal A. Para conocer la dirección de rotación de la grabadora, simplemente lea el valor de CLK y DT.
Hay un chip regulador de voltaje de 3.3v en el circuito, por lo que puede alimentar el módulo con 5V o 3.3V.
Dado que SDO se ha conectado a GND, la dirección I2C del ADXL345 es 0x53, 0xA6 para escritura, 0xA7 para lectura
Función de pin del módulo ADXL345.
Paso 3: procedimientos
Paso 1. Construye el circuito.
Paso 2:
Descarga el código de
Paso 3:
Sube el boceto a la placa Arduino Uno
Haga clic en el icono Cargar para cargar el código en el tablero de control.
Si aparece "Carga finalizada" en la parte inferior de la ventana, significa que el boceto se cargó correctamente.
Después de cargar, abra Serial Monitor, donde puede ver los datos detectados. Cuando cambia la aceleración del módulo, la figura cambiará en consecuencia en la ventana.
Paso 4: Código
// ADXL335
/********************************
ADXL335
nota: vcc5v, pero ADXL335 Vs es 3.3V
El circuito:
5 V: VCC
analógico 0: eje x
analógico 1: eje y
analógico 2: eje z
Después de quemar el
programa, abra la ventana de depuración del monitor en serie, donde puede ver los datos detectados que se muestran. Cuando la aceleración varía, la cifra variará en consecuencia.
*********************************
/Correo electrónico:
// Sitio web:www.primerobotics.in
const int xpin =
A0; // eje x del acelerómetro
const int ypin =
A1; // eje y
const int zpin =
A2; // eje z (solo en modelos de 3 ejes)
configuración vacía ()
{
// inicializar las comunicaciones en serie:
Serial.begin (9600);
}
bucle vacío ()
{
int x = analogRead (xpin); // leer desde xpin
retraso (1); //
int y = analogRead (ypin); // leer de ypin
retraso (1);
int z = analogRead (zpin); // leer de zpin
flotar zero_G = 338.0; // Fuente de alimentación ADXL335
por Vs 3.3V: 3.3V / 5V * 1024 = 676/2 = 338
//Serial.print(x);
//Serial.print("\t ");
//Serial.print(y);
//Serial.print("\t ");
//Serial.print(z);
//Serial.print("\n ");
flotador
zero_Gx = 331.5; // la salida zero_G del eje x: (x_max + x_min) / 2
flotador
zero_Gy = 329.5; // la salida zero_G del eje y: (y_max + y_min) / 2
float zero_Gz = 340.0; // el
salida zero_G del eje z: (z_max + z_min) / 2
escala flotante =
67.6; // fuente de alimentación por Vs 3.3V: 3.3v / 5v * 1024 / 3.3v * 330mv / g = 67.6g
flotar scale_x =
65; // la escala del eje x: x_max / 3.3v * 330mv / g
flotar scale_y =
68.5; // la escala del eje y: y_max / 3.3v * 330mv / g
flotar scale_z =
68; // la escala del eje z: z_max / 3.3v * 330mv / g
Serial.print (((flotante) x
- zero_Gx) / scale_x); // imprime el valor x en el monitor de serie
Serial.print ("\ t");
Serial.print (((float) y
- zero_Gy) / scale_y); // imprime el valor y en el monitor de serie
Serial.print ("\ t");
Serial.print (((flotante) z
- zero_Gz) / scale_z); // imprime el valor z en el monitor serial
Serial.print ("\ n");
retraso (1000); // espera 1 segundo
}
Paso 5: Análisis de código
El código para el experimento ADXL345 incluye 3 partes: inicializar cada puerto y dispositivo, adquirir y almacenar los datos enviados desde los sensores y convertir los datos.
Recomendado:
Control llevado en todo el mundo usando Internet usando Arduino: 4 pasos
Control dirigido en todo el mundo usando Internet usando Arduino: Hola, soy Rithik. Vamos a hacer un led controlado por internet usando tu teléfono. Vamos a usar software como Arduino IDE y Blynk. Es simple y si lo lograste puedes controlar tantos componentes electrónicos como quieras Cosas que necesitamos: Hardware:
Acelerómetro de 3 ejes, ADXL345 con Raspberry Pi usando Python: 6 pasos
Acelerómetro de 3 ejes, ADXL345 con Raspberry Pi usando Python: pensando en un dispositivo que pueda verificar el punto en el que su Offroader está inclinado para demorarse. ¿No sería agradable si alguien se ajusta cuando existe la posibilidad de volcarse? Obviamente, sí. Sería tru
Cómo cargar el programa Arduino Pro Mini 328P usando Arduino Uno: 6 pasos
Cómo cargar el programa Arduino Pro Mini 328P usando Arduino Uno: Arduino Pro Mini es el aglomerado más pequeño que tiene 14 pines de E / S, funciona en 3.3 voltios - 5 voltios DC y es fácil de cargar el código en el dispositivo de programación. puertos de entrada / salida digital RX, TX, D2 ~ D13, 8 puertos de entrada analógica A0 ~ A7 1
Cómo hacer un dron usando Arduino UNO »Wiki Ùtil Hacer un cuadricóptero usando un microcontrolador: 8 pasos (con imágenes)
Cómo hacer un dron usando Arduino UNO »Wiki Ùtil Hacer un cuadricóptero usando un microcontrolador: Introducción Visite mi canal de Youtube Un dron es un dispositivo (producto) muy caro de comprar. En este post voy a discutir, ¿cómo lo hago a bajo precio? ¿Y cómo puedes hacer el tuyo así a un precio económico? Bueno, en la India todos los materiales (motores, ESC
Neopixel Ws2812 Rainbow LED Glow con M5stick-C - Ejecutando Rainbow en Neopixel Ws2812 usando M5stack M5stick C usando Arduino IDE: 5 pasos
Neopixel Ws2812 Rainbow LED Glow con M5stick-C | Ejecutando Rainbow en Neopixel Ws2812 Usando M5stack M5stick C Usando Arduino IDE: Hola chicos, en este instructables aprenderemos a usar LED neopixel ws2812 o tira de LED o matriz de LED o anillo de LED con placa de desarrollo m5stack m5stick-C con Arduino IDE y haremos un patrón de arco iris con él