日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 工業(yè)控制 > 電路設(shè)計項目集錦
[導(dǎo)讀]一個沒有活動部件的秤——你說不可能?根據(jù)我目前項目的結(jié)果,它擁有令人難以置信的分辨率和準(zhǔn)確性。從一個鋁制長方體的彎曲到眼睛難以察覺的彎曲,一個24位模數(shù)轉(zhuǎn)換器(ADC),一個ESP8266或ESP32(縮寫為以下文本ESP)和一個OLED顯示器,一個數(shù)字秤被創(chuàng)造出來,在我的情況下,可以測量高達(dá)1kg的質(zhì)量,分辨率為0.01g!本系列的這篇文章解釋了它是如何工作的以及它背后的技巧。

一個沒有活動部件的秤——你說不可能?根據(jù)我目前項目的結(jié)果,它擁有令人難以置信的分辨率和準(zhǔn)確性。從一個鋁制長方體的彎曲到眼睛難以察覺的彎曲,一個24位模數(shù)轉(zhuǎn)換器(ADC),一個ESP8266或ESP32(縮寫為以下文本ESP)和一個OLED顯示器,一個數(shù)字秤被創(chuàng)造出來,在我的情況下,可以測量高達(dá)1kg的質(zhì)量,分辨率為0.01g!本系列的這篇文章解釋了它是如何工作的以及它背后的技巧。

ESP32和ESP8266上的Micropython

數(shù)字秤與HX711

我最初認(rèn)為這是不可能的,結(jié)果讓我非常驚訝。所用的鋁制組件是一種所謂的測壓元件。中間的兩個孔將金屬削薄,拉伸條粘在墻上,如圖1的頂部和底部。材料厚度約為。1毫米。

圖1:側(cè)面的工資單元

稱重傳感器與底板一起擰在右側(cè),秤帶連接在左側(cè)。

圖2:1公斤的天秤座

一張尺寸為10cm x 15cm的紙現(xiàn)在使測壓元件彎曲如此之多,或者更確切地說,很小,以至于秤上顯示的重量為0.9g。

這是如何工作的呢?拉伸帶是應(yīng)用于塑料載體的晶圓薄導(dǎo)體軌道。這些墊子粘在載體材料上。

圖3:拉伸條示意圖

通過彎曲載體,導(dǎo)體被稍微拉伸,從而變得更薄更長。這會引起電阻的變化,這取決于兩個參數(shù),ρ是比電阻,一個材料常數(shù)。

圖4:阻力公式

紙上的紙張很可能會引發(fā)12.5毫米高的長方體的彎曲,這是一個原子的順序。由此產(chǎn)生的測量條長度的變化也是如此。這足以改變四個測量條在測量橋上的張力,兩個在長方體上面,兩個在長方體下面,到目前為止,HX711可以得出一個可測量的,最重要的是可重復(fù)的電壓變化。

圖5:HX711 -電路

Micropython -語言-模塊和程序

要安裝托尼,你會在這里找到一個詳細(xì)的說明(英文版)。還有一個關(guān)于ESP芯片上的Micropython固件(截至2022年6月18日)如何被燒毀的描述。

Micropython是一種解釋器語言。Arduino IDE與Arduino IDE的主要區(qū)別在于,你只需要在ESP32上閃爍Micropython固件一次,以便控制器理解Micropython指令。您可以使用Thonny,μpycraft或ESPTOOL.PY。對于安東尼,我在這里描述了這個過程。

一旦固件閃過,你就可以很容易地在對話框中與控制器對話,測試單個命令并立即看到答案,而無需事先編譯和傳輸整個程序。這正是Arduino IDE困擾我的地方。如果您可以檢查語法和硬件的簡單測試,以便在編寫程序之前通過命令行嘗試和改進函數(shù)和整個程序部分,則可以節(jié)省大量時間。出于這個目的,我總是喜歡創(chuàng)建小型測試程序。作為一種宏,它們總結(jié)了重復(fù)出現(xiàn)的命令。然后從這些程序片段開發(fā)整個應(yīng)用程序。

自動啟動

如果程序要通過打開控制器自動啟動,請將程序文本復(fù)制到新創(chuàng)建的空白磁貼中。將此文件保存在工作區(qū)的boot.py下,并將其上傳到ESP芯片。該程序?qū)⒃谙麓螐?fù)位或開機時自動啟動。

