Inhaltsverzeichnis:
- Schritt 1: Komponenten
- Schritt 2: Prinzip
- Schritt 3: Verfahren
- Schritt 4: Code
- Schritt 5: Codeanalyse
Video: ADXL345 mit Arduino Uno R3 - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
In dieser Lektion lernen wir die Verwendung des Beschleunigungssensors ADXL345.
Schritt 1: Komponenten
- Arduino Uno-Board * 1
- USB-Kabel * 1
-ADXL345 * 1
- Steckbrett * 1
- Überbrückungsdrähte
Schritt 2: Prinzip
Ein Beschleunigungsmesser wird verwendet, um die während der Beschleunigung erzeugte Kraft zu messen. Die grundlegendste ist die allgemein bekannte Erdbeschleunigung, die 1 g beträgt.
Durch Messung der Erdbeschleunigung können Sie den Neigungswinkel des Geräts zur ebenen Fläche berechnen. Durch die Analyse der dynamischen Beschleunigung können Sie feststellen, wie sich das Gerät bewegt. Zum Beispiel wendet ein selbstausgleichendes Board oder Hoverboard den Beschleunigungssensor und das Gyroskop für den Kalman-Filter und die Haltungskorrektur an.
ADXL345
Der ADXL345 ist ein kleiner, dünner, stromsparender 3-Achsen-Beschleunigungsmesser mit hochauflösender (13-Bit) Messung bei bis zu ±16 g. Digitale Ausgangsdaten werden als 16-Bit-Zweierkomplement formatiert und sind entweder über eine SPI- (3- oder 4-Draht) oder eine digitale I2C-Schnittstelle zugänglich. In diesem Experiment wird die digitale I2C-Schnittstelle verwendet.
Es ist gut geeignet, um die statische Gravitationsbeschleunigung in Neigungssensoranwendungen sowie dynamische Beschleunigungen aufgrund von Bewegungen oder Stößen zu messen. Seine hohe Auflösung (4 mg/LSB) ermöglicht die Messung der Neigungsänderung um weniger als 1,0°. Und die ausgezeichnete Empfindlichkeit (3,9 mg/LSB @ 2 g) bietet eine hochpräzise Ausgabe von bis zu ±16 g.
So funktioniert ADXL345
Der ADXL345 erkennt die Beschleunigung mit der Sensorkomponente an der Vorderseite, und dann wandelt die elektrische Signalsensorkomponente sie in ein analoges elektrisches Signal um. Als nächstes wandelt der auf dem Modul integrierte AD-Adapter das analoge Signal in ein digitales um.
X_OUT, Y_OUT und Z_OUT sind die Werte auf der X-, Y- bzw. Z-Achse. Legen Sie das Modul mit der Vorderseite nach oben: Z_OUT kann höchstens +1g erreichen, das Minimum von X_OUT beträgt -1g in Richtung Ax und das Minimum von Y_OUT beträgt -1g in Richtung Ay. Drehen Sie das Modul andererseits auf den Kopf: Das Minimum von Z_OUT beträgt -1g, das Maximum von X_OUT beträgt +1g in Richtung Ax und das Maximum von Y_OUT beträgt +1g in Richtung Ay., Wie nachfolgend dargestellt. Drehen Sie das ADXL345-Modul und Sie sehen die Änderung von drei Werten.
Wenn Kanal A von High-Pegel auf Low-Pegel wechselt, wenn Kanal B High-Pegel hat, zeigt dies an, dass sich der Drehgeber im Uhrzeigersinn (CW) dreht; Wenn Kanal B zu diesem Zeitpunkt auf niedrigem Pegel ist, bedeutet dies, dass er sich gegen den Uhrzeigersinn (CCW) dreht. Wenn wir also den Wert von Kanal B lesen, wenn Kanal A auf Low-Pegel ist, können wir wissen, in welche Richtung sich der Drehgeber dreht.
Prinzip: Siehe das schematische Diagramm des Rotary Encoder-Moduls unten. Daraus können wir sehen, dass Pin 3 des Drehgebers, nämlich CLK auf dem Modul, Kanal B ist. Pin 5, der DT ist, ist Kanal A. Um die Drehrichtung des Rekorders zu kennen, lesen Sie einfach den Wert von CLK und DT.
Es gibt einen 3,3-V-Spannungsregler-Chip in der Schaltung, sodass Sie das Modul mit 5 V oder 3,3 V versorgen können.
Da SDO mit GND verbunden ist, ist die I2C-Adresse des ADXL345 0x53, 0xA6 zum Schreiben, 0xA7 zum Lesen
Pin-Funktion des ADXL345-Moduls.
Schritt 3: Verfahren
Schritt 1. Bauen Sie die Schaltung auf.
Schritt 2:
Laden Sie den Code von https://github.com/primerobotics/Arduino. herunter
Schritt 3:
Laden Sie die Skizze auf das Arduino Uno-Board hoch
Klicken Sie auf das Symbol Hochladen, um den Code auf die Steuerplatine hochzuladen.
Wenn unten im Fenster "Hochladen fertig" erscheint, bedeutet dies, dass die Skizze erfolgreich hochgeladen wurde.
Öffnen Sie nach dem Hochladen Serial Monitor, wo Sie die erkannten Daten sehen können. Wenn sich die Beschleunigung des Moduls ändert, ändert sich die Zahl im Fenster entsprechend.
Schritt 4: Code
//ADXL335
/********************************
ADXL335
Hinweis: vcc5v, aber ADXL335 Vs beträgt 3,3 V
Die Rennbahn:
5V: VCC
analog 0: x-Achse
analog 1: y-Achse
analog 2: z-Achse
Nach dem Verbrennen
Programm öffnen Sie das Debugging-Fenster des seriellen Monitors, in dem Sie sehen können, dass die erkannten Daten angezeigt werden. Wenn die Beschleunigung variiert, ändert sich die Zahl entsprechend.
*********************************
/Email:
//Website:www.primerobotics.in
const int xpin =
A0; // x-Achse des Beschleunigungsmessers
const int ypin =
A1; // y-Achse
const int zpin =
A2; // Z-Achse (nur bei 3-Achsen-Modellen)
Void-Setup ()
{
// Initialisieren Sie die serielle Kommunikation:
Serial.begin (9600);
}
Leere Schleife ()
{
int x = analogRead (xpin); // von xpin lesen
Verzögerung(1); //
int y = analogRead(ypin); // von ypin lesen
Verzögerung(1);
int z = analogRead (zpin); // von zpin lesen
Float Null_G = 338,0; // ADXL335 Netzteil
bei Vs 3.3V: 3.3V/5V*1024=676/2=338
//Seriendruck (x);
//Seriendruck("\t");
//Seriendruck (y);
//Seriendruck("\t");
//Seriendruck (z);
//Seriendruck("\n");
schweben
zero_Gx = 331,5; // die zero_G-Ausgabe der x-Achse: (x_max + x_min)/2
schweben
zero_Gy=329,5; // die zero_G Ausgabe der y-Achse: (y_max + y_min)/2
float zero_Gz=340.0; // die
zero_G Ausgabe der z-Achse:(z_max + z_min)/2
Schwimmerskala =
67,6; // Stromversorgung von Vs 3,3 V: 3,3 V / 5 V * 1024 / 3,3 V * 330 mv / g = 67,6 g
float scale_x =
65; // die Skala der x-Achse: x_max/3.3v*330mv/g
float scale_y =
68,5; // die Skala der y-Achse: y_max/3.3v*330mv/g
float scale_z =
68; // die Skala der z-Achse: z_max/3.3v*330mv/g
Serial.print (((schwimmen)x
- Null_Gx)/Skala_x); // x-Wert auf seriellem Monitor drucken
Serial.print("\t");
Serial.print(((float)y
- null_Gy)/Skala_y); // y-Wert auf seriellem Monitor drucken
Serial.print("\t");
Serial.print(((float)z
- null_Gz)/Skala_z); // Z-Wert auf seriellem Monitor drucken
Serial.print("\n");
Verzögerung (1000); // 1 Sekunde warten
}
Schritt 5: Codeanalyse
Der Code für das ADXL345-Experiment umfasst 3 Teile: Initialisieren Sie jeden Port und jedes Gerät, erfassen und speichern Sie die von den Sensoren gesendeten Daten und konvertieren Sie die Daten.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: 7 Schritte (mit Bildern)
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: Hallo, und willkommen zu meinem ersten instructable! :) In diesem instructables möchte ich eine fantastische Bibliothek für die Schnittstelle der Tastatur mit Arduino teilen - 'Password Library' einschließlich 'Keypad Library'. Diese Bibliothek enthält die besten Funktionen, die wir wi
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Erfahren Sie, wie Sie mit PROCESSING eine Echtzeitschnittstelle in ARDUINO erstellen !!!!): 5 Schritte (mit Bildern)
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using PROCESSING !!!!): Ein SCARA-Roboter ist eine sehr beliebte Maschine in der Industriewelt. Der Name steht sowohl für Selective Compliant Assembly Robot Arm als auch für Selective Compliant Articulated Robot Arm. Es ist im Grunde ein Roboter mit drei Freiheitsgraden, da er die ersten beiden Displ
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E