資源簡介
氣壓傳感器SDP810的Arduino控制代碼,包括頭文件與申明文件。目前成功應(yīng)用于移動(dòng)機(jī)器人的碰撞檢測。

代碼片段和文件信息
/*****************************************************
SDP810.cpp
氣壓傳感器源文件
版本:1.00??日期20170718??編寫:孫斌
描述:?見頭文件
??????
*****************************************************/
#include?“stdint.h“
#include“SDP810.h“
#include“Wire.h“
#include“arduino.h“
SDP810::SDP810(){
??ERROR_TypeDef??error?=?ERROR_NONE;
??_address?=?SDP810_ADDR;??
?}
SDP810::~SDP810(){}
const?uint8_t?SDP810::scaleFactorTemperature?=?200;
/*******************************************************************
???初始化?(Setup?中運(yùn)行)
???輸入?無?????
???返回??錯(cuò)誤類型
*******************************************************************/?????
ERROR_TypeDef?SDP810::Init(){
??ERROR_TypeDef?error?=?ERROR_NONE;?
??SoftReset();
??/*
??if(Reset()?!=?ERROR_NONE){
????Serial.println(“Oops!?No?SDP810!?Check?wire!“);
??}else{
????Serial.println(“Success?to?initialize?SDP810!“);????
??}
??*/
??delay(10);
??error?=?StartContinousMeasurement(TEMPCOMP_DIFFERNTIAL_PRESSUREAVERAGING_NONE);
??delay(10);
??//?ReadID();?//放棄使用,會(huì)導(dǎo)致讀不出氣壓,尚未解決。
??return?error;
}
/*******************************************************************
???工作模式選擇
???輸入?無?????
???返回??錯(cuò)誤類型
*******************************************************************/?????
ERROR_TypeDef?SDP810::StartContinousMeasurement(TempComp?tempCompAveraging?averaging){
??ERROR_TypeDef?error?=?ERROR_NONE;
??Command?command?=?COMMAND_UNDEFINED;
????//?determine?command?code
??switch(tempComp)?{
????case?TEMPCOMP_MASS_FLOW:
??????switch(averaging)?{
????????case?AVERAGING_TILL_READ:
??????????command?=?COMMAND_START_MEASURMENT_MF_AVERAGE;
??????????break;
????????case?AVERAGING_NONE:
??????????command?=?COMMAND_START_MEASURMENT_MF_NONE;
??????????break;
?????????
??????}
??????break;
????case?TEMPCOMP_DIFFERNTIAL_PRESSURE:
??????switch(averaging)?{
????????case?AVERAGING_TILL_READ:
??????????command?=?COMMAND_START_MEASURMENT_DP_AVERAGE;
??????????break;
????????case?AVERAGING_NONE:
??????????command?=?COMMAND_START_MEASURMENT_DP_NONE;
??????????break;
??????}
??????break;
??}
??if(COMMAND_UNDEFINED?!=?command)?{
????error?=?ExecuteCommand(command);
????//?wait?10?ms?for?startup
????delay(10);
???
??}?else?{
????error?=?ERROR_IVALID_PARAMETER;
??}
??
??return?error;
}
/*******************************************************************
???停止連續(xù)測試
???輸入?無?????
???返回??錯(cuò)誤類型
*******************************************************************/???
ERROR_TypeDef?SDP810::StopContinousMeasurement(void){
??return?ExecuteCommand(COMMAND_STOP_CONTINOUS_MEASUREMENT);
??
}
/*******************************************************************
???讀取測量結(jié)果
???輸入?無?????
???返回??錯(cuò)誤類型
*******************************************************************/???
ERROR_TypeDef?SDP810::ReadResults(uint8_t?*?result){
??ERROR_TypeDef??error?=?ERROR_NONE;
??int16_t??diffPressureTicks;
??float??Presstemp?=?0;
??int16_t??temperatureTicks;
??uint16_t?scaleFactorDiffPressure;
??
??error?=?ReadMeasurementRawResults(&diffPressureTicks?&temperatureTicks&scaleFactorDiffPressure);
??
??if(ERROR_NONE?==?error)
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????29992??2017-08-14?16:29??氣壓傳感器SDP810的Arduino控制代碼\01??引腳圖.jpg
?????文件??????11959??2017-08-14?16:50??氣壓傳感器SDP810的Arduino控制代碼\SDP810_500pa\SDP810.cpp
?????文件???????4873??2017-08-09?18:04??氣壓傳感器SDP810的Arduino控制代碼\SDP810_500pa\SDP810.h
?????文件???????1706??2017-12-27?17:45??氣壓傳感器SDP810的Arduino控制代碼\SDP810_500pa\SDP810_500pa.ino
?????文件?????778752??2017-07-18?15:51??氣壓傳感器SDP810的Arduino控制代碼\Sensirion_Differential_Pressure_Sensors_SDP8xx_Digital_Datasheet_0v5.pdf
?????目錄??????????0??2018-06-06?09:49??氣壓傳感器SDP810的Arduino控制代碼\SDP810_500pa
?????目錄??????????0??2018-06-06?09:49??氣壓傳感器SDP810的Arduino控制代碼
-----------?---------??----------?-----??----
???????????????827282????????????????????7
評(píng)論
共有 條評(píng)論