chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Arduino正弦波發(fā)生器

Arduino正弦波發(fā)生器

2022-11-08 | zip | 0.42 MB | 次下載 | 2積分

資料介紹

描述

概述:

有一天,我正在閱讀 Arduino 論壇,發(fā)現(xiàn)一位年輕人想知道如何使用 Arduino 制作正弦波發(fā)生器。顯然,他是一名工科學(xué)生,這是他的任務(wù)。有人告訴他這是不可能的,其他人說(shuō)是的,但速度只有 50 Hz。由于我們公司為 Arduino 制作了 I2C DAC 開(kāi)發(fā)板,因此我認(rèn)為(對(duì)我而言)使用 DAC 板制作正弦波發(fā)生器會(huì)很有教育意義。

關(guān)于這個(gè)項(xiàng)目

信號(hào)發(fā)生器通常有各種可以產(chǎn)生的信號(hào),如正弦波、方波和三角波。其他具有掃描功能和任意波形。這些是研討會(huì)中的有用工具。它們可用于測(cè)試音頻電路、運(yùn)算放大器電路和測(cè)試電路響應(yīng)。大多數(shù)現(xiàn)代函數(shù)發(fā)生器可以輕松輸出高達(dá) 1 Mhz 的頻率。

因此,雖然我沒(méi)想到基于 Arduino 的正弦波發(fā)生器會(huì)取代我的桌面函數(shù)發(fā)生器,但我認(rèn)為看看如何設(shè)計(jì)一個(gè)正弦波發(fā)生器以及它的性能會(huì)很有趣。

poYBAGNo9HqAHOcnAAiqzeGE-vQ934.jpg
DAC PCB、Arduino 和無(wú)焊面包板
?

查找表

我決定最簡(jiǎn)單的開(kāi)始方法是創(chuàng)建一個(gè)值查找表,用于我的正弦波輸出。表中的值越多,輸出就越接近真正的正弦波。在創(chuàng)建要重復(fù)循環(huán)的查找表時(shí),使用 2 的冪也非常方便。因此,8 個(gè)值是行不通的,而 128 個(gè)值可能會(huì)對(duì) MCU 的能力造成負(fù)擔(dān)。我決定從 32 個(gè)值開(kāi)始。

接下來(lái),我需要決定提供多少分辨率。SF-5 基于 12 位器件 MCP4725 DAC。(注:您可以在 Tindie 上購(gòu)買(mǎi) SF-5,也可以購(gòu)買(mǎi)設(shè)備的 DIP 封裝并直接放在您的無(wú)焊面包板上)。所以,它是 12 位。我打開(kāi)一個(gè) Excel 電子表格,記下從 0 到 31 的數(shù)字。我需要的下一列是以弧度表示的角度。這只是指數(shù)乘以 2 乘以 Pi 除以 32。下一列是信號(hào)的歸一化幅度。我只是在上一欄中取了角度的正弦值。這產(chǎn)生了一個(gè)峰峰值為 2 個(gè)單位且以零為中心的信號(hào)。它的最大值為+1,最小值為-1。

輸出范圍為 0 到 5V,我需要一個(gè)以 2.5V 為中心且幅度為 ± 2.5V 的信號(hào)。下一列只是將信號(hào)乘以 2.5。然后我們將其偏移 2.5V。信號(hào)顯示最大值為 5V,最小值為 0V。完美的!

現(xiàn)在我們只需要把它轉(zhuǎn)換成一個(gè) 12 位的數(shù)字放到我們的表中。由于我們希望電壓為 5V 時(shí)的值為 4095,因此我們乘以 4095 并除以 5。要檢查,請(qǐng)查看第 8 行。電壓輸出為 5V,位數(shù)為 4095。

桌子

32 個(gè) 2 字節(jié)的數(shù)字不是很多數(shù)據(jù),可以很容易地存儲(chǔ)在 RAM 中,但這是一次學(xué)習(xí)體驗(yàn),我想學(xué)習(xí)如何將表存儲(chǔ)在 FLASH 中并根據(jù)需要讀取它。優(yōu)點(diǎn)是有一天我會(huì)有太多的數(shù)據(jù)要放入 RAM 并且需要使用 FLASH,所以這是學(xué)習(xí)的好時(shí)機(jī)。命令是 PROGMEM,存儲(chǔ)數(shù)據(jù)的語(yǔ)句是:

const PROGMEM unsigned int mysine [] = {TABLE}

編碼

我編寫(xiě)了一個(gè)簡(jiǎn)單的循環(huán)程序,在串行線(xiàn)路上查找用戶(hù)輸入。在我的情況下,當(dāng)看到數(shù)字 6 時(shí),它會(huì)跳轉(zhuǎn)到通過(guò) I2C 總線(xiàn)將表格轉(zhuǎn)儲(chǔ)到 DAC 的代碼中。在我第一次想到我可以索引我的數(shù)組并讀取數(shù)據(jù)之前從未直接使用過(guò) FLASH。RTFM – 閱讀精美手冊(cè)。從 FLASH 讀取時(shí),您使用不同的命令 -

temp = pgm_read_word_near(mysine + i);

這將從數(shù)組中讀取一個(gè) 16 位字或一個(gè)條目。我從 i=0 開(kāi)始并增加到 31,然后再次將其設(shè)置回零(i = I & 0x1F;)。很高興我們可以從 FLASH 中讀取字,但我們只能以字節(jié)寫(xiě)入 DAC。我們需要對(duì)我們的數(shù)據(jù)進(jìn)行一些編輯。

首先發(fā)送 MSB。前兩位是速度,接下來(lái)的兩位是掉電選擇模式,接下來(lái)的 4 位是數(shù)據(jù)。使用 Wire.write 命令將其發(fā)送出去。接下來(lái),我們發(fā)送低 8 位數(shù)據(jù),同樣使用 Wire.write 命令。

頻率怎么樣?

當(dāng)您進(jìn)入一個(gè)循環(huán)并連續(xù)發(fā)送 32 個(gè)表?xiàng)l目時(shí),這是您可以執(zhí)行的最快速度和最高頻率。我得到的頻率是92Hz。然后我想調(diào)整頻率,我決定在每個(gè)表?xiàng)l目之后添加一個(gè)延遲()。每個(gè)周期將是 32 毫秒(大約)。因此,后續(xù)頻率為 23Hz、13Hz、9Hz。您最多可以延遲 256。我認(rèn)為這給了我 8 秒的時(shí)間。

pYYBAGNo9H6AP9sYAAVU6upnQC0257.jpg
來(lái)自 DAC 的原始輸出
?

多么可怕的輸出!

看著原始輸出的圖片,您可能會(huì)想,“看起來(lái)多么糟糕的輸出?!?它有一個(gè)階梯圖案。那是因?yàn)檫@些是我們從 DAC 輸出的 32 個(gè)電壓。我們可以在表格中添加更多條目以使階梯模式變得更平滑,但這會(huì)降低最大頻率。我們可以做的另一件事是濾除在我們改變電壓電平時(shí)在波形中形成尖角的高頻。我使用了一個(gè)簡(jiǎn)單的 RC 低通濾波器;R = 10K,C = 0.1uF,截止頻率約為 160Hz。如您所見(jiàn),它看起來(lái)好多了,并且更接近真正的正弦波。

poYBAGNo9IKAa7p-AAWUMQL4pPs244.jpg
過(guò)濾輸出
?

改進(jìn)用戶(hù)界面

我允許用戶(hù)通過(guò)鍵盤(pán)修改延遲,方法是在收到“+”字符時(shí)將延遲增加一個(gè)單位,并在收到“-”字符時(shí)減少延遲。

