重力加速度的測量
使用氣壓感測器[BMP280]、[SD記憶卡]
使用氣壓感測器[BMP280]、[SD記憶卡]
VIN --> to Arduino 3V3
(請注意,電源要接到3V3,以免燒壞)
GND --> to Arduino GND
SCL --> to Arduino A5
SDA --> to Arduino A4
BMP280函式庫:https://github.com/orgua/iLib
CS --> to Arduino pin4
SCK --> to Arduino pin13
MOSI --> to Arduino pin11
MISO --> to Arduino pin12
VCC --> to Arduino 5V
GND --> to Arduino GND
程式碼
#include <Wire.h>#include "i2c.h"#include "i2c_BMP280.h"BMP280 bmp280;#include <SPI.h>#include <SD.h>File myFile;String filename = "test.csv";     //要寫入的檔案名稱void setup() {  pinMode(10,OUTPUT);             //保留pin10, SD Library需要使用  while (!SD.begin(4)) {}  Serial.begin(9600);  bmp280.initialize();  bmp280.setEnabled(0);  bmp280.triggerMeasurement();}void loop(){  bmp280.awaitMeasurement();  float temperature;             //氣溫,單位:攝氏溫度  bmp280.getTemperature(temperature);  float pascal;                  //氣壓,單位:pa帕  bmp280.getPressure(pascal);  float meters;                  //海拔高度,單位:m公尺  bmp280.getAltitude(meters);    //假設海平面大氣壓為101325Pa,所計算的海拔高度;  bmp280.triggerMeasurement();  Serial.print(meters);  Serial.println();    float timesec= millis()/1000.0;           //目前時間,單位是"秒"  char timesecstr[6];  dtostrf(timesec,3, 3, timesecstr);     myFile = SD.open(filename, FILE_WRITE);  if (myFile) {    Serial.print("Writing to test.csv...");    myFile.print(timesecstr);              //寫入 時間     myFile.print(",");                  //之後每個數據之間加入逗號","    myFile.print(meters);                //寫入 海拔高度    myFile.println();    myFile.close();                     //關閉檔案    Serial.println("done.");  } else {    Serial.println("error opening test.csv");  }}請根據測得的時間、高度資料,計算重力造成的加速度?並繪製時間和高度、速度、加速度的關係圖。