Bonjour à tous,
(newbie inside)
J’en appelle à votre aide car je deviens maboule sur un cas super simple…
J’essaie actuellement un petit montage sur base d’un accéléromètre +/-3G ADXL335 chez Adafruit (ICI) directement monté sur les pins 1->5 analogiques de mon arduino 2009
Mon problème est que les valeurs mesurées me laisse perplexe :-/ J’ai vérifié plusieurs fois le câblage et la configuration des I/O mais rien ne se passe comme prévu. Même lorsque l’ensemble est à l’arrêt, immobile sur le bureau (donc 0g), les valeurs mesurées varient à chaque mesure (loop du sketch). Extrait:
x=385 y=335 z=522
x=380 y=346 z=522
x=360 y=369 z=510
x=338 y=395 z=492
x=346 y=386 z=498
x=352 y=379 z=504
x=329 y=406 z=484
x=314 y=432 z=461
x=306 y=459 z=436
x=303 y=486 z=408
x=303 y=476 z=417
x=304 y=468 z=427
x=304 y=497 z=400
x=310 y=513 z=379
x=321 y=522 z=359
x=336 y=527 z=338
x=331 y=527 z=346
x=327 y=525 z=353
x=343 y=525 z=329
x=364 y=516 z=313
x=390 y=499 z=305
x=382 y=505 z=306
x=374 y=511 z=310
x=399 y=492 z=304
x=427 y=470 z=302
x=453 y=445 z=308
x=479 y=419 z=319
En ce qui concerne le sketch, il est des plus simpliste:
/*
ADXL335 Ada-fruit PCB test sketchReads an Analog Devices ADXL3xx accelerometer and communicates the
acceleration to the computer.http://www.arduino.cc/en/Tutorial/ADXL3xx
The circuit:
analog 0: accelerometer self test
analog 1: vcc
analog 2: x-axis
analog 3: y-axis
analog 4: z-axis
analog 5: ground
*/// these constants describe the pins. They won’t change:
const int selftestPin = 0; // self test
const int powerPin = 1; // voltage
const int xPin = 2; // x-axis of the accelerometer
const int yPin = 3; // y-axis of the accelerometer
const int zPin = 4; // z-axis of the accelerometer
const int groundPin = 5; // groundint x,y,z;
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:x = analogRead(xPin);
Serial.print(“x=”);
Serial.print(x, DEC);// print a tab between values:
Serial.print("\t y=");
y = analogRead(yPin);
Serial.print(y);// print a tab between values:
Serial.print("\t z=");
z = analogRead(zPin);
Serial.print(z);Serial.println();
// delay before next reading:
delay(100);
}
J’ai essayé plusieurs alternatives:
- Alimentation USB
- Alimentation externe 9v (Pile)
- Changer d’Arduino
—> même résultat. J’ai même essayé de faire tourner le programme sans capteur (uniquement avec l’Arduino) et j’ai aussi le même résultat. C’est comme si le capteur ADXL était mort…
Voilà. Si l’un d’entre vous a une explication, je suis preneur !!
Merci d’avance de votre aide.
Olivier