色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

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

怎樣制作基本的ArduinoPC示波器

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

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

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

工作原理:Arduino

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

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

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

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

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

使用8位結(jié)果發(fā)送,最后一項(xiàng)任務(wù)是等待計算機(jī)的響應(yīng)通知Arduino結(jié)果已被正確讀取。 Arduino只是停留在一個循環(huán)中,等待串口上的字符“K”。一旦讀完,整個循環(huán)就會自行重復(fù)!

工作原理:Python代碼

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

pip install pyserial

pip install PyGame

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

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

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

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

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

最后代碼塊涉及繪制數(shù)據(jù),繪制文本和繪制線條,但由于代碼的不言自明的特性,不會對此進(jìn)行深入討論。我們的示波器程序中的數(shù)據(jù)不是繪制為單個點(diǎn),而是作為兩個數(shù)據(jù)點(diǎn)之間的插值線,因?yàn)榭焖僮兓?a target="_blank">信號將顯示為散點(diǎn)圖,這很難可視化。為此,繪制一條線,其中第一個點(diǎn)是第一個電壓電平,而終點(diǎn)是下一個數(shù)據(jù)值。由于我們獲取了100個讀數(shù)但我們的圖形寬度為400像素,因此我們將x坐標(biāo)乘以4以拉伸圖形。這樣可以更容易地查看單個讀數(shù)。

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

在不到15分鐘的時間內(nèi)完成并運(yùn)行這個項(xiàng)目應(yīng)該很容易和可行。可能導(dǎo)致最頭疼的步驟是安裝和運(yùn)行Python庫,因?yàn)槊钚邪惭b方法有拋出錯誤,無法找到所需文件或缺少權(quán)限的習(xí)慣。一旦Arduino加載了代碼,它就會自動開始。假設(shè)Python程序有效(確保COM端口正確),那么項(xiàng)目應(yīng)該可以正常工作。

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

    關(guān)注

    113

    文章

    6279

    瀏覽量

    185601
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6477

    瀏覽量

    187550
收藏 人收藏

    評論

    相關(guān)推薦

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

    示波器探頭和示波器匹配問題是一個非常重要的話題,因?yàn)樗鼈冎g的匹配程度直接影響到測量結(jié)果的準(zhǔn)確性和可靠性。 示波器探頭的工作原理 示波器探頭是一種用于將被測信號傳輸?shù)?/div>
    的頭像 發(fā)表于 08-09 14:33 ?498次閱讀

    示波器探頭的探測小提示

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

    虛擬示波器還是數(shù)字示波器好用

    虛擬示波器和數(shù)字示波器各有優(yōu)缺點(diǎn),具體選擇哪一種取決于您的具體需求和預(yù)算。 虛擬示波器 定義 虛擬示波器是一種基于計算機(jī)軟件的示波器,它通過
    的頭像 發(fā)表于 07-17 17:16 ?860次閱讀

    電子示波器和數(shù)字示波器的比較

    引言 示波器是一種廣泛應(yīng)用于電子測量領(lǐng)域的儀器,它能夠?qū)㈦娦盘柕牟ㄐ我詧D形的方式顯示出來,便于工程師對信號進(jìn)行分析和測量。示波器主要分為兩大類:電子示波器和數(shù)字示波器。電子
    的頭像 發(fā)表于 07-17 17:10 ?665次閱讀

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

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

    示波器怎樣正確測量市電

    示波器作為電子測量領(lǐng)域的重要工具,其應(yīng)用廣泛,尤其在測量市電方面,能夠提供直觀、準(zhǔn)確的波形展示,幫助我們深入理解和分析市電的質(zhì)量。然而,由于市電的特殊性質(zhì),如何正確使用示波器進(jìn)行測量,避免潛在的安全
    的頭像 發(fā)表于 05-27 15:39 ?1559次閱讀

    單蹤示波器和雙蹤示波器的區(qū)別

    示波器,作為電子測試領(lǐng)域的重要工具,用于觀測和分析電信號的波形。在示波器的種類中,單蹤示波器和雙蹤示波器是兩種常見的類型。它們各有特點(diǎn),適用于不同的測試場景。本文將深入探討單蹤
    的頭像 發(fā)表于 05-23 17:30 ?1736次閱讀

    示波器的帶寬是什么 示波器帶寬選擇的技巧

    示波器的帶寬是示波器性能的一個重要指標(biāo),它指的是示波器可以準(zhǔn)確地測量和顯示信號的最高頻率。
    的頭像 發(fā)表于 05-20 15:37 ?1572次閱讀

    怎樣利用數(shù)字示波器測量信號的周期和振幅

    在電子工程領(lǐng)域,信號的周期和振幅是評估和分析電路性能的重要參數(shù)。數(shù)字示波器作為一種高精度、高效率的測量儀器,被廣泛用于測量信號的周期和振幅。本文將詳細(xì)介紹如何利用數(shù)字示波器進(jìn)行信號的周期和振幅測量,并通過具體步驟和案例分析,讓讀者更好地理解和掌握這一技術(shù)。
    的頭像 發(fā)表于 05-17 17:08 ?3653次閱讀

    示波器怎樣測交流電呢?

    示波器是一種用來觀察和分析電信號波形的電子測量儀器。它通過將時間變量的電信號轉(zhuǎn)換為屏幕上的垂直偏轉(zhuǎn),來顯示信號的波形。
    的頭像 發(fā)表于 05-17 16:29 ?2437次閱讀

    模擬示波器和數(shù)字示波器的區(qū)別

    示波器作為電子測量領(lǐng)域的重要工具,經(jīng)歷了從模擬到數(shù)字的技術(shù)變革。模擬示波器和數(shù)字示波器各有其特點(diǎn)和應(yīng)用場景,兩者在工作原理、性能參數(shù)、功能特性以及使用體驗(yàn)等方面都存在顯著的差異。本文將對模擬
    的頭像 發(fā)表于 05-11 16:13 ?2999次閱讀

    混合示波器與數(shù)字示波器的區(qū)別

    在電子測試與測量領(lǐng)域,示波器作為一種重要的工具,其性能和應(yīng)用對于工程師和技術(shù)人員來說至關(guān)重要。隨著科技的發(fā)展,示波器的種類和功能也在不斷演進(jìn),其中混合示波器和數(shù)字示波器作為兩種常見的
    的頭像 發(fā)表于 05-10 15:50 ?1015次閱讀

    數(shù)字示波器和模擬示波器的區(qū)別

    數(shù)字示波器和模擬示波器在電子測量領(lǐng)域都有各自的應(yīng)用,它們之間存在一些顯著的區(qū)別。
    的頭像 發(fā)表于 05-09 18:25 ?2180次閱讀

    泰克示波器TBS1102怎樣測交流電?

    泰克示波器TBS1102是一款功能強(qiáng)大的數(shù)字存儲示波器,它具備出色的性能和易于使用的界面,適用于各種電子測試和測量應(yīng)用。在交流電測量方面,TBS1102提供了多種功能和參數(shù)設(shè)置,能夠幫助工程師準(zhǔn)確
    的頭像 發(fā)表于 05-07 15:12 ?619次閱讀
    泰克<b class='flag-5'>示波器</b>TBS1102<b class='flag-5'>怎樣</b>測交流電?

    示波器的使用方法 示波器的用途有哪些?

    示波器是一種用于測量電壓信號的儀器,它可以將電信號轉(zhuǎn)換為可以在屏幕上顯示的波形圖形。在電子工程領(lǐng)域,示波器是一個必不可少的儀器,它可以用于許多不同的應(yīng)用和測量。本文將詳細(xì)介紹示波器的使用方法以及
    的頭像 發(fā)表于 02-18 16:18 ?2112次閱讀
    主站蜘蛛池模板: 精子pk美女| S货SAO死你BL大点声叫BL| 亚洲中文字幕欧美自拍一区| 88福利视频| 国产又爽又黄又不遮挡视频| 欧美 亚洲 有码中文字幕| 亚洲一区二区三区91| 国产激情文学| 热久久伊大人香蕉网老师| 中文视频在线| 红桃视频国产AV| 亲胸吻胸添奶头GIF动态图免费| 鸭子玩富婆流白浆视频| jlzz中国jizz日本老师水多| 久久黄色免费网站| 亚洲 欧美 国产 综合不卡| FREE性丰满白嫩白嫩的HD| 久久国产影院| 亚洲人交性视频| 国产人妻麻豆蜜桃色69| 三级黄色小视频| 成人国产AV精品久久久久| 美女脱了内裤张开腿让男人爽| 亚洲欧美中文在线一区| 国产亚洲精品久久久999蜜臀| 牲高潮99爽久久久久777| 超级碰碰青草久热国产| 男男高h浪荡受h| 欧美日韩中文国产一区发布| 色中色论坛网站| 扒开 浓密 毛| 欧美激情视频在线观看一区二区三区| 中文字幕人成人乱码亚洲影视| 九九久久精品| 一级am片欧美| 妇少水多18P蜜泬17P亚洲乱| 欧美特级特黄a大片免费| A级超碰视频在线观看| 欧美性黑吊xxx| 北原多香子qvod| 涩涩免费视频软件|