在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OLED 顯示雷達數據

單片機/嵌入式開發 ? 來源:單片機/嵌入式開發 ? 作者:單片機/嵌入式開發 ? 2024-12-10 13:38 ? 次閱讀

【螢火工場CEM5826-M11測評】OLED顯示雷達數據

本文結合之前關于串口打印雷達監測數據的研究,進一步擴展至 OLED 屏幕顯示。

該項目整體分為兩部分:一、框架顯示;二、數據采集與填充顯示。

為了減小 MCU 負擔,采用 局部刷新 的方案。

1. 顯示框架

target_frame.jpg

所需庫函數 Wire.hAdafruit_GFX.hAdafruit_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); //畫出字符對應點陣數據
  display.display();
  delay(1000);
  display.clearDisplay();
  /*-------------------- Display picture and text ---------------------------*/
  display.drawBitmap(16, 0, logo_small, 95, 32, 1);
  display.setTextColor(WHITE);  //設置字體顏色
  display.setTextSize(2);  //設置字體大小 1 is default 6x8, 2 is 12x16, 3 is 18x24
  display.setCursor(0,33); //設置起始光標
  display.print("v=");
  display.setCursor(72,33); //設置起始光標
  display.print("km/h");
  display.setCursor(0,49); //設置起始光標
  display.print("str=");
  display.display();
}
?
void loop()
{
}

效果

IMG_20241210_114559.jpg

2. 顯示數據

目標:實現雷達監測數據的對應填充顯示,包括速度 v信號強度 str

IMG_20241210_125011.jpg

代碼

思路:將之前帖子中實現的串口打印數據與 OLED 顯示框架結合,將 vstr 兩數據分別填充至 OLED 屏預留位置處即可。

#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); //畫出字符對應點陣數據
  display.display();
  delay(1000);
  display.clearDisplay();
  /*-------------------- Display picture and text ---------------------------*/
  display.drawBitmap(16, 0, logo_small, 95, 32, 1);
  display.setTextColor(WHITE);  //設置字體顏色
  display.setTextSize(2);  //設置字體大小 1 is default 6x8, 2 is 12x16, 3 is 18x24
  display.setCursor(0,33); //設置起始光標
  display.print("v=");
  display.setCursor(80,33); //設置起始光標
  display.print("km/h");
  display.setCursor(0,49); //設置起始光標
  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(','); // 假設分隔符為逗號
      if (separatorIndex != -1)
      {
        String part1 = comdata.substring(0, separatorIndex); // 第一個部分
        String part2 = comdata.substring(separatorIndex + 1); // 第二個部分
        // 打印分割后的數據
        //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); //設置起始光標
          display.fillRect(25, 33, 60, 16, BLACK);
          display.display();
          display.setCursor(25,33); //設置起始光標
          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); //設置起始光標
          display.fillRect(49, 49, 79, 16, BLACK);
          //display.setPixelColor();
          display.display();
          display.setCursor(49,49); //設置起始光標
          display.print(Sn);
          display.display();
        }
      }
      comdata = "";
    }
  }
}

效果

IMG_20241210_125011.jpg

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

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2560

    文章

    52064

    瀏覽量

    760771
  • 單片機
    +關注

    關注

    6056

    文章

    44800

    瀏覽量

    643666
  • OLED
    +關注

    關注

    119

    文章

    6249

    瀏覽量

    226279
  • 雷達
    +關注

    關注

    50

    文章

    3026

    瀏覽量

    118921
收藏 人收藏

    評論

    相關推薦

    Techwiz OLED應用:透明顯示

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

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

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

    oled是什么顯示OLED與LCD的區別

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

    oled顯示屏的優缺點有哪些

    OLED(有機發光二極管)顯示屏作為一種先進的顯示技術,近年來在電子產品領域得到了廣泛的應用。其獨特的發光原理和構造使其具有一系列顯著的優點,但同時也存在一些不容忽視的缺點。以下是對OLED
    的頭像 發表于 10-21 16:37 ?5558次閱讀

    ESP8266 太空人動畫的 OLED 顯示

    ESP8266 太空人動畫的 OLED 顯示
    的頭像 發表于 10-08 15:06 ?540次閱讀
    ESP8266 太空人動畫的 <b class='flag-5'>OLED</b> <b class='flag-5'>顯示</b>

    NodeMCU ESP8266 讀取 DHT11 環境溫濕度數據OLED顯示

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

    Arduino Nano 讀取 DHT11 環境溫濕度數據OLED顯示

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

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環境溫濕度數據OLED顯示

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環境溫濕度數據OLED顯示
    的頭像 發表于 08-13 18:04 ?1685次閱讀
    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環境溫濕度<b class='flag-5'>數據</b>及 <b class='flag-5'>OLED</b><b class='flag-5'>顯示</b>

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

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

    ESP8266網絡天氣時鐘OLED顯示

    基于ESP8266實現網絡獲取天氣和時鐘并OLED顯示
    的頭像 發表于 06-28 04:46 ?1873次閱讀
    ESP8266網絡天氣時鐘<b class='flag-5'>OLED</b><b class='flag-5'>顯示</b>

    ESP8266網絡天氣時鐘OLED顯示

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

    使用GPIO口作為電源驅動OLED

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

    如何為SPI OLED顯示屏添加另一個設備?

    SPI 數據接口將圖像傳送到 OLED 顯示屏。使用 UVC 應用說明中的說明操作 UVC 部件。如何為 SPI OLED 顯示屏添加另一
    發表于 05-31 06:18

    雷達液位計無顯示是什么故障

    雷達液位計無顯示是一種常見的故障現象,可能由多種原因引起。
    的頭像 發表于 05-14 17:42 ?2205次閱讀

    三星顯示和LG顯示加強OLED游戲顯示器布局

     三星顯示亦在積極拓展客戶群體,與全球十余家知名顯示器品牌建立合作關系。在三星電子OLED顯示器受到好評之后,三星顯示意識到
    的頭像 發表于 05-13 11:42 ?798次閱讀
    主站蜘蛛池模板: 人人艹人人草 | 又粗又长又大真舒服好爽漫画 | 国产香蕉免费精品视频 | 亚洲国产成人久久精品影视 | 成人免费精品视频 | 黄蓉吕文德欲乱系列小说 | 成人欧美一区二区三区视频不卡 | 国产免费一级高清淫曰本片 | 午夜影院官网 | 性欧美极品 | 久久婷婷成人综合色 | 看片地址| 黄 色 成 年人在线 黄a大片 | 素股中文字幕 | 国产精品天天在线 | 快色视频在线观看 | 成年片色大黄全免费网址 | 无遮挡很污很爽很黄的网站 | 77788色淫视频免费观看 | 天天综合色天天综合色sb | 男人女人的免费视频网站 | 国模吧| 欧美最猛黑人xxxxwww | 国产精品成人在线播放 | 亚洲伦理一区二区 | 精品四虎免费观看国产高清 | 俄罗斯美女69xxxxxx | 亚洲欧美色图 | 国产caoni111在线观看视频 | 69hdxxxx日本 | 日本一区免费看 | 久久久久久毛片免费播放 | 在线色片 | 欧美午夜视频一区二区三区 | 亚洲入口 | 一级网站片 | 日韩一级免费毛片 | 日本xxwwxxww视频免费丝袜 | 欧美成人午夜精品一区二区 | 国产精品7m凸凹视频分类大全 | 性夜影院爽黄a爽免费视频 性瘾高h姚蕊全文免费阅读 |