sensortest.ino 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #include <Wire.h>
  2. #include <Adafruit_Sensor.h>
  3. #include <Adafruit_ADXL343.h>
  4. /* Assign a unique ID to this sensor at the same time */
  5. /* Uncomment following line for default Wire bus */
  6. Adafruit_ADXL343 accel = Adafruit_ADXL343(12345);
  7. /* NeoTrellis M4, etc. */
  8. /* Uncomment following line for Wire1 bus */
  9. //Adafruit_ADXL343 accel = Adafruit_ADXL343(12345, &Wire1);
  10. void displaySensorDetails(void)
  11. {
  12. sensor_t sensor;
  13. accel.getSensor(&sensor);
  14. Serial.println("------------------------------------");
  15. Serial.print ("Sensor: "); Serial.println(sensor.name);
  16. Serial.print ("Driver Ver: "); Serial.println(sensor.version);
  17. Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id);
  18. Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" m/s^2");
  19. Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" m/s^2");
  20. Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" m/s^2");
  21. Serial.println("------------------------------------");
  22. Serial.println("");
  23. delay(500);
  24. }
  25. void displayDataRate(void)
  26. {
  27. Serial.print ("Data Rate: ");
  28. switch(accel.getDataRate())
  29. {
  30. case ADXL343_DATARATE_3200_HZ:
  31. Serial.print ("3200 ");
  32. break;
  33. case ADXL343_DATARATE_1600_HZ:
  34. Serial.print ("1600 ");
  35. break;
  36. case ADXL343_DATARATE_800_HZ:
  37. Serial.print ("800 ");
  38. break;
  39. case ADXL343_DATARATE_400_HZ:
  40. Serial.print ("400 ");
  41. break;
  42. case ADXL343_DATARATE_200_HZ:
  43. Serial.print ("200 ");
  44. break;
  45. case ADXL343_DATARATE_100_HZ:
  46. Serial.print ("100 ");
  47. break;
  48. case ADXL343_DATARATE_50_HZ:
  49. Serial.print ("50 ");
  50. break;
  51. case ADXL343_DATARATE_25_HZ:
  52. Serial.print ("25 ");
  53. break;
  54. case ADXL343_DATARATE_12_5_HZ:
  55. Serial.print ("12.5 ");
  56. break;
  57. case ADXL343_DATARATE_6_25HZ:
  58. Serial.print ("6.25 ");
  59. break;
  60. case ADXL343_DATARATE_3_13_HZ:
  61. Serial.print ("3.13 ");
  62. break;
  63. case ADXL343_DATARATE_1_56_HZ:
  64. Serial.print ("1.56 ");
  65. break;
  66. case ADXL343_DATARATE_0_78_HZ:
  67. Serial.print ("0.78 ");
  68. break;
  69. case ADXL343_DATARATE_0_39_HZ:
  70. Serial.print ("0.39 ");
  71. break;
  72. case ADXL343_DATARATE_0_20_HZ:
  73. Serial.print ("0.20 ");
  74. break;
  75. case ADXL343_DATARATE_0_10_HZ:
  76. Serial.print ("0.10 ");
  77. break;
  78. default:
  79. Serial.print ("???? ");
  80. break;
  81. }
  82. Serial.println(" Hz");
  83. }
  84. void displayRange(void)
  85. {
  86. Serial.print ("Range: +/- ");
  87. switch(accel.getRange())
  88. {
  89. case ADXL343_RANGE_16_G:
  90. Serial.print ("16 ");
  91. break;
  92. case ADXL343_RANGE_8_G:
  93. Serial.print ("8 ");
  94. break;
  95. case ADXL343_RANGE_4_G:
  96. Serial.print ("4 ");
  97. break;
  98. case ADXL343_RANGE_2_G:
  99. Serial.print ("2 ");
  100. break;
  101. default:
  102. Serial.print ("?? ");
  103. break;
  104. }
  105. Serial.println(" g");
  106. }
  107. void setup(void)
  108. {
  109. Serial.begin(9600);
  110. while (!Serial);
  111. Serial.println("Accelerometer Test"); Serial.println("");
  112. /* Initialise the sensor */
  113. if(!accel.begin())
  114. {
  115. /* There was a problem detecting the ADXL343 ... check your connections */
  116. Serial.println("Ooops, no ADXL343 detected ... Check your wiring!");
  117. while(1);
  118. }
  119. /* Set the range to whatever is appropriate for your project */
  120. accel.setRange(ADXL343_RANGE_16_G);
  121. // accel.setRange(ADXL343_RANGE_8_G);
  122. // accel.setRange(ADXL343_RANGE_4_G);
  123. // accel.setRange(ADXL343_RANGE_2_G);
  124. /* Display some basic information on this sensor */
  125. displaySensorDetails();
  126. displayDataRate();
  127. displayRange();
  128. Serial.println("");
  129. }
  130. void loop(void)
  131. {
  132. /* Get a new sensor event */
  133. sensors_event_t event;
  134. accel.getEvent(&event);
  135. /* Display the results (acceleration is measured in m/s^2) */
  136. Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print(" ");
  137. Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print(" ");
  138. Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print(" ");Serial.println("m/s^2 ");
  139. delay(500);
  140. }