Com Connectar Un Acceleròmetre A Arduino

Taula de continguts:

Com Connectar Un Acceleròmetre A Arduino
Com Connectar Un Acceleròmetre A Arduino

Vídeo: Com Connectar Un Acceleròmetre A Arduino

Vídeo: Com Connectar Un Acceleròmetre A Arduino
Vídeo: Создайте интерфейс акселерометра Arduino и MMA7361 2024, De novembre
Anonim

Aquesta vegada ens ocuparem de connectar l’acceleròmetre triaxial analògic ADXL335 a l’Arduino.

Acceleròmetre analògic ADXL335
Acceleròmetre analògic ADXL335

Necessari

  • - Arduino;
  • - acceleròmetre ADXL335;
  • - un ordinador personal amb l'entorn de desenvolupament IDE d'Arduino.

Instruccions

Pas 1

Els acceleròmetres s’utilitzen per determinar el vector d’acceleració. L’acceleròmetre ADXL335 té tres eixos i, gràcies a això, pot determinar el vector d’acceleració en un espai tridimensional. A causa del fet que la força de la gravetat també és un vector, l’acceleròmetre pot determinar la seva pròpia orientació en l’espai tridimensional en relació amb el centre de la Terra.

La il·lustració mostra imatges del passaport (https://www.analog.com/static/imported-files/data_sheets/ADXL335.pdf) de l’acceleròmetre ADXL335. A continuació es mostren els eixos de coordenades de la sensibilitat de l’acceleròmetre en relació amb la ubicació geomètrica del cos del dispositiu a l’espai, així com una taula de valors de tensió de 3 canals de l’acceleròmetre en funció de la seva orientació a l’espai. Les dades de la taula es donen per a un sensor en repòs.

Vegem de prop el que ens mostra l’acceleròmetre. Deixeu que el sensor estigui horitzontalment, per exemple, sobre una taula. Llavors, la projecció del vector d’acceleració serà igual a 1g al llarg de l’eix Z, o Zout = 1g. Els altres dos eixos tindran zeros: Xout = 0 i Yout = 0. Quan es giri el sensor "d'esquena", es dirigirà en la direcció oposada en relació amb el vector de gravetat, és a dir. Zout = -1 g. De la mateixa manera, es prenen mesures en els tres eixos. És clar que l’acceleròmetre es pot col·locar com es desitgi a l’espai, de manera que agafarem lectures diferents de zero dels tres canals.

Si la sonda es sacseja fortament al llarg de l'eix Z vertical, el valor Zout serà superior a "1g". L'acceleració màxima mesurable és de "3 g" en cadascun dels eixos en qualsevol direcció (és a dir, amb "més" i "menys").

Eixos de sensibilitat de l’acceleròmetre i taula de valors de sortida
Eixos de sensibilitat de l’acceleròmetre i taula de valors de sortida

Pas 2

Crec que hem descobert el principi de funcionament de l’acceleròmetre. Vegem ara el diagrama de connexions.

El xip acceleròmetre analògic ADXL335 és bastant petit i està allotjat en un paquet BGA, i és difícil muntar-lo en una placa a casa. Per tant, utilitzaré un mòdul GY-61 ja preparat amb un acceleròmetre ADXL335. Aquests mòduls a les botigues en línia xineses costen gairebé un cèntim.

Per alimentar l’acceleròmetre, cal subministrar una tensió de +3, 3 V al pin VCC del mòdul. Els canals de mesura del sensor estan connectats als pins analògics de l’Arduino, per exemple, "A0", "A1" i " A2 ". Aquest és tot el circuit:)

Esquema de cablejat de l’acceleròmetre ADXL335 a Arduno
Esquema de cablejat de l’acceleròmetre ADXL335 a Arduno

Pas 3

Carregem aquest esbós a la memòria Arduino. Llegirem les lectures de les entrades analògiques de tres canals, les convertirem a voltatge i les enviarem al port sèrie.

