單片機(jī)水塔水質(zhì)監(jiān)控器設(shè)計(jì)
作者:七彩流星雨 來源:本站原創(chuàng) 點(diǎn)擊數(shù):
… 更新時(shí)間:2014年04月21日 【字體:
大 中 小】
2012年11月24日21:39:27
中午的時(shí)候,我編寫完AD轉(zhuǎn)換程序了。在開發(fā)板上實(shí)驗(yàn)成功。
void AD_init()
{
SREG|=0x80;
ADCSRA|=1<<ADEN|1<<ADIE|0x07;//AD轉(zhuǎn)換器啟動,中斷使能,128分頻
ADMUX=1<<REFS0|1<<ADLAR;//使用AVCC作參考電壓,使用AD0通道,左對齊
ADCSRA|=1<<ADSC|1<<ADATE;//啟動轉(zhuǎn)換。置位自動轉(zhuǎn)換
}
SIGNAL (ADC_vect)
{
//static char last;
char temp;
temp=ADCH;//舍去兩個(gè)精度,直接取高位。實(shí)際上我就只有四位的數(shù)碼管,再多位數(shù)也無意義。
//if (abs(temp-last)>2)
{
display(temp);
//last=temp;
}
}
下午放學(xué)回來后, 將傳感器連接到電路板上?墒沁B接好后,同樣的程序,又出現(xiàn)了亂碼。
郁悶的,我繼續(xù)一個(gè)個(gè)用萬能表電阻檔測,發(fā)現(xiàn)其中一個(gè)74HC573好像每個(gè)輸出引腳都互通的,他們之間存在1KΩ的電阻。實(shí)際上正常的話,輸出引腳之間為高阻態(tài)。哎,不知道什么時(shí)候弄燒你了,真是郁悶的。我之前焊接的時(shí)候,沒有放IC卡座,這下有得我拆了……



今晚拆的時(shí)候,我開始是用上我的秘密武器——真空吸錫器去拆的,但是,我甩了好幾下,也用力打了幾下氣,感覺總是被堵住,氣不夠大,這個(gè)情況上次我就出現(xiàn)了,但那次我仍是沒辦法疏通,即使是加熱情況下,里面細(xì)小的管子里附著的焊錫怎么甩都不移位,冷了又堵了。
今晚我狂甩,但仍是沒法通,然后突然,“啪”!的一聲,它中間冒出火花,電阻絲短路了,頓時(shí)房間黑暗……我也被嚇到,叫了一聲,但并沒有電到我。
外公怕了怕,聽說他正在前往廁所,聽到我叫聲后,回頭一看房間的燈黑完了,他說怕死了。
外公家這層樓的設(shè)計(jì)還算不錯(cuò),幾乎每個(gè)房間都有漏電斷路器,只需要在門口處把開關(guān)打回去即可。我以為沒有呢,然后又要跑到一樓大門外面冒著冷風(fēng)摸黑換保險(xiǎn)絲。
不過,沒有熱風(fēng)機(jī)的我,只要用土辦法——撬,我邊用電烙鐵加熱邊撬,撬得一點(diǎn)是一點(diǎn),往死里撬,越撬越憤怒,撬得我想死的念頭都有了。沒有先進(jìn)的工具真可怕。但我照樣把你給拆出來了!~~~~
然后我吸取教訓(xùn),先給他一個(gè)IC座,再插上新的。也拖這次“福 ”,我把電路板的線又整齊排了下,要是不動這個(gè)功夫的話,我也不再想去排線了。

然后再而三地用萬能表測,直到把整個(gè)電路都測完,第一確保沒有短路現(xiàn)象(焊接問題),第二接對線。測試合格后,我自信地接上傳感器!
傳感器與主板的連接,我還是像上次自行車安全行駛監(jiān)控器那樣,設(shè)計(jì)一個(gè)直角三角形的接頭,為了防止反插。但是如果非常非常不小心的話,仍會出現(xiàn)反插的情況。但是對于這個(gè)渾濁度傳感器內(nèi)部的電路來說,沒有像觸摸傳感器那樣?jì)赡郏谴挝覔Q掉三個(gè)~~~),要盡早意識到就沒問題。
哈哈,一接上去,馬上看到了相對穩(wěn)定的數(shù)字180左右。
然后我把它放到清水里,AD的電壓轉(zhuǎn)換結(jié)果為239 。我再放到渾濁了一天的水里,電壓示數(shù)為223!。!
天啊!居然這次正常了!和官方數(shù)據(jù)手冊的圖像一樣!大概就是一個(gè)減函數(shù)的圖像。隨著渾濁度增大,電壓越來越低。然后我用一張紙直接隔著傳感器,示數(shù)為5左右。哈哈!是不?電壓這時(shí)很低了,如果水很渾濁,就會像紙一樣,阻礙光線的散射和反射。



PS:AD轉(zhuǎn)換器把通道里的電壓轉(zhuǎn)換出來,輸出到寄存器里的結(jié)果并不是實(shí)際電壓值。
它是把基準(zhǔn)電壓(我設(shè)為由AVCC提供,電壓為5V) 平均分成256份(我舍去了兩位精度)。即每份5/256約為0.02V。然后它會自動利用單片機(jī)提供的系統(tǒng)時(shí)間,把電壓從GND的0V一份一份遞增,就是逐次逼近通道電壓。當(dāng)很近的時(shí)候,觸發(fā)系統(tǒng)中斷并把遞增了多少份這個(gè)數(shù)值寫到寄存器里。在這里我設(shè)置了自動連續(xù)轉(zhuǎn)換,AD轉(zhuǎn)完后緊接著進(jìn)行下一次轉(zhuǎn)換,除了斷電和使能位清零,它都會一直轉(zhuǎn)換下去,而且轉(zhuǎn)換速度也不慢。我的系統(tǒng)時(shí)鐘使用內(nèi)部8MHz,AD轉(zhuǎn)換時(shí)選用了256分頻因子。
實(shí)際電壓可以通過這個(gè)數(shù)據(jù)獲取。即是把數(shù)碼管顯示的數(shù)據(jù)乘上 0.02V即可。
因?yàn)檗D(zhuǎn)換速度快,而且我設(shè)置自動連續(xù)轉(zhuǎn)換,每次轉(zhuǎn)換的結(jié)果立刻顯示出來。
這樣的話,數(shù)碼管顯示的數(shù)據(jù)會一直有所跳動,比如傳感器懸空時(shí),數(shù)碼管會隨機(jī)顯示179~181這三個(gè)數(shù)據(jù),帶有閃爍。
我在想能不能降低點(diǎn)轉(zhuǎn)換頻率呢?但是對水的靈敏度就降低了。
如果我要限制在兩次結(jié)果相差不到2的時(shí)候,取上一次的結(jié)果顯示。這樣的話,確實(shí)是可以減少閃爍。明天先吧,明天把程序改下。還要注意下單片機(jī)里面的減法運(yùn)算出現(xiàn)負(fù)數(shù)的情況,因?yàn)橛玫亩际莡nsigned char。盡量避免吧
明天打算再去取更多的渾水來,我要知道傳感器的分辨率,這點(diǎn)在數(shù)據(jù)手冊 中沒有提到。外公外婆家用的是井水,而且門口到處是泥沙,多容易的事~~~最后還要測下對可溶性雜質(zhì)的反應(yīng)。2012年11月25日11:38:40我對各種水進(jìn)行測試:
在干凈的井水中為238.
混有大顆粒的泥沙,中層液體為145
加了食鹽溶解后,測得食鹽水為230
這時(shí)碰巧我媽洗完菜,我拿了一點(diǎn)洗菜水。測得232
在細(xì)小的沙粒中,取上層測得203實(shí)驗(yàn)結(jié)果還是比較滿意的。對可溶性的物質(zhì)也可以測得出,而且相差5以上。往后還要考慮要模擬水井下的物質(zhì)。還有管道的設(shè)計(jì)。2012年11月25日15:42:18對程序改編,使用定時(shí)器控制AD的啟動。我設(shè)置為每秒只轉(zhuǎn)換兩次。轉(zhuǎn)換太快閃爍得要緊。void AD_init()
{
SREG|=0x80;
ADCSRA|=1<<ADEN|1<<ADIE|0x07;//AD轉(zhuǎn)換器啟動,中斷使能,128分頻
ADMUX=1<<REFS0|1<<ADLAR;//使用AVCC作參考電壓,使用AD0通道,左對齊
//ADCSRA|=1<<ADSC|1<<ADATE;//啟動轉(zhuǎn)換。置位自動轉(zhuǎn)換
TCNT1=0xC2F7;//每0.5秒一次中斷
TCCR1B|=0x04;//256分頻
TIMSK|=0x04;//定時(shí)器1中斷溢出使能
}
SIGNAL (ADC_vect)
{
char temp;
temp=ADCH;
display(temp);
TCNT1=0xC2F7;
}
SIGNAL (TIMER1_OVF_vect)
{
ADCSRA|=1<<ADSC;//AD啟動轉(zhuǎn)換
}
2012年11月26日下午
和在市政府的科協(xié)主任 聊過后,深感時(shí)間緊迫。定于12月1日前提交文字資料和相片。我決定以水的渾濁度為根據(jù)控制抽水機(jī)是否繼續(xù)抽水作為本次項(xiàng)目的功能。另外加裝水位傳感器,實(shí)現(xiàn)整套系統(tǒng)的全自動。不知道這個(gè)定位好不好,雖然不如去年的好,總之拼一下試試。
現(xiàn)在只需要文字資料和照片,不管實(shí)際功能如何,得想辦法以假亂真。。。在照片上體現(xiàn)出所有功能 。
抽水機(jī)聽取主任的建議,用養(yǎng)魚的水泵代替。
2012年12月5日下午,再次與科協(xié)部長見面還碰巧看見張老師,他對該裝置也提出了幾點(diǎn)建議,但是時(shí)間太緊,目前沒做完是一大麻煩,而且外觀和整體模型都未成形,僅僅做好了核心部分。這種情況比去年的還糟。
建議有:
不僅由數(shù)碼管顯示水的渾濁程度,旁邊加上3個(gè)LED燈輔助顯示水的渾濁程度。
再外加四個(gè)LED燈,分別顯示正常工作中,因缺水而補(bǔ)水中,強(qiáng)制抽水中,因渾濁而停止抽水中。
外殼封裝成黑匣子,只保留對用戶有直接作用的部分。渾濁度傳感器打算使用熱熔膠密封,將其捆綁在水泵上,隨水泵一起入水。
設(shè)計(jì)水塔與水井(模型) 的水循環(huán)管道,方便演示其功能。
我個(gè)人發(fā)現(xiàn),對于不同環(huán)境,即使是讓人感覺很清的水,顯示出來的數(shù)值都不相同,并不能以一個(gè)定值來評估水的渾濁度。我看需要以我目前所看見的最純凈的水為標(biāo)準(zhǔn),采用百分比形式。當(dāng)換了不同的環(huán)境后,通過一個(gè)按鍵,設(shè)定以當(dāng)?shù)丨h(huán)境的清澈時(shí)的數(shù)值為準(zhǔn),然后程序里把該數(shù)值乘上一個(gè)百分比得出渾濁與不渾濁的分界點(diǎn)。
造成不同數(shù)值的原因有可能是光線問題、不同容器的容器壁的反射和散射作用,水質(zhì)的問題。一個(gè)弊端就是當(dāng)?shù)氐乃钋宄壕椭荒茉谶@個(gè)值了,不能再高了。所以臨時(shí)采用百分比這種比較粗略的方式判斷,否則就會導(dǎo)致一直處于因渾濁而不能抽水的狀態(tài)。
2013年1月28日17:36:51
今天上網(wǎng)登錄科技創(chuàng)新大賽的服務(wù)平臺,發(fā)現(xiàn)市級和省級的審查都通過了吶。。那我就打算在這個(gè)寒假做完它。上次那個(gè)自行車安全行駛監(jiān)控器在一個(gè)月的時(shí)間內(nèi)趕做,太趕了,沒爸在家?guī)团脑,根本沒時(shí)間完成,好險(xiǎn)。2013年2月7日23:51:17
接到通知,大賽組委會發(fā)的通知,我的作品已經(jīng)列在進(jìn)入決賽的名單里了。http://www.gxqs.org/creative/wjtz/201302/821.html
3月22號報(bào)到。嗯,還有兩個(gè)月?磥磉@次時(shí)間還是比較充分的。那就趕快做吧!欽州市算我在內(nèi)總共有三個(gè)人參加比賽,其中兩個(gè)是小學(xué)生,他們都是靈山縣實(shí)驗(yàn)小學(xué)的,看來靈山確實(shí)不錯(cuò)。
今晚, 我第一次嘗試使用三極管,我以前一直很怕它,不是很知道怎么用法,今晚鼓起勇氣,就算失敗也要試一下。因?yàn)橄肓讼,僅僅是控制一個(gè)繼電器,就動用一個(gè)ULN2003,就太浪費(fèi)了。我上網(wǎng)自學(xué)了下,了解三極管的種類和構(gòu)造,以及使三極管工作在放大和開關(guān)下的條件后,我焊接進(jìn)去試了下,居然成功了!
比起以前常用ULN2003電路來得更簡潔,又占極少的電路板面積。我用的是8050D NPN型三極管來控制繼電器。好簡潔呢!爽吶!以后一定常用三極管,當(dāng)然控制量多就用IC了
我的接法是,單片機(jī)IO引腳串聯(lián)100歐電阻(因?yàn)檎麄(gè)系統(tǒng)都是用5V的,單片機(jī)IO輸出即使電流不大,但也是5V,串電阻是使基極的電壓小于集電極的電壓,就是集電結(jié)反向偏置)到三極管基極
,發(fā)射極接地(發(fā)射極正向偏置),+5V接到繼電器的一個(gè)線圈引腳,另一個(gè)線圈引腳接到三極管集電極,這樣三極管就工作在放大狀態(tài)下了。
三極管有三種狀態(tài).
1). 截止?fàn)顟B(tài) : uB<0,兩個(gè)PN結(jié)均為反偏,iB≈0,iC≈0,uCE≈UCC。三極管呈現(xiàn)高阻抗,類似于開關(guān)斷開。
2). 放大狀態(tài) : uB>0,發(fā)射結(jié)正偏,集電結(jié)反偏,iC=βiB。
3). 飽和狀態(tài) : uB>0,兩個(gè)PN結(jié)均為正偏,iB≥IBS(基極臨界飽和電流)≈UCC/βRc ,此時(shí)iC=ICS(集電極飽和電流)≈UCC/Rc 。三極管呈現(xiàn)低阻抗,類似于開關(guān)接通。
對于PNP三極管而言,如果要使PNP三極管導(dǎo)通,那么基極與發(fā)射極(發(fā)射結(jié))正偏,即:基極(N)電勢要比發(fā)射極(P)電勢低,(這就是發(fā)射結(jié)正偏).還需要基極(N)電勢要比集電極(P)電勢高,(集電結(jié)反偏).
對于NPN三極管而言,如果要使NPN三極管導(dǎo)通,那么基極與發(fā)射極(發(fā)射結(jié))正偏,即:基極(P)電勢要比發(fā)射極(N)電勢高,(這就是發(fā)射結(jié)正偏).還需要基極(P)電勢要比集電極(N)電勢低,(集電結(jié)反偏).


2013年2月11日22:24:19
更改5V電源輸入接口的位置,騰出空間放置按鍵、LED燈。我想把所有開關(guān)、LED燈連同數(shù)碼管放在一個(gè)開口處。
另外,我再焊接上一個(gè)IN4007二極管,用來防止電源線的正負(fù)接反。到時(shí)候參賽期間如果出問題,急忙檢查的話,怕接錯(cuò)線燒得更厲害。這么做是有點(diǎn)保障。


2013年2月12日10:20:09
完成四個(gè)按鍵的焊接。經(jīng)過程序測試無虛焊。
四個(gè)按鍵一端接到+5V,另一端接到PD0~PD3 。另外這四個(gè)端口引腳都接103排阻到地。
這樣便是高電平觸發(fā)了。只要按鍵按下,對應(yīng)引腳就被拉高,在程序里進(jìn)行“與”運(yùn)算即可知道按了哪個(gè)鍵了。

2013年2月12日22:29:34
焊接完所有LED燈了,線好多啊。。。。~~~不過也沒事,對于LED燈,只有6個(gè)LED的線擠在一起產(chǎn)生的干擾不會怎么樣的。

2013年2月13日15:20:11
水位傳感器的IO口也焊接完了。。。其實(shí)就是和按鍵一樣的焊接方式,把它們引出來。到這里,如果不出什么意外的話,電路板的所有焊接都已經(jīng)完成了吧。就剩程序和那些水井模型了


2013年2月17日12:41:44
計(jì)劃是: 2月底前做完水塔、水井的模型,三月初編寫和調(diào)試程序,最后兩星期做展板
2013年2月23日21:49:19
今天去買了抽水機(jī)、一個(gè)置物架,定做了兩個(gè)玻璃缸。
玻璃缸工程圖如下:(3D模型、工程圖制作軟件:SolidWorks 2011 。我還不太熟練這個(gè)軟件,不過比AutoCAD在這方面好用點(diǎn),我個(gè)人覺得AutoCAD用于平面畫圖很棒,立體建模和制作零件工程圖我就用SolidWorks了)然后直接打印工程圖去白沙街那些做魚缸的師傅定做。




另外,對于這個(gè)裝置,我加多了一塊木頭做支撐,然后開了一道口子,用來插線的。還買了一個(gè)排插,總不能剪斷抽水機(jī)的插頭來接繼電器吧。
引出來的IO和VCC插針,用熱熔膠固定了下,焊錫的硬度不夠。




還有就是置物架了。
買散裝的回來,自己組裝。汗,還沒有送說明書,就一袋螺絲……
而且我發(fā)現(xiàn)不知道是偷工減料還是沒有焊穩(wěn)上去運(yùn)輸途中掉了(八九不離十是沒有焊接上去,因?yàn)闆]有斷裂的痕跡),架子的頂部,支撐頂板的螺絲,只用了3個(gè),就是上了三個(gè)角而已,還有一個(gè)角沒有焊上孔,而且送的螺絲也只送3個(gè)。
這個(gè)架子中間本來還有一層的,我不裝它了,因?yàn)槌樗畽C(jī)有點(diǎn)高,只能放在下層。這樣還好,中間那層空出來的兩個(gè)螺絲我用來懸掛這個(gè)水塔水質(zhì)監(jiān)控器


看到了嗎?螺絲的”耳“只有三個(gè)。。。
裝好了!~~~~即使沒有安裝說明書也是很so easy 的。2013年2月24日14:24:10
在盒子旁邊開個(gè)口子,僅僅露出插孔。
開口我是去街上的五金電動工具店里借電鋸自己開的。但電鋸的齒輪直徑有點(diǎn)長,達(dá)到這個(gè)深度時(shí)已經(jīng)有點(diǎn)超長了,但是電鋸比手鋸快得多,而且手鋸開孔麻煩不好看。
后來用電工膠布包一層邊。





接好插排內(nèi)的線,線頭先上點(diǎn)焊錫,這樣扭進(jìn)去不容易松散,而且又壓得穩(wěn)。再打個(gè)結(jié)。因?yàn)槲掖蛩闶怯媚z水把它與盒子粘起來。一旦粘好后,里面的線出問題的話就很難拆開了。
2013年2月24日20:35:52
回家吃飯時(shí),路過一家店,看到門口有賣白色的膠布,走近一看,呵電工膠布!
然后順手就買下了。我拆開原來貼的黑色膠布,換上白色的。這樣更好看 呵呵!~~~~



內(nèi)部差不多就完工啦~~~明天放學(xué)后買些電線,3米應(yīng)該夠了。
2013年2月25日
買好了線和接頭了。
買了五米多的粗銅線和十幾米細(xì)一點(diǎn)的銅線(主要是價(jià)格問題。粗的1.5元一米,細(xì)的1.2元)
粗銅線打算用來連接抽水機(jī)的。細(xì)的拿來連接傳感器和延遲5V電源的。
另外。在買插頭時(shí),發(fā)現(xiàn)有一種插頭特別新穎,好有創(chuàng)意的設(shè)計(jì)!
它的腳可以旋轉(zhuǎn)的,隨時(shí)可以方便轉(zhuǎn)成三角插頭、兩個(gè)角的插頭,各個(gè)孔都可以插入!還申請了專利呢!~~~2元一個(gè)。


接線時(shí),在盒子里面打了個(gè)結(jié),無論是220V的電源線還是5V的電源線,都打上。鉆孔鉆8mm的。防止要是拿去參賽的時(shí)候,一不小心拉開了。多做點(diǎn)安全措施有必要的。不過這也就降低了制作的速度,慢工出細(xì)活嘛!


這樣就接好電源線啦!~~~黑色的插頭輸出5V 1A直流電,另一個(gè)直接接220V到電機(jī),由繼電器控制電路通斷。
另外,在電路板焊接的時(shí)候,我盡量把繼電器下的220V的兩根陰線與其他線,無論是電源線還是IO線,都離遠(yuǎn)點(diǎn),在繼電器那個(gè)區(qū)域,基本上不布線。繼電器的引腳到接線端子座采用焊錫走線,所以該裝置工作時(shí),繼電器那個(gè)區(qū)域蠻危險(xiǎn)的。等全部做完后,這個(gè)區(qū)域還要用酒精清洗一遍,檢查有沒有殘留的焊錫把電引到別的地方去,不然運(yùn)輸過程中稍微一搖晃說不準(zhǔn)就短路上了,220V的電源線一旦碰到5V電源線或單片機(jī)IO非常非常不妥的。
2013年2月26日23:17:44
快速地接完抽水機(jī)的電線,僅用了四分鐘~~~不過還算慢了。時(shí)間花在包膠布上,包得扎扎實(shí)實(shí)的。



另外,今天兩個(gè)玻璃缸工匠師傅那邊都做好了,但是沒有小車,而且又剛好不合適,只能一個(gè)一個(gè)搬回來了,明天再搬回一個(gè)就齊了。
然后還要解決水管的問題,我打算用軟水管做。還要弄兩個(gè)水閥才行,玻璃缸已經(jīng)鉆好25mm的孔了,不知道有什么水閥合適裝的,能夠密封好的,而且玻璃孔沒有螺紋。要不就用像空心螺絲那樣的水閥吧,如果漏水就剪一塊自行車內(nèi)胎墊下去。
2013年2月28日23:01:58
做這個(gè)玻璃缸,老爸也來插手啦。覺得還不如自己割玻璃做劃算,前幾天請白沙街的那個(gè)師傅做,兩個(gè)玻璃缸65+60=125元!
工費(fèi)太貴了,材料聽說才20元一平米。當(dāng)初是怕鉆孔鉆不好漏水之類的問題。不過這費(fèi)用算學(xué)校經(jīng)費(fèi)的話,就不管了,以后就自己做算了。
今天下午做了一下,發(fā)現(xiàn)還是有點(diǎn)漏水的問題,我用報(bào)紙墊在底部,灌多多的水,很快,深色的地方就出現(xiàn)在接口處。在水管接口處沒處理好,可能加厚點(diǎn)橡膠墊和涂一層玻璃膏在接口外面會比較好,等明天后天玻璃膠干了再說。


2013年3月2日
今天下午和爸一起合作搞,速度很快。
漏水地方懷疑是螺紋處水浸出來,然后卷上幾層層生料帶 ,再扭回去。這樣就不太漏水了。問題解決。
在臺子的頂部,拿兩塊木頭來固定玻璃缸的兩個(gè)角 ,防止它因底下的抽水機(jī)震動而移位掉下去。
另外在出水口,一半采用軟水管,一半采用硬水管,一方面好運(yùn)輸一方面簡潔好看。
硬水管還需要一個(gè)卡扣固定,控制器還需要幾根螺絲來固定,目前只是暫時(shí)綁一下來測試。
今晚,我把渾濁度傳感器用玻璃膠進(jìn)行密封。為了防止意外,我做好了兩個(gè)傳感器,如果有問題剪線接上另外一個(gè)。
玻璃膠涂得不太好,畢竟才接觸了兩次而已,這方面技術(shù)很生疏。

這是我認(rèn)為目前焊接得最漂亮的一個(gè)!


2013年3月3日17:21:40
今天整個(gè)裝置幾乎完工啦!
目前能實(shí)現(xiàn)水位檢測,低水位自動抽水。上午調(diào)試時(shí),總出現(xiàn)一個(gè)問題,數(shù)碼管亂顯示,程序也總是不對?戳艘魂囎硬虐l(fā)現(xiàn)是AVR單片機(jī)出問題了,程序經(jīng)常跑飛,具體原因先不管,果斷換了一塊,穩(wěn)定許多了。
我外婆在旁邊拍了N張照片。。。。但多數(shù)是手抖的。挑選了些清晰的都上傳了。更多照片請看相冊。







由于忘記先前跟爸說帶他那臺筆記本電腦 過來,所以就直接搬我的電腦到一樓來做算了。
盡管這里沒法接網(wǎng)線,我還是能上網(wǎng)的。先用我的手機(jī)連接三樓的無線路由器,然后手機(jī)用USB連接電腦。然后手機(jī)里打開設(shè)置共享網(wǎng)絡(luò),即可!
信號還可以,有兩格。
另外,裝置的外殼打算不蓋了,就這樣全露出來,標(biāo)簽、裝飾貼在頂部。就這樣才露出全手工的樣子,不搞太多封裝。
對于在單片機(jī)里的除法。一般來說我這個(gè)裝置需要進(jìn)行除法運(yùn)算,因?yàn)闇啙岫鹊脑u估等級,以清澈時(shí)的數(shù)值為標(biāo)準(zhǔn),中等渾濁為0.95,嚴(yán)重渾濁為0.90. 在單片機(jī)程序里,如果直接拿一個(gè)int或float型的數(shù)乘以0.95的話,程序體積會突然間增大三倍,原因是編程環(huán)境的內(nèi)部算法不好。
我投機(jī)取巧換了一種,因?yàn)槲也恍枰?shù)部分,所以,可以這樣來算:標(biāo)準(zhǔn)值*95/100 。這樣就可以避免進(jìn)行小數(shù)運(yùn)算了,還能自動舍去余數(shù),單片機(jī)里進(jìn)行整數(shù)乘除還是很可以的。
ClearValue=QualityValue;
CentreValue=ClearValue*95/100;
LowValue=ClearValue*90/100;
由于沒有特別規(guī)定的標(biāo)準(zhǔn)值,我暫且以目視渾濁為基準(zhǔn)了,這個(gè)百分比明天等玻璃膠干了以后,再實(shí)際更改下。
2013年3月4日
之前發(fā)現(xiàn)有一個(gè)渾濁度值的邊界問題,導(dǎo)致抽水機(jī)頻繁抽抽停停,就像抽筋一樣。
我以前看過自動控制論里一些有關(guān)邊界的問題,他們那些“磚家”理論說在兩個(gè)功能范圍之間設(shè)一個(gè)死區(qū),在該區(qū)里不做任何反應(yīng)。
這樣子,不說能解決邊界問題,但至少能減少觸發(fā)邊界問題的次數(shù),就是抽水機(jī)不是那么頻繁地抽抽停停,因?yàn)檫吔缡冀K存在。
于是我就試下吧!
2013年3月5日黃昏
我發(fā)現(xiàn)問題并沒有想象中的那么簡單, 經(jīng)過多次觀察傳感器的數(shù)值,不知道是單片機(jī)的AD模塊不穩(wěn)定還是傳感器的問題,不過我認(rèn)為單片機(jī)的AD模塊的誤差影響不大,官方數(shù)據(jù)手冊里說的是+-3LSB絕對精度。
我懷疑是傳感器那邊,當(dāng)加入泥沙等混濁物時(shí),液體是流動的,細(xì)小泥沙也跟著流動,導(dǎo)致光的阻礙也是不均勻的。
實(shí)際上,我觀測到的數(shù)值,浮動的范圍超乎我的意料, 竟是 0~11,在那么大的范圍不穩(wěn)地地浮動,叫我怎么判斷水是渾濁還是澄清的。
于是乎,我必須想辦法把這個(gè)誤差強(qiáng)制限制下來,必須要讓最終數(shù)值保持一定的時(shí)間不變動但又能快速識別出有混濁物加入。
在我洗澡的時(shí)候,忽然想出一個(gè)算法,能解決這個(gè)問題,然后今晚在學(xué)校晚自習(xí)有空時(shí)驗(yàn)算過幾次,就是考慮下極端情況,發(fā)現(xiàn)應(yīng)該沒問題的。今晚回到家后,按照我的思路編成程序,奇跡般的,數(shù)值的變動情況正是我想要的! That's what I need !
興奮死了!真想怒吼一聲“成功啦!”
就在此時(shí),電腦桌面突然變黑,右下角提示“此Windows副本不是正版”,彈出窗口說“你可能受到了盜版軟件的侵害!……”
好吧!純屬巧合,我不認(rèn)為微軟會在這個(gè)恰好時(shí)機(jī)這么告訴我的。懷疑是激活的期限到了吧,我裝的是正版原廠鏡像,等下我再用軟件再免激活一次就OK了,那不礙事的,誰不是用盜版的啊。
我對我的算法還是比較自信的,但是我還是得連續(xù)試驗(yàn)幾十次,看下這個(gè)算法是否一直長期穩(wěn)定有效,如果沒問題的話,我會貼出來一起分享!
2013年3月6日13:41:44
不錯(cuò),今天暫未發(fā)現(xiàn)算法有問題,剛剛解決了些關(guān)于指示燈的顯示邏輯問題和更合理地改進(jìn)該算法以便演示和實(shí)際使用后,程序算是比較完善的了。另外發(fā)現(xiàn)一個(gè)不穩(wěn)定的問題:我還沒把復(fù)位引腳拉高電平。目前還只是懸空的,這樣很不穩(wěn)定,單片機(jī)容易受到外界干擾自發(fā)復(fù)位。睡幾分鐘覺先,傍晚再搞
2013年3月7日13:38:45
發(fā)現(xiàn),僅僅拉高復(fù)位引腳并沒大作用,我懷疑不是單片機(jī)在復(fù)位造成的錯(cuò)亂。
在多次的開開關(guān)關(guān)中,我想可能是開關(guān)接觸不良或者電源的供電不穩(wěn)定 。
我在電源的接線端子處并聯(lián) 一個(gè)330uF的電容,做濾波用。效果明顯,反復(fù)開開關(guān)關(guān)都很穩(wěn)定。我當(dāng)初以為電源適配器里的濾波電容已經(jīng)起這個(gè)作用了,不必再接一個(gè),可能那個(gè)電容不夠大吧。
另外,意外地發(fā)現(xiàn),可以投機(jī)取巧用另外一種方法檢測水井是否抽干。原先我還打算在水井模型上開個(gè)洞放水位傳感器的,但是這個(gè)想法不現(xiàn)實(shí),真實(shí)中的水井是沒法安裝水位傳感器的。
現(xiàn)在的辦法就是,利用現(xiàn)在這個(gè)渾濁度傳感器,當(dāng)水位低于渾濁度傳感器的時(shí)候,紅外發(fā)射和接收他們兩個(gè)之間沒有水做介質(zhì)傳播,取而代之的是空氣。實(shí)際中發(fā)現(xiàn),在空氣中檢測到的電壓數(shù)值較低,相差三四十。
利用了這一點(diǎn),間接得出水井被抽干了。
這樣的話,我整個(gè)演示流程就順暢了,而且不用更換渾濁的水。拿兩個(gè)桶,一個(gè)渾濁,一個(gè)清水。一開始,水塔上的水處于低水位線,水管放在清水中,抽水機(jī)自動啟動抽水。當(dāng)我提起水管時(shí),渾濁度傳感器一起被提起,提出水面時(shí),能夠代表這是水井的水抽干了,然后裝置上按照原先的設(shè)置,會將此判斷為嚴(yán)重渾濁或水井無水,進(jìn)而停止抽水。
再放入清水中時(shí)就繼續(xù)抽水。然后再拿出來,放到渾濁的水中,它不會抽水。然后放回清水中,直到抽到高水位線自動停止。
整個(gè)過程就很順暢了。然后放掉水塔的水到清水桶中等待下一輪演示。 2013年3月7日23:05:57
算法基本上沒有問題,那到這里整個(gè)裝置就基本做好了,就剩些裝飾和貼紙說明。還有展板。
2013年3月8日13:36:55
公布下程序整個(gè)源代碼,轉(zhuǎn)載請注明出處哈,其中算法也在里面,供其他人參考。有什么意見也可以提下。







