arduino、6050和oled 的sda scl相連 oled是四線的
Arduino源程序如下:
- //******************************************************************************
- // 項 目:傳感器
- // 說 明:檢測陀螺儀、羅盤數(shù)據(jù),進行濾波 目前只讀取X軸數(shù)據(jù)
- //******************************************************************************
- #include <Wire.h>
- #include "Timer.h" //時間操作系統(tǒng)頭文件 本程序用作timeChange時間采集并處理一次數(shù)據(jù)
- #include "Imu.h"
- //--------------------------------------------------------------------------------------------------
- #define UseOled 1 //是否使用軟串口讀寫信息(軟串口可避免電腦串口下載程序時與藍牙沖突)
- #if UseOled
- #include <Adafruit_SSD1306.h>
- Adafruit_SSD1306 display(4);
- int DispLoop = 1;
- int MinPixel = 30;
- int MaxPixel = 63;
- int DispPixel = 0;
- int DispDegrees = 0;
- #endif
- //---------- ------------------------------------------------------ -------------------------------
- Timer timer; //時間類
- //--------------------------------------------------------------------------------------------------
- void setup() {
- Serial.begin(9600);
- delay(500);
- GyData.Init();
- #if UseOled
- display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
- display.display();
- delay(500);
- display.clearDisplay();
- #endif
- int tickEvent1=timer.every(20, getadngsle); //本語句執(zhí)行以后timeChange毫秒執(zhí)行回調(diào)函數(shù)getangle
- int tickEvent2=timer.every(50, PrintOut) ; //本語句執(zhí)行以后50毫秒執(zhí)行回調(diào)函數(shù)PrintOut,串口輸出
- }
- //--------------------------------------------------------------------------------------------------
- void loop() {
- timer.update(); //時間操作系統(tǒng)運行
- }
- //--------------------------------------------------------------------------------------------------
- void PrintOut(){
- #if UseOled
- display.fillRect(0, 0, 128, 30, BLACK);
- display.drawRect(0, 29,128,35, WHITE);
- display.setTextSize(1);
- display.setTextColor(WHITE);
- display.setCursor(0,0);display.print("Angle:");
- display.setCursor(40,0);display.print(GyData.angle);
- DispPixel = GyData.angle/6+45;
- if(MinPixel >=DispPixel)DispPixel = MinPixel;
- if(DispPixel >=MaxPixel)DispPixel = MaxPixel;
- display.drawLine(DispLoop, MinPixel+1, DispLoop, MaxPixel-1, BLACK); //清除前一幀
- display.drawPixel(DispLoop, DispPixel, WHITE);
- display.display();
- if(DispLoop==126)DispLoop = 1;
- DispLoop ++;
- #endif
- }
- //--------------------------------------------------------------------------------------------------
- void getadngsle(){
- GyData.GetAngle();
- }
- //--------------------------------------------------------------------------------------------------
-
-
-
復制代碼
程序編譯有問題 求指導:
Mydata.zip
(28.9 KB, 下載次數(shù): 103)
2019-4-4 11:39 上傳
點擊文件名下載附件
|