Sommario:

ADXL345 Utilizzo di Arduino Uno R3: 5 passaggi
ADXL345 Utilizzo di Arduino Uno R3: 5 passaggi

Video: ADXL345 Utilizzo di Arduino Uno R3: 5 passaggi

Video: ADXL345 Utilizzo di Arduino Uno R3: 5 passaggi
Video: How to Use Accelerometers on the Arduino - Ultimate Guide to the Arduino #42 2024, Luglio
Anonim
ADXL345 Utilizzo di Arduino Uno R3
ADXL345 Utilizzo di Arduino Uno R3

In questa lezione impareremo come utilizzare il sensore di accelerazione ADXL345.

Passaggio 1: Componenti

- Scheda Arduino Uno * 1

- Cavo USB * 1

- ADXL345 *1

- Tagliere * 1

- Ponticelli

Fase 2: Principio

Un accelerometro viene utilizzato per misurare la forza generata durante l'accelerazione. Il più fondamentale è l'accelerazione di gravità comunemente nota che è di 1 g.

Misurando l'accelerazione causata dalla gravità, è possibile calcolare l'angolo di inclinazione del dispositivo rispetto alla superficie piana. Analizzando l'accelerazione dinamica, puoi capire come si muove il dispositivo. Ad esempio, la scheda autobilanciante o l'hoverboard applica il sensore di accelerazione e il giroscopio per il filtro Kalman e la correzione della postura.

ADXL345

L'ADXL345 è un accelerometro a 3 assi piccolo, sottile, a bassa potenza con misurazione ad alta risoluzione (13 bit) fino a ±16 g. I dati di uscita digitale sono formattati come complemento a due a 16 bit e sono accessibili tramite un'interfaccia digitale SPI (3 o 4 fili) o I2C. In questo esperimento viene utilizzata l'interfaccia digitale I2C.

È particolarmente adatto per misurare l'accelerazione statica di gravità nelle applicazioni di rilevamento dell'inclinazione, nonché l'accelerazione dinamica risultante dal movimento o da urti. La sua alta risoluzione (4 mg/LSB) consente la misurazione della variazione di inclinazione di meno di 1,0°. E l'eccellente sensibilità (3,9 mg/LSB a 2 g) fornisce un'uscita ad alta precisione fino a ± 16 g.

Come funziona ADXL345

L'ADXL345 rileva l'accelerazione con il componente di rilevamento nella parte anteriore, quindi il componente di rilevamento del segnale elettrico lo cambia in segnale elettrico, che è analogico. Successivamente, l'adattatore AD integrato nel modulo convertirà il segnale analogico in digitale.

X_OUT, Y_OUT e Z_OUT sono i valori rispettivamente sugli assi X, Y e Z. Posiziona il modulo a faccia in su: Z_OUT può raggiungere al massimo +1 g, il minimo di X_OUT è -1 g verso la direzione Ax e il minimo di Y_OUT è -1 g verso la direzione Ay. Capovolgere invece il modulo: il minimo di Z_OUT è -1g, il massimo di X_OUT è +1g verso la direzione Ax e il massimo di Y_OUT è +1g verso la direzione Ay., come mostrato di seguito. Ruota il modulo ADXL345 e vedrai il cambiamento di tre valori.

quando il canale A passa da livello alto a livello basso, se il canale B è livello alto, indica che l'encoder rotativo gira in senso orario (CW); se in quel momento il canale B è di livello basso, significa che gira in senso antiorario (CCW). Quindi, se leggiamo il valore del canale B quando il canale A è di livello basso, possiamo sapere in quale direzione ruota l'encoder rotativo.

Principio: vedere il diagramma schematico del modulo Encoder rotativo di seguito. Da esso possiamo vedere che il pin 3 dell'encoder rotativo, ovvero CLK sul modulo, è il canale B. Il pin 5, che è DT, è il canale A. Per conoscere il senso di rotazione del registratore basta leggere il valore di CLK e DT.

Nel circuito è presente un chip regolatore di tensione da 3,3 V, quindi è possibile alimentare il modulo con 5 V o 3,3 V.

Poiché SDO è stato collegato a GND, l'indirizzo I2C dell'ADXL345 è 0x53, 0xA6 per la scrittura, 0xA7 per la lettura

Funzione pin del modulo ADXL345.

Passaggio 3: procedure

Passaggio 1. Costruisci il circuito.

Passo 2:

Scarica il codice da

Passaggio 3:

Carica lo schizzo sulla scheda Arduino Uno

Fare clic sull'icona Carica per caricare il codice sulla scheda di controllo.

Se viene visualizzato "Caricamento completato" nella parte inferiore della finestra, significa che lo schizzo è stato caricato con successo.

Dopo il caricamento, apri Serial Monitor, dove puoi vedere i dati rilevati. Quando l'accelerazione del modulo cambia, la figura cambierà di conseguenza sulla finestra.

Passaggio 4: codice

Codice
Codice

//ADXL335

/********************************

ADXL335

nota: vcc5v, ma ADXL335 Vs è 3,3 V

Il circuito:

5V: VCC

analogico 0: asse x

analogico 1: asse y

analogico 2: asse z

Dopo aver bruciato il

programma, aprire la finestra di debug del monitor seriale, dove è possibile visualizzare i dati rilevati. Quando l'accelerazione varia, la cifra varierà di conseguenza.

*********************************

/E-mail:

//Sito web:www.primerobotics.in

const int xpin =

A0; // asse x dell'accelerometro

const int ypin =

A1; // asse y

const int zpin =

A2; // asse z (solo su modelli a 3 assi)

configurazione nulla()

{

// inizializza le comunicazioni seriali:

Serial.begin(9600);

}

ciclo vuoto()

{

int x = analogRead(xpin); //leggi da xpin

ritardo(1); //

int y = analogRead(ypin); //leggi da ypin

ritardo(1);

int z = analogRead(zpin); //leggi da zpin

float zero_G = 338.0; //Alimentatore ADXL335

da 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");

galleggiante

zero_Gx=331.5;//l'uscita zero_G dell'asse x:(x_max + x_min)/2

galleggiante

zero_Gy=329,5;//l'uscita zero_G dell'asse y:(y_max + y_min)/2

float zero_Gz=340.0;//il

zero_G uscita dell'asse z:(z_max + z_min)/2

scala galleggiante =

67,6; // alimentazione da Vs 3,3 V: 3,3 v /5 v * 1024/3,3 v * 330 mv/g = 67,6 g

float scale_x =

65;//la scala dell'asse x: x_max/3.3v*330mv/g

float scale_y =

68,5;//la scala dell'asse y: y_max/3.3v*330mv/g

float scale_z =

68;//la scala dell'asse z: z_max/3.3v*330mv/g

Serial.print(((float)x

- zero_Gx)/scala_x); //stampa il valore x sul monitor seriale

Serial.print("\t");

Serial.print(((float)y

- zero_Gy)/scale_y); //stampa il valore y sul monitor seriale

Serial.print("\t");

Serial.print(((float)z

- zero_Gz)/scala_z); //stampa il valore z sul monitor seriale

Serial.print("\n");

ritardo(1000); //aspetta 1 secondo

}

Passaggio 5: Analisi del codice

Il codice per l'esperimento ADXL345 comprende 3 parti: inizializzare ogni porta e dispositivo, acquisire e memorizzare i dati inviati dai sensori e convertire i dati.

Consigliato: