0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OLED 顯示雷達(dá)數(shù)據(jù)

單片機(jī)/嵌入式開發(fā) ? 來源:?jiǎn)纹瑱C(jī)/嵌入式開發(fā) ? 作者:?jiǎn)纹瑱C(jī)/嵌入式開發(fā) ? 2024-12-10 13:38 ? 次閱讀

【螢火工場(chǎng)CEM5826-M11測(cè)評(píng)】OLED顯示雷達(dá)數(shù)據(jù)

本文結(jié)合之前關(guān)于串口打印雷達(dá)監(jiān)測(cè)數(shù)據(jù)的研究,進(jìn)一步擴(kuò)展至 OLED 屏幕顯示。

該項(xiàng)目整體分為兩部分:一、框架顯示;二、數(shù)據(jù)采集與填充顯示。

為了減小 MCU 負(fù)擔(dān),采用 局部刷新 的方案。

1. 顯示框架

target_frame.jpg

所需庫函數(shù) Wire.h 、Adafruit_GFX.h 、Adafruit_SSD1306.h .

代碼

#include < Wire.h >
#include < Adafruit_GFX.h >
#include < Adafruit_SSD1306.h >
#include "logo_128x64.h"
#include "logo_95x32.h"
?
#define OLED_RESET 4
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);
?
void setup()
{
  Serial.begin(115200);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x64)
  display.clearDisplay(); // 清屏
  display.drawBitmap(0, 0, logo, 128, 64, 1); //畫出字符對(duì)應(yīng)點(diǎn)陣數(shù)據(jù)
  display.display();
  delay(1000);
  display.clearDisplay();
  /*-------------------- Display picture and text ---------------------------*/
  display.drawBitmap(16, 0, logo_small, 95, 32, 1);
  display.setTextColor(WHITE);  //設(shè)置字體顏色
  display.setTextSize(2);  //設(shè)置字體大小 1 is default 6x8, 2 is 12x16, 3 is 18x24
  display.setCursor(0,33); //設(shè)置起始光標(biāo)
  display.print("v=");
  display.setCursor(72,33); //設(shè)置起始光標(biāo)
  display.print("km/h");
  display.setCursor(0,49); //設(shè)置起始光標(biāo)
  display.print("str=");
  display.display();
}
?
void loop()
{
}

效果

IMG_20241210_114559.jpg

2. 顯示數(shù)據(jù)

目標(biāo):實(shí)現(xiàn)雷達(dá)監(jiān)測(cè)數(shù)據(jù)的對(duì)應(yīng)填充顯示,包括速度 v信號(hào)強(qiáng)度 str

IMG_20241210_125011.jpg

代碼

思路:將之前帖子中實(shí)現(xiàn)的串口打印數(shù)據(jù)與 OLED 顯示框架結(jié)合,將 vstr 兩數(shù)據(jù)分別填充至 OLED 屏預(yù)留位置處即可。

#include < Wire.h >
#include < Adafruit_GFX.h >
#include < Adafruit_SSD1306.h >
#include "logo_128x64.h"
#include "logo_95x32.h"
?
#define OLED_RESET 4
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);
?
String comdata = "";
?
void setup()
{
  Serial.begin(115200);
  while (Serial.read() >= 0){}//clear serialbuffer
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x64)
  display.clearDisplay(); // 清屏
  display.drawBitmap(0, 0, logo, 128, 64, 1); //畫出字符對(duì)應(yīng)點(diǎn)陣數(shù)據(jù)
  display.display();
  delay(1000);
  display.clearDisplay();
  /*-------------------- Display picture and text ---------------------------*/
  display.drawBitmap(16, 0, logo_small, 95, 32, 1);
  display.setTextColor(WHITE);  //設(shè)置字體顏色
  display.setTextSize(2);  //設(shè)置字體大小 1 is default 6x8, 2 is 12x16, 3 is 18x24
  display.setCursor(0,33); //設(shè)置起始光標(biāo)
  display.print("v=");
  display.setCursor(80,33); //設(shè)置起始光標(biāo)
  display.print("km/h");
  display.setCursor(0,49); //設(shè)置起始光標(biāo)
  display.print("str=");
  display.display();
}
?
void loop()
{
  if (Serial.available() > 0) 
  {
    char data = Serial.read();
    comdata += data;
    if (data == 'n')
    {// type of comdata: v=1.0 km/h, str=10151
      int separatorIndex = comdata.indexOf(','); // 假設(shè)分隔符為逗號(hào)
      if (separatorIndex != -1)
      {
        String part1 = comdata.substring(0, separatorIndex); // 第一個(gè)部分
        String part2 = comdata.substring(separatorIndex + 1); // 第二個(gè)部分
        // 打印分割后的數(shù)據(jù)
        //Serial.println(part1); // type of part1: v=1.0 km/h
        //Serial.println(part2); // type of part2:  str=10151
        /*------------ part1 : v=1.0 km/h ----------*/
        int part1separatorIndex = part1.indexOf('='); //index of '='
        if (part1separatorIndex != -1)
        {
          String vlc = part1.substring(part1separatorIndex + 1); // index of velocity, type of vlc is 1.0 km/h
          // vlc: 1.0 km/h
          int VLCseparatorIndex = vlc.indexOf(' '); // index of ' '
          String v = vlc.substring(0, VLCseparatorIndex);// v only include number
          float Vn = v.toFloat();
          Serial.print(Vn); // print velocity number
          Serial.print(',');
          //display.setCursor(25,33); //設(shè)置起始光標(biāo)
          display.fillRect(25, 33, 60, 16, BLACK);
          display.display();
          display.setCursor(25,33); //設(shè)置起始光標(biāo)
          display.print(Vn);
          display.display();
        }
        /*------------- part2 :  str=10151 ------------------*/
        int part2separatorIndex = part2.indexOf('='); //index of '='
        if (part2separatorIndex != -1)
        {
          String strng = part2.substring(part2separatorIndex + 1); // strng only include number
          int Sn = strng.toInt();
          Serial.print(Sn); // print strength number
          Serial.println();
          //display.setCursor(49,49); //設(shè)置起始光標(biāo)
          display.fillRect(49, 49, 79, 16, BLACK);
          //display.setPixelColor();
          display.display();
          display.setCursor(49,49); //設(shè)置起始光標(biāo)
          display.print(Sn);
          display.display();
        }
      }
      comdata = "";
    }
  }
}

效果

IMG_20241210_125011.jpg

這里由于字體設(shè)置為 2 號(hào),無法滿足 km/h 單位的完整填充,因此被數(shù)據(jù)覆蓋住一部分,可根據(jù)實(shí)際需求調(diào)整字體大小。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2563

    文章

    52575

    瀏覽量

    763732
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6063

    文章

    44923

    瀏覽量

    646966
  • OLED
    +關(guān)注

    關(guān)注

    119

    文章

    6272

    瀏覽量

    227142
  • 雷達(dá)
    +關(guān)注

    關(guān)注

    50

    文章

    3077

    瀏覽量

    119418
收藏 0人收藏
  • jf_073656931

評(píng)論

相關(guān)推薦
熱點(diǎn)推薦

【RA-Eco-RA4M2開發(fā)板評(píng)測(cè)】RA-Eco-RA4M2 OLED顯示

高壓,直接接 3.3V 就可以工作了。 本文將介紹基于I2C接口的OLED顯示。 1.2 OLED的I2C通信協(xié)議 I2C總線協(xié)議允許數(shù)據(jù)和命令在設(shè)備間的通訊。 1.2.1 I2C寫模
發(fā)表于 05-03 23:12

天馬OLED器件榮獲ICDT 2025年度最佳創(chuàng)新顯示應(yīng)用技術(shù)金獎(jiǎng)

天馬OLED器件——綠色健康器件OLED器件U9和SLOD在國際顯示技術(shù)大會(huì)(ICDT 2025)上再次耀眼奪目,榮獲“年度最佳創(chuàng)新顯示應(yīng)用技術(shù)金獎(jiǎng)”,不僅是對(duì)天馬
的頭像 發(fā)表于 03-27 17:00 ?616次閱讀

Techwiz OLED應(yīng)用:透明顯示

如今,透明顯示器作為未來的顯示技術(shù)之一已經(jīng)引起了廣泛的關(guān)注。特別是,使用OLED器件的透明顯示器已被積極研究。TechWiz OLED的發(fā)光
發(fā)表于 03-17 11:35

天馬攜手康寧推出最新柔性OLED車載顯示

