在I2C的基礎上,添加ADXL345的模塊,然后在添加打印模塊, 可以調(diào)試出ADXL345的值
單片機源程序如下:
- # include "sys.h"
- # include "delay.h"
- # include "printf.h"
- # include "adxl345.h"
- # include "usart.h"
- # include "led.h"
- # include "key.h"
- # include "math.h"
- void Delay (u32 i)
- {
- while(i--);
- }
-
- int main(void)
- {
- u8 key;
- u8 t=0;
- short x,y,z;
- short angx,angy,angz;
- delay_init(); //延時初始化
- LED_Init(); //初始化與LED連接的硬件接口
- KEY_Init(); //按鍵初始化
- printf_init();
- I2C_INIT();
- while(ADXL345_Init())
- {
- printf(" 加速度傳感器錯誤!\r\n");
- delay_ms(100);
- }
- while(1)
- {
- if(t%10==0)//每100ms讀取一次
- {
- //得到X,Y,Z軸的加速度值(原始值)
- ADX_GetXYZ_Value(&x, &y,&z); //讀取X,Y,Z三個方向的加速度值
-
- printf("x:%d \n",x); //顯示加速度原始值
- printf("y: %d \n",y);
- printf("z: %d \r\n",z);
-
-
- //得到角度值,并顯示
- angx=ADXL345_Get_Angle(x,y,z,1);
- angy=ADXL345_Get_Angle(x,y,z,2);
- angz=ADXL345_Get_Angle(x,y,z,0);
- printf(" 角度x:%d\r\n",angx); //顯示角度值
- printf(" 角度y:%d\r\n",angy);
- printf(" 角度z:%d\r\n",angz);
- Delay(6000000);
- }
- key=KEY_Scan(0);
- if(key==KEY_UP)
- {
- LED1=0;//綠燈亮,提示校準中
- ADXL345_AUTO_Adjust(&x, &y, &z);//自動校準
- LED1=1;//綠燈滅,提示校準完成
- }
- delay_ms(10);
- t++;
- if(t==20)
- {
- t=0;
- LED0=!LED0;
- }
- }
- }
復制代碼
所有資料51hei提供下載:
ADXL345打印.rar
(286.76 KB, 下載次數(shù): 251)
2018-8-4 15:01 上傳
點擊文件名下載附件
ADXL345 下載積分: 黑幣 -5
|