女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

怎樣制作基本的ArduinoPC示波器

454398 ? 來源:工程師吳畏 ? 2019-08-02 10:24 ? 次閱讀

將簡單的Arduino Uno(以及一些Python代碼)轉換為粗略的示波器,以查看波形和電壓電平。

示波器非常有用,但通常帶有很大的價格標簽。幸運的是,有一些專用示波器的替代方案,所以在這個項目中,我們將把一個簡單的Arduino Uno(以及一些Python代碼)轉換成可以用來查看波形和電壓電平的粗略示波器!

工作原理:Arduino

示波器的硬件/固件端非常簡單,并利用內置的模塊Arduino,ADCADC代表模擬數字轉換器,是一個可以采用模擬電壓(0V和5V之間)并將其轉換為二進制數的模塊。 Arduino有一個10位ADC,這意味著最大電壓5V表示為1023(1111111111),最小電壓0V表示為0(0000000000)。但是,由于Arduino是一個8位機器,無符號字符的大小為8位(稍后你會看到原因),我們只使用ADC結果中的前8位。這意味著5V現在表示為255,0V表示為0V。由于有256個可能的值,每個位代表5/256伏或0.02V(大約)。因此,0x0F的值表示0.3V,0x80的值表示2.56V,值0x3E表示1.22V。

雖然Arduino默認啟用ADC,因此不需要設置代碼,但我們仍將模擬引腳配置為輸入。我們將用于獲取讀數的引腳為A0,即引腳編號14.除引腳配置外,我們還將配置UART模塊以實現PC通信的快速波特率(115200波特),并初始化一些變量。

主循環中的代碼首先從ADC模塊中讀取100個讀數。從ADC讀取模擬數據非常簡單,可以使用函數analogRead(引腳號)完成,該函數返回一個整數,其中10位ADC結果來自引腳號指定的引腳。在我們的例子中,input0指的是引腳14,它是A0。一旦讀取完畢,下一段要執行的代碼就是延遲。延遲的大小(以微秒為單位)由timeBase定義,默認為100。盡管是100us延遲,但讀數之間的真實間距是延遲的大小加上ADC轉換時間(100us),這給出了200us的讀取間隔。為簡單起見,這個項目將被忽略。

一旦完成所有100個讀數,就可以將這些數據發送到PC用于繪圖。為確保接收器能夠正確區分數據事務,Arduino只會在Arduino發送請求“R?”后接收方發送字母“K”后發送數據。

一次Arduino和PC已經成功地相互交談,所有的數據都流出來了。但是,UART工作在8位,并且嘗試在UART上發送整數將需要復雜的轉換,這將使事情變得相當困難。因此,我們只將模擬讀數作為單個字節發送,我們使用函數highByte()來完成。 Arduino中的整數大小為16位,這意味著我們需要取10位結果并將它們向左移動,直到前8位包含我們的數據。為此,我們將數據向左移動六次,這意味著我們丟失了ADC讀數的最低2位,但對于我們的基本示波器無關緊要。

使用8位結果發送,最后一項任務是等待計算機的響應通知Arduino結果已被正確讀取。 Arduino只是停留在一個循環中,等待串口上的字符“K”。一旦讀完,整個循環就會自行重復!

工作原理:Python代碼

Python代碼以及一些額外的庫是什么一個簡單的Arduino數據記錄器到一個基本的示波器。但是,Python本身無法執行某些任務,如圖形例程和串口通信,因此我們需要先獲取幾個庫。幸運的是,如果安裝了PIP,安裝這些庫是輕而易舉的。如果你不這樣做,請先在這里按照本教程獲取點子。安裝pip后,打開命令提示符并按順序輸入以下命令(一次一個):

pip install pyserial

pip install PyGame

一旦成功安裝了這兩個軟件包,我們就可以直接進入我們的圖形應用程序!雖然串行包很容易理解,但pygame包有點復雜,所以這里只介紹基礎知識。我們Python程序的第一個任務是導入所需的庫,它們是pygame(用于生成圖形界面),serial(用于Arduino通信)和時間(用于時間延遲)。下一個代碼塊用于變量聲明和初始化,其中包括pygame的布爾值,字符串和顏色。 pygame中使用的顏色是RGB類型,其中三個字節(0-255)表示紅色,綠色和/或藍色的數量。

完成變量定義后,下一個任務是初始化pygame,這是通過調用pygame.init()來完成的。由于我們計劃將文本打印到我們的窗口應用程序,我們還需要初始化字體引擎,這是通過調用pygame.font.init()來完成的。除了初始化字體引擎之外,我們還將創建一個字體對象,我們將使用它作為渲染字體(將是等寬字體)。 pygame初始化代碼的最后一位將是創建一個窗口(大小為700×500)并將窗口的標題設置為“PyScopeUno”。

下一個任務涉及配置串行端口以使用與Arduino相匹配的波特率(在本例中為115200)。還必須選擇正確的端口(在我的情況下為“COM8”)并指定超時,以便程序在串行端口循環期間不會掛起。配置串口后,最后一步是打開端口!

完成所有初始化代碼后,主程序循環執行,即以while循環的形式,等待直到布爾變量applicationClose等于true。在窗口上單擊關閉按鈕時,此值設置為true,單擊后,串口正常關閉,pygame關閉。

顯示我們記錄的數據的第一項任務是從Arduino獲取串行數據。為此,我們要等到串口中有數據存在。如果此數據等于“R?”,我們將Arduino發送給字符“K”,這導致Arduino將100個字節流式傳輸到PC。程序等待直到收到所有100個字節,一旦完成,將這些字節傳送到數據緩沖區。下一行代碼涉及一些有用的基本操作,包括計算平均值和查找最小/最大值。

最后代碼塊涉及繪制數據,繪制文本和繪制線條,但由于代碼的不言自明的特性,不會對此進行深入討論。我們的示波器程序中的數據不是繪制為單個點,而是作為兩個數據點之間的插值線,因為快速變化的信號將顯示為散點圖,這很難可視化。為此,繪制一條線,其中第一個點是第一個電壓電平,而終點是下一個數據值。由于我們獲取了100個讀數但我們的圖形寬度為400像素,因此我們將x坐標乘以4以拉伸圖形。這樣可以更容易地查看單個讀數。

完整的圖形化程序如下所示。