測試程序

tony - ide中當(dāng)前編輯器窗口中的程序通過F5按鈕手動啟動。這可以比鼠標(biāo)點擊開始按鈕或通過菜單運行更快地完成。只有程序中使用的模塊必須在ESP32的flash中。

在兩者之間,Arduino id ?

如果您以后將控制器與Arduino IDE一起使用,只需以通常的方式刷新程序。然而,ESP32/ESP8266隨后忘記了它曾經(jīng)說過Micropython。相反,任何包含Arduino IDE或AT-Firmware或Lua或…可以很容易地提供micropython固件。這個過程總是像這里描述的那樣。

電路

以下是該項目的電路圖,它可以自由選擇ESP32和ESP8266。選擇用于連接HX711的gpio,以便您不會阻礙ESP8266的啟動,并且對于兩種控制器類型具有相同的名稱。只有I2C總線的連接是不同的,但由程序自動分配。

圖6:ESP8266上的HX711縮放

圖7:HX711在ESP32上的比例

HX711的Micropython模塊

與大多數(shù)傳感器組件一樣,HX711模塊也需要操作軟件。不幸的是,HX711不支持i2c。數(shù)據(jù)傳輸也通過dot和dpclk線以串行方式進行。24位加1 ~ 3位,用于通道A或B的選擇和加強的設(shè)置。MSbit(最高有效位=高質(zhì)量位)是HX711的第一個位。

用于編程模塊hx711。我有這個制造商使用的數(shù)據(jù)表。

異常類處理HX711不可訪問的情況。接下來是HX711類的聲明,Devicenotready繼承了HX711類。拋出異常后,將生成一個實例,構(gòu)造函數(shù)確保輸出錯誤消息。

我們從幾個常數(shù)開始。校正系數(shù)是用各種已知的按摩片和一個計算工具(例如Libre Office)進行加權(quán)來確定的。我一會兒就來。

構(gòu)造函數(shù)接受兩個引腳對象dot和pdsk,以及ch中的可選通道。Dout被切換為入口,因為它應(yīng)該從HX711的結(jié)果接收數(shù)據(jù)。ESP通過DPSCK管理指定速度。我們聲明屬性channel、tar和cal,然后等待HX711的Ready信號。如果它沒有出現(xiàn),則拋出WAITREADY()一個Devicenotready-Exception。如果它工作,那么我們獲得通道和增益設(shè)置,并在終端中發(fā)出消息。Dictionary Channelandgain將頻道號轉(zhuǎn)換為純文本。

Closure Time-out()實現(xiàn)了一個軟件定時器,它不會在程序處于sleep() & Co狀態(tài)時阻塞程序。返回的函數(shù)compare()如果分配了一個標(biāo)識符來詢問傳遞的時間是否已經(jīng)以毫秒為單位過期(True)或未過期(false)。

當(dāng)數(shù)據(jù)線處于GND電位時,ISDEVICEREADY()方法返回True。根據(jù)數(shù)據(jù)表,這是HX711準(zhǔn)備好發(fā)送數(shù)據(jù)的條件。時鐘線上的第一個正側(cè),HX711在DOUT線上提供MSbit。

圖8:邏輯2掃描

每增加一個脈沖,比特就依次推出。同時,ESP必須讀取和處理線路的狀況。ESP通過時鐘設(shè)定節(jié)奏。脈沖序列為125μs,對應(yīng)的時鐘約為。8 kHz。

我用邏輯分析儀和軟件logic 2記錄了脈沖結(jié)果。每當(dāng)數(shù)據(jù)傳輸出現(xiàn)問題時,我喜歡使用DSO(數(shù)字存儲示波器),或者更小的工具,更便宜的世界邏輯分析儀(La) 8通道。這個東西連接到USB總線,并使用免費軟件顯示總線管道上正在發(fā)生的事情。在脈沖的形狀無關(guān)緊要,而只與時間順序有關(guān)的地方,LA值千金。雖然DSO只提供曲線的快照,但您可以長時間感受洛杉磯,然后將自己放大到有趣的地方。你可以在Bernd Albrecht的博客文章“邏輯分析儀第1部分:使I2C信號可見”中找到設(shè)備的描述。其中還描述了如何掃描I2C總線。

在讀取24個數(shù)據(jù)位后,再使用pdsk發(fā)出的一到三個脈沖,即稅收位。你的意思是:

圖9:控制脈沖的含義

名稱是程序,WAITREADY()等待ISDEVICEREADY()的true,但之前在Readydydelay中設(shè)置了計時器,即3秒。如果Dout在此期間沒有變?yōu)閘ow,則會拋出一個devicenotready - exception。如果調(diào)用程序不攔截異常,就會關(guān)閉它。

HX711將數(shù)據(jù)作為雙補碼值發(fā)送。Conpricerult()實際上在設(shè)置的MSbit(位23)中識別負(fù)值。如果設(shè)置為2,則第2級是24的第2級減去得到一個真正的負(fù)數(shù)。

0xc17ac3 = 12679875設(shè)置了MSbit

12679875 - 0x1000000 = -4097341

clock()只在PDSCK線上產(chǎn)生一個12.4μs的正脈沖。

忽略channel()無參數(shù),然后該函數(shù)傳遞當(dāng)前通道和增益值。字典。將譯文轉(zhuǎn)換為純文本。

一旦通道號被移交,我們檢查正確的區(qū)域,檢查HX711是否準(zhǔn)備好,然后將相應(yīng)數(shù)量的脈沖推到PDSCK線上,24加上稅位。

HX711傳遞的原始值是由aw()接收的。變?yōu)門rue或根本不傳遞參數(shù),則返回值為粉紅色,即帶符號的整數(shù)。如果為false,則返回值Bloody,因為它對應(yīng)于位序列,raw。

我們正在等待HX711的發(fā)送,并將接收緩沖區(qū)設(shè)置為0。

在for循環(huán)中,我們在PDSCK上發(fā)送23個脈沖。每次運行時,我們都在數(shù)據(jù)線上的LSBIT(最低有效位=低質(zhì)量位)的位置,然后將位向左推一個位置。第一個接收到的位移動到位置23,即MSbit。在另一個時鐘脈沖之后,HX711將LSbit推到數(shù)據(jù)線上,我們只在原始的LSbit上或必須。除了競爭之外,下一次測量的稅收也必須被記錄下來。

為了平滑值的噪聲,我們不僅使用單個測量值,而且使用多個測量值的平均值。這就得到了方法mean(),我們把單個測量值的數(shù)量交給它。

未受污染的天平自然也提供了ADC值,即塔拉。我們總是在啟動稱重程序時調(diào)用該方法,以便能夠?qū)@示設(shè)置為0。Tara值在屬性self中。保存,以便方法Dimensions()可用,n再次是單個測量的數(shù)量。

方法Dimensions()將Tara從測量值中提取出來,然后通過除以校準(zhǔn)因子計算出以克為單位的真實測量值。稍后我將說明它是如何確定的。

在校準(zhǔn)期間,如果您可以手動處理校準(zhǔn)因子,而不必每次都將HX711.PY模塊上傳到ESP,這將是一個優(yōu)勢。當(dāng)前值將不帶參數(shù)返回。

wake up()和tosleep()將HX711從睡眠模式中喚醒,或者將其置于睡眠模式中。線路上的信號順序由HX711的數(shù)據(jù)表指定。

用于OLED顯示器的大字符集

大數(shù)字使測量更容易閱讀。我們使用30作為符號,而不是通常的8像素。文件geometer_30。包含相關(guān)信息。

因此,您可以從Windows提供的TTF中創(chuàng)建自己的字符集。

下載zeichensatz存檔文件。rdown并將內(nèi)容解包到任意目錄中。為了節(jié)省小費,我建議在硬盤或存儲卡的根路徑上放置一個名字簡短的列表。對我來說是F: \ fonts。

通過右鍵單擊該目錄并按下按鈕,在資源管理器中打開該目錄下的PowerShell窗口。然后左鍵點擊打開PowerShell窗口。

圖10:打開PowerShell窗口

在提示符下輸入以下一行,按“Enter”:

.\ Makecharset.bat Britannic 30 "" 0123456789, -+KG "" “F: \ fonts \ sources \”

圖11:字符集準(zhǔn)備好了

現(xiàn)在目錄britannic_30.py中有一個文件,其中包含新字符集的像素數(shù)據(jù)。僅實現(xiàn)字符“0123456789,-+KG”“”,節(jié)省存儲空間。您可以從目錄源中的Windows字體列表中獲取其他簽名速率,如上面指定的復(fù)制和轉(zhuǎn)換。請注意,文件名指定時沒有附加。tttf。