2013年3月12日12:46:45
悄悄加了一個(gè)小后門,就是在每次按下初始化按鍵時(shí),自動把當(dāng)前的標(biāo)準(zhǔn)值存到ATMega16單片機(jī)內(nèi)置EEPROM里,當(dāng)按下第四個(gè)按鍵時(shí),能夠自動把存在內(nèi)置EEPROM的數(shù)值讀取出來并作為當(dāng)前使用的標(biāo)準(zhǔn)值。這樣能夠方便我到現(xiàn)場演示前的調(diào)試。我可以在布展那天調(diào)到合適的標(biāo)準(zhǔn)值并保存下來,第二天直接讀取就行。
另外,貼在裝置上的貼紙也做好了,展板也OK了

原理解析:
由于水中含有懸浮及膠體狀態(tài)的微粒,使得原來無色透明的水產(chǎn)生渾濁現(xiàn)象,其渾濁的程度稱為渾濁度。渾濁度的單位是用"度"來表示的,就是相當(dāng)于1L的水中含有1mg.的SiO2(或是白陶土、硅藻土)時(shí),所產(chǎn)生的渾濁程度為1度,或稱杰克遜。 濁度單位為JTU,1JTU=1mg/L的白陶土懸浮體。 渾濁度是一種光學(xué)效應(yīng),是光線透過水層時(shí)受到阻礙的程度表示水層對于光線散射和吸收的能力。
它不僅與懸浮物的含量有關(guān),而且還與水中雜質(zhì)的成分、顆粒大小、形狀及其表面的反射性能有關(guān)。 演示稿:
您好,這是一個(gè)水塔水質(zhì)監(jiān)控器,它主要是應(yīng)用在城鎮(zhèn)和農(nóng)村的普通老百姓家庭中。
它主要是根據(jù)你水井里面水的渾濁度來工作的。
當(dāng)我水塔里面的水用完時(shí)候,水位到達(dá)低水位線以下(開水塔泄水閥,等待)……
然后它就會自動啟動抽水機(jī)抽水。但是,如果此時(shí)水井處于枯水期的話,就是說水井里面沒有什么水抽了,(把水管提出水面)
現(xiàn)在它就會自動停止抽水,等到有水抽了它就繼續(xù)抽(再放回水里) 。
它主要的功能就是這個(gè):
比如說如果現(xiàn)在水井里面的泥沙太多,水已經(jīng)渾濁了,(水管拿到渾濁的水里)
這里黃燈就亮起來了,說明水是渾濁的,同時(shí)抽水機(jī)也是自動停止了的,等到水自然澄清后,才會自動抽水(拿回水井)
當(dāng)然,如果這個(gè)時(shí)候你的確很需要水的話,可以按下這個(gè)強(qiáng)制按鈕,就能無視渾濁的水直接抽上來,但我不建議你這么做。
這個(gè)裝置方便快捷,成本低廉,比那些專業(yè)設(shè)備價(jià)格要低很多,對于普通老百姓家庭來說,已經(jīng)能夠勝任這一任務(wù)。所以這個(gè)經(jīng)濟(jì)實(shí)惠,又有人性化功能的裝置必定是你家里水塔的優(yōu)秀管理員。
(基本功能演示完成,等待水被抽到高水位線,期間回答參觀者問題)
(水到達(dá)高水位線后,裝置自動斷開抽水機(jī)電源)
嗯,現(xiàn)在水塔抽滿水了就自動停了。
測量原理:
在此裝置中,我以澄清水為標(biāo)準(zhǔn),根據(jù)渾濁度傳感器反饋回來的數(shù)據(jù)判斷水質(zhì)(在渾濁度傳感器那邊已經(jīng)有校準(zhǔn))
渾濁度在這里可以顯示出來,現(xiàn)在顯示的是標(biāo)準(zhǔn)值。另外還可以通過下面這三個(gè)LED燈的亮滅情況觀察到:綠色表示渾濁度達(dá)到要求,黃色表示濁度達(dá)不到要求,紅色表示不能飲用。 這個(gè)數(shù)字下降1可以認(rèn)為濁度增加了1度。
國家規(guī)定生活飲用水的濁度不得超過5度。一般主要看的是這三個(gè)LED燈,只要黃燈亮了就說明水質(zhì)渾濁,最好不要飲用,而且會自動斷電(中國1976年頒布的生活飲用水水質(zhì)標(biāo)準(zhǔn))