在CES 2025上,天馬攜手康寧聯(lián)合推出雙方共創(chuàng)的最新車載顯示成果——雙13英寸多曲率一體黑OLED顯示屏和13英寸OLED滑移顯示屏,通
的頭像 發(fā)表于 01-13 09:41 ?918次閱讀

oled是什么顯示OLED與LCD的區(qū)別

OLED是什么顯示OLED(Organic Light-Emitting Diode),即有機(jī)發(fā)光二極管,是一種電流型的有機(jī)發(fā)光器件。其工作原理是通過載流子的注入和復(fù)合而致發(fā)光,發(fā)光強(qiáng)度與注入
的頭像 發(fā)表于 10-21 16:40 ?4415次閱讀

oled顯示屏的優(yōu)缺點(diǎn)有哪些

OLED(有機(jī)發(fā)光二極管)顯示屏作為一種先進(jìn)的顯示技術(shù),近年來在電子產(chǎn)品領(lǐng)域得到了廣泛的應(yīng)用。其獨(dú)特的發(fā)光原理和構(gòu)造使其具有一系列顯著的優(yōu)點(diǎn),但同時(shí)也存在一些不容忽視的缺點(diǎn)。以下是對(duì)OLED
的頭像 發(fā)表于 10-21 16:37 ?7676次閱讀

ESP8266 太空人動(dòng)畫的 OLED 顯示

ESP8266 太空人動(dòng)畫的 OLED 顯示
的頭像 發(fā)表于 10-08 15:06 ?632次閱讀
ESP8266 太空人動(dòng)畫的 <b class='flag-5'>OLED</b> <b class='flag-5'>顯示</b>

NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)OLED顯示

OLED顯示
jf_07365693
發(fā)布于 :2024年08月14日 16:43:37

Arduino Nano 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)OLED顯示

OLED顯示
jf_07365693
發(fā)布于 :2024年08月14日 16:43:01

Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)OLED顯示

Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)OLED顯示
的頭像 發(fā)表于 08-13 18:04 ?1900次閱讀
Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度<b class='flag-5'>數(shù)據(jù)</b>及 <b class='flag-5'>OLED</b><b class='flag-5'>顯示</b>

三星顯示與LG顯示爭(zhēng)奪iPhone 16 OLED訂單

隨著蘋果新iPhone 16系列預(yù)計(jì)在2024年下半年的臨近發(fā)布,全球科技界的目光再次聚焦于智能手機(jī)的核心組件——OLED顯示屏。在這場(chǎng)科技盛宴的背后,韓國兩大顯示巨頭三星顯示(SDC
的頭像 發(fā)表于 08-06 10:06 ?878次閱讀

OLED柔性顯示屏的金線封裝膠

OLED柔性顯示屏的金線封裝膠是確保柔性顯示屏中金線連接穩(wěn)定、防止外界環(huán)境侵害的關(guān)鍵材料。OLED柔性顯示屏在使用金線進(jìn)行連接時(shí),需要一種能
的頭像 發(fā)表于 07-12 09:46 ?1169次閱讀
<b class='flag-5'>OLED</b>柔性<b class='flag-5'>顯示</b>屏的金線封裝膠

ESP8266網(wǎng)絡(luò)天氣時(shí)鐘OLED顯示

基于ESP8266實(shí)現(xiàn)網(wǎng)絡(luò)獲取天氣和時(shí)鐘并OLED顯示
的頭像 發(fā)表于 06-28 04:46 ?2075次閱讀
ESP8266網(wǎng)絡(luò)天氣時(shí)鐘<b class='flag-5'>OLED</b><b class='flag-5'>顯示</b>

ESP8266網(wǎng)絡(luò)天氣時(shí)鐘OLED顯示

OLED顯示
jf_07365693
發(fā)布于 :2024年06月28日 04:36:26

使用GPIO口作為電源驅(qū)動(dòng)OLED

使用GPIO口作為電源驅(qū)動(dòng)OLED 以往為了增加OLED的驅(qū)動(dòng)顯示,都是用杜邦線將OLED連接到開發(fā)板必要的VDD,GND,GPIO口上。在CH32V307EVT的開發(fā)板上有一個(gè)排座,
發(fā)表于 06-23 14:20

電子發(fā)燒友

中國電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會(huì)員交流學(xué)習(xí)
  • 獲取您個(gè)性化的科技前沿技術(shù)信息
  • 參加活動(dòng)獲取豐厚的禮品