Libra的操作軟件

程序scale.py訪問四個外部模塊,hx711.py,oled.py,SSD1306,這些模塊在啟動前必須上傳到ESP的閃存中。PYand geometer_30.py。

關(guān)于變量sys。平臺的ESP可以確定它自己。然后將GPIO引腳聲明為I2C總線。

我們實例化一個顯示對象,刪除顯示并聲明連接到HX711的PIN對象,還有按鈕,Tara鍵的實例。

函數(shù)Putnumber()用數(shù)字n定位字符的像素模式(基于上面生成的提取,而不是Ascii)。圖案左上角的位置在XPOS, YPOS中。

查看文件geometer_30。pyx解釋了這個過程。在字符串字符中列出了字符。字符串中的索引是圖紙?zhí)?。因此,?”號代表數(shù)字11,“0”代表數(shù)字0。在列表編號中,此編號標(biāo)識Tupel具有寬度信息和像素矩陣。現(xiàn)在,它被逐行逐列分散,當(dāng)找到1時設(shè)置像素。這是隱藏的。只有當(dāng)顯示值為True Has時,整個緩沖區(qū)才會被發(fā)送到Display。返回值是下一個自由繪圖位置。

圖12:符號0的矩陣

繪圖位置設(shè)置為0,作為開始信息,我給出了一些“-”符號。然后ESP嘗試聯(lián)系HX711。如果成功,我們喚醒它,用增益128通道A,并看到屬性self中的TARAWALT。是土地。

如果連接不工作,我們在終端中得到一條消息,并在顯示中得到一系列零。

160MHz是ESP8266的最高速度,ESP32也包含240 MHz。

然后進入主循環(huán)。我們查看是否按下了Tara鍵,在顯示器上用一系列逗號確認(rèn),并獲得一個新的Tara值。這個功能是有用的,因為稱重單元受到溫度漂移和零點可以在任何時候重新調(diào)整。

輸出的格式字符串由測量值提供。斷開顯示,將繪圖位置刪除為0,用逗號小數(shù)點,并將緩沖區(qū)中的字符寫到倒數(shù)第二個。

隨著最后一個字符的輸出,緩沖區(qū)內(nèi)容被發(fā)送到顯示器。休息半秒后開始下一輪比賽。

校準(zhǔn)秤

圖13:用于刻度校準(zhǔn)的質(zhì)量塊

你需要一些質(zhì)量片,如果有必要,如果質(zhì)量片沒有校準(zhǔn),還需要一個廚房或字母秤。在這種情況下,你可以做一層厚厚的堅果或螺絲之類的東西。當(dāng)然,在使用前必須用不同的刻度確定質(zhì)量。

圖14:在ESP8266上校準(zhǔn)

現(xiàn)在啟動程序縮放。并在主循環(huán)中中斷Ctrl+C。HX711對象在HX實例化下,可以從終端控制臺訪問。我們從以下命令開始。

我們從25次單獨測量的平均值中減去塔拉值。如果天平?jīng)]有加載,結(jié)果應(yīng)該在-50…+50之間。

現(xiàn)在我們把大塊一塊一塊地放在一起,分成幾組,這樣它的壓力就會越來越大。每次我們再次啟動最后一個命令,并以克為單位寫下質(zhì)量和終端顯示的值。

讓我們在Libre Office Calc或其他程序中輸入,顯示測量曲線以及測定(相關(guān)系數(shù))和公式。

圖15:校準(zhǔn)曲線

相關(guān)系數(shù)R2等于1,這說明了我們測量的精度。我們可以忽略-43的軸截面,…訂單是10萬件。直線的斜率因子1104是我們追求的標(biāo)定因子?,F(xiàn)在將這個值共享給對象HX。

如果您現(xiàn)在是方法Dimensions() Call up,則值為0.0…應(yīng)該顯示。

佩戴文件hx711.py中的校準(zhǔn)因子,將它們上傳到ESP并啟動程序scale.py new。

如果在戴上重物時顯示重物,他們就贏了,可以敲打肩膀。

如果顯示的值稍微靠近期望的權(quán)重,您仍然可以對校準(zhǔn)因子值進行一些修改。如果你放大它,質(zhì)量值就會下降,反之亦然。

本文編譯自hackster.io

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