一、簡介
續上文,電機驅動部分完成,接下來我們給他加上一個OLED的顯示功能和MPU6050的姿態檢測功能
二、姿態角顯示開發
2.1 MPU6050簡介
MPU6050是一種集成了3軸陀螺儀和3軸加速度計的數字運動處理器。它由英飛凌公司開發,可用于測量物體的角速度、加速度和方向,廣泛應用于機器人、無人機、游戲手柄、智能手機和運動監測等領域。MPU6050采用I2C接口進行通信,具有低功耗、高精度、小尺寸等特點,是一款非常優秀的運動傳感器。
2.2 OLED簡介
OLED(Organic Light Emitting Diode)是有機發光二極管,是一種新型的顯示技術。與傳統的液晶顯示屏相比,OLED顯示屏具有更高的對比度、更快的響應速度、更廣的視角、更薄的厚度和更低的功耗。
OLED顯示屏是由一系列有機材料制成的薄膜堆疊而成,其中包括發光材料、電子傳輸材料和電極材料等。當電流通過這些材料時,它們會發出光,形成圖像。OLED顯示屏可以實現高分辨率、真實的顏色和高亮度。
2.3 驅動開發
OLED、MPU6050都是采用的IIC通信方式,我們簡單介紹一下IIC通信的原理
2.3.1 IIC 通信
2.3.1.1 概念
IIC(Inter-Integrated Circuit)總線是一種由NXP(原PHILIPS)公司開發的兩線式串行總線,用于連接微控制器及其外圍設備。多用于主控制器和從器件間的主從通信,在小數據量場合使用,傳輸距離短,任意時刻只能有一個主機等特性。在 CPU 與被控 IC 之間、IC 與 IC 之間進行雙向傳送,高速 IIC 總線一般可達 400kbps 以上。
2.3.1.2 實踐—代碼編寫
我們通過SDA、SCL兩條總線來進行數據傳輸通信,首先我們要確定OLED、MPU6050的設備地址,我們通過查看數據手冊可得到,他們的地址分別為0x78、0X68,由此可寫出他們的IIC驅動代碼
/***********************0.96OLED******************************** void OLED_Write_IIC_Command(unsigned char IIC_Command) { OLED_IIC_Start(); OLED_Write_IIC_Byte(0x78); //Slave address,SA0=0 OLED_IIC_Wait_Ack(); OLED_Write_IIC_Byte(0x00); //write command OLED_IIC_Wait_Ack(); OLED_Write_IIC_Byte(IIC_Command); OLED_IIC_Wait_Ack(); OLED_IIC_Stop(); } ***********************************************************/ /*************************MPU6050**************************** u8 MPU_Write_Byte(u8 reg,u8 data) { MPU_IIC_Start(); MPU_IIC_Send_Byte((MPU_ADDR<<1)|0);//發送器件地址+寫命令 if(MPU_IIC_Wait_Ack()) //等待應答 { MPU_IIC_Stop(); return 1; } MPU_IIC_Send_Byte(reg); //寫寄存器地址 MPU_IIC_Wait_Ack(); //等待應答 MPU_IIC_Send_Byte(data);//發送數據 if(MPU_IIC_Wait_Ack()) //等待ACK { MPU_IIC_Stop(); return 1; } MPU_IIC_Stop(); return 0; } ***********************************************************/
2.4 效果演示
審核編輯:湯梓紅
-
傳感器
+關注
關注
2550文章
51035瀏覽量
753072 -
處理器
+關注
關注
68文章
19259瀏覽量
229651 -
OLED
+關注
關注
119文章
6198瀏覽量
224097 -
STM32
+關注
關注
2270文章
10895瀏覽量
355730 -
平衡小車
+關注
關注
1文章
39瀏覽量
12500
發布評論請先 登錄
相關推薦
評論