我也不想將用戶(hù)鎖定在無(wú)限循環(huán)中,所以我檢查用戶(hù)是否發(fā)送了“e”或“E”(因?yàn)闆](méi)有什么比擔(dān)心區(qū)分大小寫(xiě)更煩人的了)。當(dāng)我得到它時(shí),我將其視為退出請(qǐng)求并跳回主循環(huán)。我這樣做有點(diǎn)不雅,不考慮我將電壓輸出留在哪里。但請(qǐng)記住,我們只是在這里玩得開(kāi)心。如果這是一個(gè)產(chǎn)品,我希望將輸出保持在已知狀態(tài),可能是 0 伏。

poYBAGNo9ISAQrjzAAAo2HT1-nE509.jpg
這是主菜單(數(shù)字應(yīng)該是連續(xù)的,但沒(méi)有很好地復(fù)制)
?

改進(jìn)

我使用了一個(gè)任何人都可以在 Arduino 上編寫(xiě)的簡(jiǎn)單用戶(hù)界面。我相信你可以在你的電腦上使用 Python 或其他東西來(lái)制作一個(gè)非??岬慕缑妗?/font>我也沒(méi)有這樣做的具體原因,所以如果你有一個(gè)有實(shí)際需求的項(xiàng)目,你可能會(huì)更改代碼以適應(yīng)。

演示

我制作了一個(gè)演示視頻,其中包含菜單中的所有選項(xiàng),包括 Sinewave 輸出 (6) 并將其放在 Youtube 上。如果你跳到最后,你可以看到正弦波的演示:

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1人工智能+消費(fèi):技術(shù)賦能與芯片驅(qū)動(dòng)未來(lái)
  2. 15.25 MB  |  4次下載  |  免費(fèi)
  3. 2?業(yè)電源&模塊電源產(chǎn)品?冊(cè)
  4. 15.40 MB   |  1次下載  |  免費(fèi)
  5. 379M15 TO-252三端穩(wěn)壓IC規(guī)格書(shū)
  6. 0.86 MB   |  次下載  |  免費(fèi)
  7. 4MBRD20150CT TO-252肖特基二極管規(guī)格書(shū)
  8. 0.54 MB   |  次下載  |  免費(fèi)
  9. 5自動(dòng)鎖螺絲運(yùn)動(dòng)控制系統(tǒng)用戶(hù)手冊(cè)
  10. 6.65 MB   |  次下載  |  5 積分
  11. 6奧特光耦產(chǎn)品手冊(cè)
  12. 4.83 MB  |  次下載  |  免費(fèi)
  13. 7SMA系列10MHz~40GHz同軸檢波器
  14. 559.60 KB  |  次下載  |  免費(fèi)
  15. 8CD7388CZ:7W×4 四通道音頻功率放大電路技術(shù)手冊(cè)
  16. 0.39 MB   |  次下載  |  10 積分

本月

  1. 1元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  2. 6.40 MB  |  241次下載  |  免費(fèi)
  3. 2元宇宙底層硬件系列報(bào)告
  4. 13.42 MB  |  184次下載  |  免費(fèi)
  5. 32022 年展望報(bào)告 – 半導(dǎo)體產(chǎn)業(yè)
  6. 1.43 MB  |  136次下載  |  免費(fèi)
  7. 4晶振與濾波器應(yīng)用電路《電子工程師必備:元器件應(yīng)用寶典》
  8. 1.57 MB  |  90次下載  |  免費(fèi)
  9. 5汽車(chē)電子行業(yè)深度解析:智能化與電動(dòng)化方興未艾
  10. 6.47 MB  |  71次下載  |  免費(fèi)
  11. 6中國(guó)DPU行業(yè)白皮書(shū)
  12. 23.80 MB  |  37次下載  |  免費(fèi)
  13. 7晶科鑫代理線(xiàn)-微盟電子2021年度產(chǎn)品目錄選型手冊(cè)
  14. 14.75 MB  |  27次下載  |  免費(fèi)
  15. 8SJK晶振產(chǎn)品目錄-簡(jiǎn)化版-2022
  16. 13.77 MB  |  20次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935134次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191425次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183352次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81602次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73822次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分