生活随笔
收集整理的這篇文章主要介紹了
米斯齐超声波传感器显示测量距离(oled)内附Arduino代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
用到的東西:
?? ?超聲波傳感器,uno,SSD1306 OLED顯示屏
超聲波:gnd-gnd
? ? ? ? ? ? ?vcc-5v
? ? ? ? ? ? ?trig-接腳這里是A0
? ? ? ? ? ? ?echo-接腳這里是A1
?顯示器:vcc-3.5
? ? ? ? ? ? ? ? gnd-gnd
? ? ? ? ? ? ? ? scl-scl
? ? ? ? ? ? ? ? sda-sda
名詞解釋:SCL(Serial Clock)是I2C總線的時鐘信號線,由主設備(如微控制器)產生,并控制通信速度。
SDA(Serial Data)是I2C總線的數據信號線,用于在設備之間傳輸數據。
在I2C總線中,每個設備都有一個唯一的地址,主設備可以向任意設備發送命令,并從設備讀取數據。SCL和SDA信號線上的信號是由主設備產生和控制的。SCL和SDA信號線的電平是由器件狀態和主設備控制來確定的。
?
?
#include <U8g2lib.h> // 引入U8g2庫,用于控制SSD1306 OLED顯示屏
#include <Wire.h> // 引入Wire庫,用于I2C通信volatile int item; // 定義變量item,用于存儲距離值
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); // 定義SSD1306 OLED顯示屏對象// checkdistance_0_0函數,用于測量超聲波傳感器與障礙物之間的距離
float checkdistance_0_0() {digitalWrite(0, LOW); // 將超聲波傳感器的觸發引腳設為低電平delayMicroseconds(2); // 延時2微秒digitalWrite(0, HIGH); // 將超聲波傳感器的觸發引腳設為高電平delayMicroseconds(10); // 延時10微秒digitalWrite(0, LOW); // 將超聲波傳感器的觸發引腳設為低電平float distance = pulseIn(0, HIGH) / 58.00; // 使用pulseIn函數測量超聲波回波時間,計算距離值delay(10); // 延時10毫秒return distance; // 返回測量的距離值
}// page1函數,用于在SSD1306 OLED顯示屏上顯示距離值
void page1() {u8g2.setFont(u8g2_font_timR08_tf); // 設置字體u8g2.setFontPosTop(); // 設置字體位置u8g2.setCursor(0,20); // 設置光標位置u8g2.print(item); // 在SSD1306 OLED顯示屏上打印距離值
}void setup(){item = 0; // 初始化item變量為0pinMode(0, INPUT); // 將超聲波傳感器的接收引腳設為輸入模式u8g2.setI2CAddress(0x3C*2); // 設置SSD1306 OLED顯示屏的I2C地址u8g2.begin(); // 初始化SSD1306 OLED顯示屏u8g2.enableUTF8Print(); // 啟用UTF-8編碼
}void loop(){item = checkdistance_0_0(); // 調用checkdistance_0_0函數,測量距離并將距離值存儲到item變量中u8g2.firstPage(); // 顯示第一頁do{page1(); // 在第一頁上顯示距離值}while(u8g2.nextPage()); // 顯示下一頁
}
這段代碼是一個基于Arduino平臺的程序,使用了U8g2庫來控制一個SSD1306 OLED顯示屏的顯示。程序通過測量超聲波傳感器的距離來更新變量item的值,并將其顯示在OLED屏幕上。
具體來說,程序的主要流程如下:
引入U8g2庫和Wire庫。
定義一個名為item的整型變量和一個名為u8g2的U8G2_SSD1306_128X64_NONAME_1_HW_I2C類型對象,用于控制OLED屏幕。
定義一個名為checkdistance_0_0的函數,用于測量超聲波傳感器的距離并返回距離值。
定義一個名為page1的函數,用于在OLED屏幕上顯示item變量的值。
在setup函數中初始化程序,包括設置pin 0為輸入模式、設置OLED屏幕的I2C地址、初始化OLED屏幕等。
在loop函數中,調用checkdistance_0_0函數測量距離,并將測量結果保存到item變量中,然后在OLED屏幕上顯示item變量的值。
總體來說,這個程序的作用是通過超聲波傳感器測量距離,并將測量結果顯示在OLED屏幕上。
總結
以上是生活随笔為你收集整理的米斯齐超声波传感器显示测量距离(oled)内附Arduino代码的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。