L'Arduino té un ADC de 10 bits i el voltatge màxim permès dels pins és de 5 volts. Les tensions mesurades es codifiquen amb bits que només poden prendre 2 valors - 0 o 1. Això significa que tot el rang de mesura es dividirà per (1 + 1) a la 10a potència, és a dir, en 1024 segments iguals.

Per convertir les lectures a volts, heu de dividir cada valor mesurat a l'entrada analògica per 1024 (segments) i, a continuació, multiplicar per 5 (volts).

Vegem què prové realment de l’acceleròmetre amb l’eix Z com a exemple (l’última columna). Quan el sensor es col·loca horitzontalment i mira cap amunt, els números arriben (2,03 +/- 0,01). Per tant, això hauria de correspondre a l'acceleració "+ 1 g" al llarg de l'eix Z i a un angle de 0 graus. Gireu el sensor. Arriben els números (1, 69 +/- 0, 01), que haurien de correspondre a "-1g" i a un angle de 180 graus.

Esbós de lectura de l’acceleròmetre
Esbós de lectura de l’acceleròmetre

Pas 4

Agafem els valors de l’acceleròmetre en angles de 90 i 270 graus i els introduïm a la taula. La taula mostra els angles de rotació de l’acceleròmetre (columna "A") i els valors Zout corresponents en volts (columna "B").

Per a més claredat, es mostra un diagrama de tensions a la sortida Zout enfront de l’angle de rotació. El camp blau és el rang en repòs (a 1 g d'acceleració). El quadre rosa del gràfic és un marge de manera que podem mesurar l’acceleració fins a + 3 g i fins a -3 g.

Amb una rotació de 90 graus, l’eix Z té una acceleració zero. Aquells. un valor d’1,67 volts és un zero condicional Zo per a l’eix Z. A continuació, podeu trobar l’acceleració així:

g = Zout - Zo / sensibilitat_z, aquí Zout és el valor mesurat en milivolts, Zo és el valor a l’acceleració zero en milivolts, sensibilitat_z és la sensibilitat del sensor al llarg de l’eix Z. Calibreu l’acceleròmetre i calculeu el valor de sensibilitat específicament per al vostre sensor que utilitza la fórmula:

sensibilitat_z = [Z (0 graus) - Z (90 graus)] * 1000. En aquest cas, la sensibilitat de l’acceleròmetre al llarg de l’eix Z = (2, 03 - 1, 68) * 1000 = 350 mV. De la mateixa manera, caldrà calcular la sensibilitat per als eixos X i Y.

La columna "C" de la taula mostra l'acceleració calculada per a cinc angles amb una sensibilitat de 350. Com podeu veure, coincideixen pràcticament amb els que es mostren a la figura 1.

Correspondència dels angles de rotació de l’acceleròmetre amb les lectures
Correspondència dels angles de rotació de l’acceleròmetre amb les lectures

Pas 5

Recordant el curs bàsic de geometria, obtenim la fórmula per calcular els angles de rotació de l’acceleròmetre:

angle_X = arctg [sqrt (Gz ^ 2 + Gy ^ 2) / Gx].

Els valors estan en radians. Per convertir-los en graus, divideix per Pi i multiplica per 180.

Com a resultat, a la il·lustració es mostra un esbós complet que calcula els angles d’acceleració i rotació de l’acceleròmetre al llarg de tots els eixos. Els comentaris ofereixen explicacions sobre el codi del programa.

En sortir al port "Serial.print ()", el caràcter "\ t" indica un caràcter de tabulació de manera que les columnes siguin uniformes i els valors es localitzin l'una sota l'altra. "+" significa concatenació (concatenació) de cadenes. A més, l'operador "String ()" indica explícitament al compilador que el valor numèric s'ha de convertir en una cadena. L'operador round () arrodoneix la cantonada fins a l'1 grau més proper.

Un esbós que calcula l’acceleració i els angles de l’acceleròmetre
Un esbós que calcula l’acceleració i els angles de l’acceleròmetre

Pas 6

Per tant, vam aprendre a agafar i processar dades de l’acceleròmetre analògic ADXL335 mitjançant l’Arduino. Ara podem utilitzar l’acceleròmetre en els nostres dissenys.

Recomanat: