Re: [器材] 使用Arduino製作烘豆機控制盒-Part2 風扇控制&瓦斯讀取
主程式
軟體的部基本上就是在山姆大提供的.ino中再額外多加一些不同功能的區塊
https://github.com/Sam3258/TC4-Simulator/blob/master/UnoTC4/UnoTC4.ino
需要安裝的Library從程式裡面就可以看出端倪
#include <Arduino.h>
#include <SoftwareSerial.h>
#include <MAX6675.h>
#include "SevSeg.h"
PWM風扇控制
第一步影片,講解了關於可變電阻控制電壓,經過Arduino偵測後輸出不同的PWM控制燈泡https://youtu.be/gczUU6O47mg
再看第二個影片,說明了各式風扇控制的方式與程式碼,其中的4線PWM就是我們需要的程式https://youtu.be/UJK2JF8wOu8
將這兩個概念結合起來,我們就可以得到一個利用可變電阻(VR)控制PWM風扇的方法了
已經知道,電壓讀取值為0~1023,PWM訊號為0~255,所以在轉換時可以用
讀取值*(255/1023)來得到duty cycle,但是這樣的數據並不實用,所以我改用另一種方式將他以每5%為一個調節,0~100%就可以切成20塊,1023/20=51 255/20=12.75,但是20*12=240,所以可以再+1,另外風扇是有最低轉速的,不是PWM=0就會停轉,所以我們不需要太在意過低的PWM輸出,而且烘豆過程中也不適合風扇完全停轉
因此我將算式改為
fan_pwm= 1+(FAN_CTRL_VR/50); //將電壓值轉換為Dutycycle
fan_pwm= fan_pwm*12;
另外經過測試,風扇最低轉速約為960rpm,最高轉為5000轉
那麼風扇的開度就是
fan_percent =fan_pwm*(5/12); //風門開度百分比
if(fan_percent<21) fan_percent=20;
if(fan_percent>99) fan_percent=100;
另外關於計算rpm的部分
while((millis()-fan_time)<500){}
fan_rpm = fan_count*60; //0.5s內的plus訊號*2*60/2 = 分鐘轉速
因為2個rise訊號是一次波的周期,所以要除以2,每60秒為一分鐘,故*60,計算時間是500ms,乘以2才是1秒,所以*2*60/2=*60
在這個部分出現了一個奇怪的BUG,這個程式在我另外分開寫的小程式內執行沒有任何問題,但當他被丟到主程式中,只要fan_count不經過Serial.xxxxx 就沒有值,具體原因不得而知,不過只要在在他後面加一句串口指令就可以解決了,問題不大,再者,風扇轉速其實沒有什麼參考價值,純粹寫身體健康的附加功能,沒有的話也無所謂。
最後風扇的小程式如下
https://i.imgur.com/WJ0oqVI.jpg
瓦斯Bar值讀取
瓦斯讀取就簡單多了,只是讀類比值而已,當然為了避免浮動過大,還是將他進行多值平均才吐出數值,利用millis(),讓瓦斯的數值不斷累加,累加1秒後才進行數值平均
https://i.imgur.com/d3oHaYt.jpg
-----待續-----
--
※ 編輯: plzza0dogs (111.248.203.199 臺灣), 11/13/2021 20:44:26
豪棒
推一下 猛
很猛
19
Re: [請益] 數位電供優勢在哪?(原文吃光) 數位電供有兩種,一種是類比控制功率級+二次側MCU(微控制器)/DSC(數位信號處理器) 監測二次側輸出電壓電流,調整電壓,調整OCP,調整風扇轉速等等 這種讓使用者去了解目前供電輸出狀況,進階使用者可調整電壓、單/多路、溫控曲線 屬於一般電源加值功能,若是沒有用到這些功能或覺得不需要的,買傳統型電供就好11
Re: [器材] 使用Arduino製作烘豆機控制盒-Part4 機殼規劃與安裝其實現在看來文章有點本末倒置,因為我是作好了才開始寫這篇文章,所以有點倒敘了,應該是首先要決定硬體的部分,我參考了阿黃的控制盒,要有溫度輸入、瓦斯表輸入、風扇控制、瓦斯點火器需要110V輸出,插座有幾個,分別是馬達、冷卻風扇、電燈(壞了,不重要) 所以一開始就先買一些基本硬體,再稍微研究過瓦斯的壓力傳送器是電流式之後買了一個電流轉電壓的模組(那時候還不知道DCbox DC51已經魂歸離恨天) 稍微排列一下,瓦斯點火器用2pin航空接頭(110v)、DB9作單片機的輸出,確定實坪登錄後就可以開始挑選機殼畫面板開孔了,於是畫了第一版的機殼13
Re: [閒聊] 電供 風扇停轉 你是哪一派? 負載/溫度(原文被狼啃光) 關於風扇是否要低負載/低溫停轉,在下是比較推薦維持低速運轉,至少有氣流流動 因為即使高轉換效率,於低負載下仍會產生些許廢熱, 加上目前機殼多採電源下置,設有獨立進風口時不會參與機殼對流, 無法透過機殼正壓進風把氣流從電源出風口擠出去,容易造成熱量累積10
Re: [器材] 使用Arduino製作烘豆機控制盒-Part7 程式更新與修復繼上次發文之後,我在實際上機時還是遇到不少問題 第一 風扇轉速偵測會有異常飆升的情況 計算風扇轉速的程式,透過偵測收到Plus訊號的次數做計算,但出來的值總是異常飆高降 不下來,甚至開度70-90%的風扇,偵測轉速比100%開度的還高 開serial.print看也是,風扇轉到100%會飆高到150再降回897
[請益] Air X風扇控制器問題買了才注意到預裝風扇都是3pin的 只能監控不能調速,全速1500轉 介於吵與不吵之間 君主的小編說控制器的Fan_1接口是主風扇 所有風扇都跟著它的轉速5
Re: [請益] 集線器安裝問題大量PWM風扇(三個以上)可以考慮銀欣CPF-04 分接兩個PWM風扇則是貓頭鷹NA-SYC1 主機板要讓風扇做目標溫控就得看BIOS設計 這邊指的是"目標"(例如針對CPU或系統/主機板溫度) 現在最新的主板BIOS應該都能讓風扇接口調整目標4
[請益] 風扇分接線,小3pin會跟小4pin轉嗎?各位好,請教一下 想買機殼風扇分接線 小4PIN 1分3 PWM 那種, 但是想先瞭解,1
[情報] Alphacool推出Core120 140 PWM高轉速風扇Alphacool的風扇產品有了新成員! 安靜高效的Core PWM風扇現在有120mm和140mm兩種尺寸可供選擇 每種都有3種不同的速度版本 120mm版本的最大速度為2500rpm、3000rpm和4000rpm 140mm版本的最大速度為2000rpm、2500rpm和3200rpm。