日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

米斯齐超声波传感器显示测量距离(oled)内附Arduino代码

發布時間:2024/3/13 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 米斯齐超声波传感器显示测量距离(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代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。