Verwendete Teile:
- Arduino UNO
- ADXL 335 Breakoutboard
- 5 pol. Flachbandkabel
- Stiftleiste
- Schrumpfschlauch
Auf einer Seite habe ich das Flachbandkabel an die Anschlüsse VCC, GND, X, Y, Z, des Beschleunigungssensors angelötet. An der anderen Seite habe ich die Stiftleiste angelötet und mit einem Schrumpfschlauch versehen. Der Anschluss ST am Sensor (Self Test) wurde für dieses Beispiel nicht belegt.
Versuchsaufbau:
Die Anschlüsse X, Y und Z werden mit den Analog-Eingängen 1,2 und 3 am Arduino verbunden.
Die Versorgungsspannung für den Beschleunigungssensor ist laut Datenblatt mit 1,8-3 V angegeben. Ich habe daher den Sensor an den 3V3 Pin und nicht an den 5V Pin gehängt.
Programmcode:
Zum Auslesen der ersten Werte eignet sich das Programm ADXL3xx aus den Examples im Arduino Programm:
Wenn der Sensor an die 3V3 angeschlossen wird, kann die Versorgung bzw. die Programmierung für Analog 4 und Analog 5 weg gelassen werden.
/*
ADXL3xx
Reads an Analog Devices ADXL3xx accelerometer and communicates the
acceleration to the computer. The pins used are designed to be easily
compatible with the breakout boards from Sparkfun, available from:
http://www.sparkfun.com/commerce/categories.php?c=80
http://www.arduino.cc/en/Tutorial/ADXL3xx
The circuit:
analog 0: accelerometer self test
analog 1: z-axis
analog 2: y-axis
analog 3: x-axis
analog 4: ground
analog 5: vcc
created 2 Jul 2008
by David A. Mellis
modified 26 Jun 2009
by Tom Igoe
*/
// these constants describe the pins. They won't change:
const int groundpin = 18; // analog input pin 4 -- ground
const int powerpin = 19; // analog input pin 5 -- voltage
const int xpin = 3; // x-axis of the accelerometer
const int ypin = 2; // y-axis
const int zpin = 1; // z-axis (only on 3-axis models)
void setup()
{
// initialize the serial communications:
Serial.begin(9600);
// Provide ground and power by using the analog inputs as normal
// digital pins. This makes it possible to directly connect the
// breakout board to the Arduino. If you use the normal 5V and
// GND pins on the Arduino, you can remove these lines.
pinMode(groundpin, OUTPUT);
pinMode(powerpin, OUTPUT);
digitalWrite(groundpin, LOW);
digitalWrite(powerpin, HIGH);
}
void loop()
{
// print the sensor values:
Serial.print(analogRead(xpin));
// print a tab between values:
Serial.print("\t");
Serial.print(analogRead(ypin));
// print a tab between values:
Serial.print("\t");
Serial.print(analogRead(zpin));
Serial.println();
// delay before next reading:
delay(100);
}
Im Seriellen Monitor können jetzt die Werte für die drei Achsen X, Y, und Z abgelesen werden.
erstellt 17.3.2011
erstellt 17.3.2011
Keine Kommentare:
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.