在不到15分鐘的時間內完成并運行這個項目應該很容易和可行。可能導致最頭疼的步驟是安裝和運行Python庫,因為命令行安裝方法有拋出錯誤,無法找到所需文件或缺少權限的習慣。一旦Arduino加載了代碼,它就會自動開始。假設Python程序有效(確保COM端口正確),那么項目應該可以正常工作。

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

    關注

    113

    文章

    6527

    瀏覽量

    188156
  • Arduino
    +關注

    關注

    188

    文章

    6490

    瀏覽量

    190069
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    示波器的使用入門

    本節簡要介紹怎樣設置及開始使用示波器,特別是怎樣實現示波器和用戶接地、設置示波器控制功能、校準示波器
    的頭像 發表于 04-28 09:29 ?509次閱讀
    <b class='flag-5'>示波器</b>的使用入門

    示波器的性能術語(上)

    現要求的信號完整性的能力。學習新技能通常要學習新的術語表,在學習怎樣使用示波器時也不例外。本節介紹了部分實用的測量和示波器性能術語。這些術語用來描述為應用選擇正確
    的頭像 發表于 03-03 11:52 ?354次閱讀
    <b class='flag-5'>示波器</b>的性能術語(上)

    使用示波器分析波形的技巧 如何設置示波器的觸發功能

    1. 了解示波器的基本操作 在開始之前,確保你熟悉示波器的基本操作,包括如何調整時間基準(Time Base)、垂直刻度(Vertical Scale)、觸發電平(Trigger Level)等
    的頭像 發表于 12-06 09:47 ?2805次閱讀

    示波器測量電壓的步驟 數字示波器的基本操作方法

    示波器是一種用于觀察和測量電壓隨時間變化的電子儀器,它廣泛應用于電子電路的調試和故障診斷中。以下是使用數字示波器測量電壓的基本步驟和操作方法: 1. 準備階段 1.1 檢查設備 確保示波器電源線
    的頭像 發表于 12-06 09:45 ?3286次閱讀

    示波器怎么測波形

    示波器測量波形是電子測量中的一項基本技能,以下是示波器測量波形的基本步驟和注意事項:
    的頭像 發表于 10-03 16:32 ?1569次閱讀

    示波器入門|光標功能如何使用?#示波器 #示波器操作 #電工

    示波器
    安泰儀器維修
    發布于 :2024年09月25日 15:50:42

    與模擬示波器相比數字示波器的優點有哪些

    數字示波器(Digital Storage Oscilloscope, DSO)與模擬示波器(Analog Oscilloscope)是電子測試領域中用于觀察和分析電信號波形的重要工具。數字示波器
    的頭像 發表于 09-20 09:57 ?2285次閱讀

    示波器探頭衰減設置在示波器的哪里

    1. 示波器探頭衰減設置的重要性 在進行電子測量時,示波器是一種常用的測量工具。示波器探頭是連接被測信號和示波器的關鍵部件。探頭衰減設置直接影響測量信號的幅度和波形的準確性。如果設置不
    的頭像 發表于 08-09 14:55 ?1984次閱讀

    示波器探頭和示波器需要匹配嗎

    示波器探頭和示波器匹配問題是一個非常重要的話題,因為它們之間的匹配程度直接影響到測量結果的準確性和可靠性。 示波器探頭的工作原理 示波器探頭是一種用于將被測信號傳輸到
    的頭像 發表于 08-09 14:33 ?754次閱讀

    示波器探頭補償怎么調

    示波器探頭補償是一種重要的校準過程,用于確保探頭測量的信號與實際信號一致。 一、示波器探頭概述 示波器探頭的定義 示波器探頭是一種連接示波器
    的頭像 發表于 08-09 11:27 ?899次閱讀

    示波器探頭的探測小提示

    選擇滿足示波器和應用需求的探頭,可以使您能夠進行必要的測量。實際上,進行測量和獲得有用的結果還取決于怎樣使用工具。下面的探測小提示將有助于您避免某些常見的測量問題: 補償探頭 大多數探頭是為與特定
    的頭像 發表于 07-23 10:53 ?410次閱讀
    <b class='flag-5'>示波器</b>探頭的探測小提示

    虛擬示波器還是數字示波器好用

    虛擬示波器和數字示波器各有優缺點,具體選擇哪一種取決于您的具體需求和預算。 虛擬示波器 定義 虛擬示波器是一種基于計算機軟件的示波器,它通過
    的頭像 發表于 07-17 17:16 ?1407次閱讀

    電子示波器和數字示波器的比較

    引言 示波器是一種廣泛應用于電子測量領域的儀器,它能夠將電信號的波形以圖形的方式顯示出來,便于工程師對信號進行分析和測量。示波器主要分為兩大類:電子示波器和數字示波器。電子
    的頭像 發表于 07-17 17:10 ?946次閱讀

    電流探頭該怎樣選擇,示波器可以直接測量電流嗎?

    怎樣選擇電流探頭?直接買一個示波器能不能測量電流信號?電流探頭是連接示波器和測試點,實現電流信號測量的關鍵工具,本文將為您揭示電流探頭的選擇要點,并解答一個常見疑問:示波器能否直接測量
    的頭像 發表于 07-01 17:45 ?1163次閱讀
    電流探頭該<b class='flag-5'>怎樣</b>選擇,<b class='flag-5'>示波器</b>可以直接測量電流嗎?