找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2934|回復(fù): 2
收起左側(cè)

一種ADXL345 AHT10傳感器驅(qū)動(dòng)庫(kù)

[復(fù)制鏈接]
ID:276685 發(fā)表于 2021-12-24 23:55 | 顯示全部樓層 |閱讀模式
ADXL345_Library_for_arduino
cn->一種簡(jiǎn)單方便的驅(qū)動(dòng)庫(kù)可以很好兼容arduino系列,更少的依賴方便移植到其他類型mcu,靈活配置寄存器
iicsensor ic傳感器,這里包括adx345驅(qū)動(dòng)和一個(gè)aht10的驅(qū)動(dòng) 意味著他不能以spi方式操作。以后會(huì)加以改進(jìn)。這個(gè)庫(kù)文件并不簡(jiǎn)潔。但是可讀性非常高,主要彌補(bǔ)流行庫(kù)文件不能涵蓋的功能,例如低功耗,fifo。

低功耗進(jìn)入流程 配置auto sleep位為1,在第一次檢測(cè)靜止中斷時(shí)停止讀寫(xiě)ADXL345_REG_INT_SOURCE寄存器,在INT引腳接收到中斷后讀取寄存器恢復(fù)正常運(yùn)行。意思是在休眠模式不要試圖與其通訊。不這樣做的后果會(huì)導(dǎo)致傳感器退出休眠模式后無(wú)法再次讀取中斷標(biāo)志位

AHT10
AHTxx是來(lái)自中國(guó)的一種溫濕度傳感器 aht10 20 21 有各種封裝類型,aht10是初代版本,他價(jià)格在1——5rmb左右。這是一個(gè)ADXL345驅(qū)動(dòng)的附帶產(chǎn)物。
部分示例如下

  1. acc.set_ofs(0, 0, 0);
  2.     acc.set_activity_inactivity((uint8_t)75, (uint8_t)75, (uint8_t)5);
  3.     Power_InitTypeDef power_ctl;
  4.     power_ctl.Link = 1;
  5.     power_ctl.AUTO_SLEEP = 0;
  6.     power_ctl.Measure = 1;
  7.     power_ctl.Sleep=0;
  8.     power_ctl.Wakeup_speed = ADXL345_SLEEPDATARATE_1_HZ;
  9.     acc.set_power_mode(&power_ctl);
  10. delay(100);


  11.     TAP_InitTypeDef tap;
  12.     tap.Tap_axes_x = 0;
  13.     tap.Tap_axes_y = 0;
  14.     tap.Tap_axes_z = 1;
  15.     tap.Tap_Suppress = 0;

  16.     tap.Tap_Thresh=(uint8_t)50;       //界限
  17.     tap.Tap_Dur = (uint8_t)15;            //持續(xù)時(shí)間
  18.     tap.Double_Tap_Latent = (uint8_t)80;  //延遲
  19.     tap.Double_Tap_Window = (uint8_t)200; //窗口

  20.     acc.set_tap_mode(&tap);

  21.    
  22.     BW_RATE_InitTypeDef bw_rate;
  23.     bw_rate.low_power = 1;
  24.     bw_rate.speed = ADXL345_DATARATE_400_HZ;
  25.     acc.set_speed_mode(&bw_rate);
  26. delay(100);
  27.     Interrupt_InitTypeDef Interrput;
  28.     Interrput.ACT = ACT_AC;
  29.     Interrput.ACTX = ACT_AXES_ENABLE;
  30.     Interrput.ACTY = ACT_AXES_ENABLE;
  31.     Interrput.ACTZ = ACT_AXES_ENABLE;
  32.     Interrput.INACT = ACT_AC;
  33.     Interrput.INACT_X = ACT_AXES_ENABLE;
  34.     Interrput.INACT_Y = ACT_AXES_ENABLE;
  35.     Interrput.INACT_Z = ACT_AXES_ENABLE;

  36.     Interrput.data_ready = INT_DISENABLE;
  37.     Interrput.single_tap = INT_ENABLE;
  38.     Interrput.double_tap = INT_ENABLE;
  39.     Interrput.activity = INT_ENABLE;
  40.     Interrput.inactivity = INT_ENABLE;
  41.     Interrput.free_fall = INT_DISENABLE;
  42.     Interrput.watermark = INT_DISENABLE;
  43.     Interrput.overrun =   INT_DISENABLE;

  44.     Interrput.map_data_ready = INT_PIN1;
  45.     Interrput.map_single_tap = INT_PIN1;
  46.     Interrput.map_double_tap = INT_PIN1;
  47.     Interrput.map_activity = INT_PIN2;
  48.     Interrput.map_inactivity = INT_PIN1;
  49.     Interrput.map_free_fall = INT_PIN1;
  50.     Interrput.map_watermark = INT_PIN1;
  51.     Interrput.map_overrun = INT_PIN1;

  52.     acc.set_interrput(&Interrput);
  53.     delay(100);


  54.     Fifo_InitTypeDef fio;
  55.     fio.self_test = 0;                //自測(cè)
  56.     fio.spi = 0;                      //spi模式選擇,1三線,0四線
  57.     fio.int_invert = INT_INVERT_HIGH; //中斷高低電平
  58.     fio.full_res =1;                 //1全分辨率,0 10位分辨
  59.     fio.justify = 0;                  //對(duì)齊
  60.     fio.range = ADXL345_RANGE_16_G;   //量程

  61.     fio.fifo_mode =FIFO_BYPASS;  //旁路
  62.     fio.trigger = INT_PIN1;       //觸發(fā)中斷1
  63.     fio.samples =FIFO_SAMPLES_31; //8
  64.     acc.set_fifo_mode(&fio);
  65. delay(100);
復(fù)制代碼

文件太大發(fā)不了,下載移步github
https://github.com/fBn0523/ADXL345_Library_for_arduino.git


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:295290 發(fā)表于 2022-1-15 09:39 | 顯示全部樓層
你好  2021_2_10 PID temperature.zip 這個(gè)溫控程序文件方便發(fā)大家一下嗎?萬(wàn)分感謝!
回復(fù)

使用道具 舉報(bào)

ID:276685 發(fā)表于 2022-1-16 10:15 | 顯示全部樓層
wxhm2011 發(fā)表于 2022-1-15 09:39
你好  2021_2_10 PID temperature.zip 這個(gè)溫控程序文件方便發(fā)大家一下嗎?萬(wàn)分感謝!

鏈接:https://pan.baidu.com/s/1PDbUXHdDWFzx2aMMGbqX1g
提取碼:0000
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表