Table des matières:
Vidéo: ADXL345 en utilisant Arduino Uno R3 : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Dans cette leçon, nous allons apprendre à utiliser le capteur d'accélération ADXL345.
Étape 1: Composants
-Carte Arduino Uno * 1
- Câble USB * 1
-ADXL345 * 1
- Planche à pain * 1
- Cavaliers
Étape 2: Principe
Un accéléromètre est utilisé pour mesurer la force générée lors de l'accélération. La plus fondamentale est l'accélération de la gravité communément connue qui est de 1g.
En mesurant l'accélération causée par la gravité, vous pouvez calculer l'angle d'inclinaison de l'appareil par rapport à la surface plane. En analysant l'accélération dynamique, vous pouvez déterminer la façon dont l'appareil se déplace. Par exemple, une planche à équilibrage automatique ou un hoverboard applique le capteur d'accélération et le gyroscope pour le filtre de Kalman et la correction de la posture.
ADXL345
L'ADXL345 est un petit accéléromètre mince, à faible consommation d'énergie, à 3 axes avec une mesure haute résolution (13 bits) jusqu'à ±16 g. Les données de sortie numériques sont formatées en complément à deux de 16 bits et sont accessibles via une interface numérique SPI (3 ou 4 fils) ou I2C. Dans cette expérience, l'interface numérique I2C est utilisée.
Il est bien adapté pour mesurer l'accélération statique de la gravité dans les applications de détection d'inclinaison, ainsi que l'accélération dynamique résultant d'un mouvement ou d'un choc. Sa haute résolution (4 mg/LSB) permet la mesure du changement d'inclinaison de moins de 1,0°. Et l'excellente sensibilité (3,9 mg/LSB @2g) fournit une sortie de haute précision jusqu'à ±16g.
Comment fonctionne ADXL345
L'ADXL345 détecte l'accélération avec le composant de détection à l'avant, puis le composant de détection de signal électrique la transforme en signal électrique, qui est analogique. Ensuite, l'adaptateur AD intégré au module convertira le signal analogique en signal numérique.
X_OUT, Y_OUT et Z_OUT sont respectivement les valeurs des axes X, Y et Z. Placez le module face visible: Z_OUT peut atteindre +1g au maximum, le minimum de X_OUT est de -1g vers la direction Ax, et le minimum de Y_OUT est de -1g vers la direction Ay. D'autre part, retournez le module: le minimum de Z_OUT est de -1g, le maximum de X_OUT est de +1g vers la direction Ax, et le maximum de Y_OUT est de +1g vers la direction Ay., comme indiqué ci-dessous. Faites pivoter le module ADXL345 et vous verrez le changement de trois valeurs.
lorsque le canal A passe du niveau haut au niveau bas, si le canal B est au niveau haut, cela indique que l'encodeur rotatif tourne dans le sens des aiguilles d'une montre (CW); si à ce moment le canal B est de niveau bas, cela signifie qu'il tourne dans le sens antihoraire (CCW). Ainsi, si nous lisons la valeur du canal B lorsque le canal A est de niveau bas, nous pouvons savoir dans quel sens tourne l'encodeur rotatif.
Principe: Voir le schéma de principe du module encodeur rotatif ci-dessous. De là, nous pouvons voir que la broche 3 de l'encodeur rotatif, à savoir CLK sur le module, est le canal B. La broche 5, qui est DT, est le canal A. Pour connaître le sens de rotation de l'enregistreur, il suffit de lire la valeur de CLK et DT.
Il y a une puce de régulateur de tension de 3,3 V dans le circuit, vous pouvez donc alimenter le module avec 5 V ou 3,3 V.
Puisque SDO a été connecté à GND, l'adresse I2C de l'ADXL345 est 0x53, 0xA6 pour l'écriture, 0xA7 pour la lecture
Fonction de broche du module ADXL345.
Étape 3: Procédures
Étape 1. Construisez le circuit.
Étape 2:
Téléchargez le code sur
Étape 3:
Téléchargez le croquis sur la carte Arduino Uno
Cliquez sur l'icône Télécharger pour télécharger le code sur le tableau de commande.
Si « Téléchargement terminé » apparaît en bas de la fenêtre, cela signifie que le croquis a été téléchargé avec succès.
Après le téléchargement, ouvrez Serial Monitor, où vous pouvez voir les données détectées. Lorsque l'accélération du module change, le chiffre change en conséquence sur la fenêtre.
Étape 4: Coder
//ADXL335
/********************************
ADXL335
remarque:vcc5v, mais ADXL335 Vs est de 3,3 V
Le circuit:
5V: VCC
analogique 0: axe x
analogique 1: axe y
analogique 2: axe z
Après avoir brûlé le
programme, ouvrez la fenêtre de débogage du moniteur série, où vous pouvez voir les données détectées s'afficher. Lorsque l'accélération varie, le chiffre varie en conséquence.
*********************************
/E-mail:
//Site Web: www.primerobotics.in
const int xpin =
A0; // axe x de l'accéléromètre
const int ypin =
A1; // axe des y
const int zpin =
A2; // axe z (uniquement sur les modèles 3 axes)
void setup()
{
// initialise les communications série:
Serial.begin(9600);
}
boucle vide()
{
int x = analogRead(xpin); // lire à partir de xpin
retard(1); //
int y = analogRead(ypin); //lire depuis ypin
retard(1);
int z = analogRead(zpin); // lire à partir de zpin
float zero_G = 338,0; //Alimentation ADXL335
par Vs 3.3V:3.3V/5V*1024=676/2=338
//Série.print(x);
//Série.print("\t");
//Série.print(y);
//Série.print("\t");
//Série.print(z);
//Série.print("\n");
flotter
zero_Gx=331,5;//la sortie zero_G de l'axe x:(x_max + x_min)/2
flotter
zero_Gy=329.5;//la sortie zero_G de l'axe y:(y_max + y_min)/2
float zero_Gz=340.0;//le
zero_G sortie de l'axe z:(z_max + z_min)/2
échelle flottante =
67,6; // alimentation par Vs 3,3 V: 3,3 v /5v *1024/3,3v *330mv/g =67,6g
float scale_x =
65;//l'échelle de l'axe x: x_max/3.3v*330mv/g
float scale_y =
68,5; // l'échelle de l'axe des y: y_max/3,3 v*330 mv/g
échelle flottante_z =
68; // l'échelle de l'axe z: z_max/3.3v*330mv/g
Serial.print(((float)x
- zero_Gx)/scale_x); // affiche la valeur x sur le moniteur série
Serial.print("\t");
Serial.print(((float)y
- zero_Gy)/scale_y); // affiche la valeur y sur le moniteur série
Serial.print("\t");
Serial.print(((float)z
- zero_Gz)/scale_z); // affiche la valeur z sur le moniteur série
Serial.print("\n");
retard(1000); // attendre 1 seconde
}
Étape 5: Analyse du code
Le code de l'expérience ADXL345 comprend 3 parties: initialiser chaque port et appareil, acquérir et stocker les données envoyées par les capteurs et convertir les données.
Conseillé:
Câble de programmation DIY utilisant Arduino Uno - Baofeng UV-9R Plus : 6 étapes (avec photos)
Câble de programmation de bricolage utilisant Arduino Uno - Baofeng UV-9R Plus : Salut tout le monde, voici un guide simple sur la façon de convertir votre câble casque/écouteur Baofeng UV-9R (ou plus) en un câble de programmation utilisant un Ardunio UNO comme USB Convertisseur série. [AVIS DE NON-RESPONSABILITÉ] Je ne prends aucune responsabilité en cas de dommages caus
Moniteur ECG/EKG continu simple et portable utilisant ATMega328 (puce Arduino Uno) + AD8232 : 3 étapes
Moniteur ECG/EKG continu simple et portable utilisant ATMega328 (puce Arduino Uno) + AD8232 : cette page instructables vous montrera comment faire un simple moniteur ECG/EKG portable à 3 dérivations. Le moniteur utilise une carte de dérivation AD8232 pour mesurer le signal ECG et l'enregistrer sur une carte microSD pour une analyse ultérieure.Alimentation principale nécessaire : 5 V rechargeable
Accéléromètre à 3 axes, ADXL345 avec Raspberry Pi en utilisant Python : 6 étapes
Accéléromètre à 3 axes, ADXL345 avec Raspberry Pi à l'aide de Python : Pensez à un gadget qui peut vérifier le point auquel votre tout-terrain est incliné pour s'attarder. Ne serait-ce pas agréable dans le cas où quelqu'un est réglé alors qu'il y a une possibilité de basculement ? Évidemment oui. Ce serait vrai
Radiocommande RF 433MHZ utilisant HT12D HT12E - Faire une télécommande Rf en utilisant HT12E & HT12D avec 433mhz: 5 étapes
Radiocommande RF 433MHZ utilisant HT12D HT12E | Faire une télécommande Rf à l'aide de HT12E & HT12D avec 433 mhz : dans cette instructable, je vais vous montrer comment faire une télécommande RADIO à l'aide d'un module émetteur-récepteur 433 mhz avec encodage HT12E & Décodeur HT12D IC. Dans cette instructable, vous pourrez envoyer et recevoir des données à l'aide de COMPOSANTS très très bon marché COMME : HT
Télécommande sans fil utilisant le module 2.4Ghz NRF24L01 avec Arduino - Nrf24l01 4 canaux / 6 canaux émetteur-récepteur pour quadrirotor - Hélicoptère Rc - Avion Rc utilisant Arduino: 5 étapes (avec photos)
Télécommande sans fil utilisant le module 2.4Ghz NRF24L01 avec Arduino | Nrf24l01 4 canaux / 6 canaux émetteur-récepteur pour quadrirotor | Hélicoptère Rc | Avion Rc utilisant Arduino: Pour faire fonctionner une voiture Rc | Quadricoptère | Drone | Avion radiocommandé | Bateau RC, nous avons toujours besoin d'un récepteur et d'un émetteur, supposons que pour RC QUADCOPTER nous ayons besoin d'un émetteur et d'un récepteur à 6 canaux et que ce type de TX et RX soit trop coûteux, nous allons donc en faire un sur notre