欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機水塔水質監控器設計

作者:七彩流星雨   來源:本站原創   點擊數:  更新時間:2014年04月21日   【字體:
確定選題:據我所見鄰居生活都是用井水的。下雨時雨水下滲,水里雜質含量大,抽到水塔里后時間長了會在水塔積一層水垢,清洗麻煩;有時抽到泥沙損壞水泵;有時抽滿水人不知道,繼續抽浪費了地下水;關鍵時候遇到枯水期抽不上水。基于這四點我決定了這個選題


本作品設計目的和基本思路:目的是更好地幫助人們利用地下水資源;減少清洗水塔的次數;合理抽取井水,避免枯水期沒有日常用水;以低成本低價格應用于老百姓家中。思路是從井水的渾濁度、水塔和井的水位高低監測獲取參數,控制抽水機,水井枯水期來時提醒人們,并預先抽滿水塔。當抽水中渾濁度過高時,則會停止抽水,等待水自然澄清,緊急用水時還可以通過按鍵人工強制抽水


項目摘要本系統是一個全自動化水塔管理電子設備,減少清掃水塔的次數,用水更合理更有保障,能夠充當家用水塔的管家婆



2012年11月20日上午
在淘寶網上訂購的電子元件終于到了。經歷11.11購物狂歡節,還真牛。淘寶和支付寶的服務器是撐過去了,后面苦的是快遞員們吶!

與上次做的自行車安全行駛監控器相比,這個裝置算是最簡單的了。裝置的具體功能是要實現水質的檢測,然后根據渾濁程度做出相應的處理。具體的話,等我做好再補充哈!
反正我的樂趣在于制作過程,最后的參賽結果也碰運氣吧。主要在于創新點上。

程序我已經在2012年11月14日22:38:32開始編寫了,因為要先過市里面那關吧,現在程序里面已經寫好數碼管顯示程序了,準備繼續寫片內AD的控制程序。

這次使用的主控芯片,哈哈,你猜是什么呢?按照我的風格,應該會猜到是AVR單片機——ATmega16L。
沒錯,這次使用的仍是它,因為它功能較全,引腳數量恰好合適,不是太多也不太缺。
這次用了兩塊74HC573來控制四位共陰數碼管的顯示。其實一塊都不用也行,AVR單片機的IO口驅動能力也不遜色于51 。但為了穩定,還是用上吧。

另外,剛一拿到數碼管時,就愁了。數碼管背面什么標識都沒有,僅僅有一個CS字樣,我就知道那個引腳是位選的,但是剩余的引腳什么也沒標。好不容易才上網找得到準確詳細的引腳排列。仔細一看,還真不規律呢,不知道他們這樣子設計數碼管的引腳排列的目的是什么。囧。。

還有一個關鍵的傳感器沒到,期待中。這個必須要有的,一切就靠它了。Come on!我先焊接最小系統和數碼管顯示電路


 
2012年11月22日23:25:08
郁悶啊~~~~呼呼!終于弄好數碼管顯示了。電路在中午焊接完成了,但是寫程序測試時一直不正常。
第一次不正常的地方:數碼管一通電時,內容一閃而過,隨后一直處于滅了的狀態。我一下子以為哪哪短路了,連忙斷電,深怕燒壞三個芯片。然后我看了下電路板,然后對照下芯片的數據手冊,發現并沒有接錯線,那是不是程序問題呢?我直接寫IO輸出0x0,另一個IO輸出0xFF,按理說數碼管全亮的,但是這次再一實驗,數碼管連閃都不閃了。然后我懷疑數碼管是否有問題,我用萬能表的二極管去搭,發現每個LED都可以發光。然后就卡在這了,直到下午兩點,我外公一個偶然的動作:用手指靠近芯片,指著芯片說話,忽然我發現數碼管跳動了!
按照我以往的經驗,IO口在被單片機控制下,電平是不容易被改變的,當然也有可能發生改變,那種耦合我想應該對于這種電路很少發生。但是我外公手指靠近的時候,IO口電平改變了!這就說明:74HC573的其中幾個IO口的引腳是懸空的!
那就麻煩了,形成這個原因的是焊接問題:虛焊。 隨后我用萬能表一條條線測電阻,唯有一條電阻無窮大。我輕輕一碰 。。。郁悶的線都從孔里滑出來了。
焊接一定不能粗心吶!確保每一個焊點都焊得結實。其實我前幾天焊接時有點趕速度。
將線焊接好后, 跑程序一看,問題又出現了:
數碼管數字亂七八糟的跳動顯示。。。。
我不斷地把程序簡化,邊簡化邊測試,一直簡化到沒有循環,單單控制IO口。只有這樣才能判斷問題在哪。
我結合AVR Studio4編程環境還有它內嵌Proteus 。將這兩個軟件聯合調試,步進步進……
突然,我發現當我只要求在第一位上顯示2時,第三位也顯示出來了!然后我回去看位選表,并沒有問題。然后一步進,發現IO口輸出和我表里的內容并不符,但是從程序開始跑到運行這輸出代碼期間并沒有任何代碼對IO口進行修改。隨后我就猜想,是不是IO口的輸出算法 有問題。因為AVR單片機不像51單片機可以直接引用指定的端口設置1和0的。AVR一下子操作的就是8位。隨后我到文件頭一看,哎呀我的媽呀!


與運算居然寫成了求模運算!這種錯誤在編譯的時候是不會報的。哎呀,粗心問題吶!可困擾死我了!


程序的電路板如下兩圖。我手頭沒有其他顏色的線了,就只有粗細不同的紅線兩種。沒辦法進行細致的劃分。我用粗的紅色線來連接VCC和GND,細的紅線是連接IO口。走線規則是走直線,走直角,少穿越。我從老式收音機電路板中學到一種走線辦法是走到電路板另一面,在合適的地方再穿回來,這樣可以避免直接交叉。當然這是對于單面板來說比較好看的走線辦法。實際上像數碼管那樣排列不規則,又密集的IO口,這樣做有點麻煩,我干脆直接走好了。不過這樣子堆,有可能發生電感耦合,導致IO數據“無形”中被修改了。

 



聽說每一位程序員都喜歡1024這個數字,呵呵,我們認為它是一個整數,和人們常說的100元類似。
1024KB=1MB。1024MB=1GB……于是我就作為測試了。實際上第四位我不打算用來顯示數字,我打算用來顯示控制狀態。





晚安!加油,明天繼續,明天先用萬能表測試傳感器是否能正常工作先!
因為市里面的截止日期已經到了,雖然有理由延時提交,但是不會多久的,先來個能對水渾濁度變化做出一點,哪怕是亮一個燈或是數碼管閃一下的反應,去過市里面這關。對于欽州市來說,直接過去算了,不像南寧市那么有競爭力。比賽還是去年那個廣西青少年科技創新大賽。具體也是在三月份左右開始。


可能有人疑惑我做的東西怎么沒發電路圖。對于這種小制作,其實我也沒為此畫過電路圖,我是直接看著芯片的引腳定義來焊接的,電路圖在腦畫
了。


2012年11月23日23:44:17
渾濁度傳感器測試完成,實驗證明到手的兩個渾濁度傳感器都能起作用。但是我有一個疑惑的地方。
對于該傳感器的接線,我查閱網上資料和官方數據手冊,接線大概有三種。如下:
 


這個是來自官方數據手冊的。由圖可知,這樣接的時候。渾濁度和電壓的圖像曲線是減函數的。渾濁度越大,電壓越低。
我中午按照這種接線辦法,發現電壓表無論在渾水還是清水中,幾乎保持在0.18V~0.22V之間。更換水環境后,稍稍有點變動,但還是在那個區間內。我覺得這種變化太小了,精度不夠高。我差點以為傳感器壞了,或者是傳感器本身不好用。但是我不甘心吶!繼續上網找了下大學生們的論文。





這個是來自[學士]基于單片機全自動洗衣機畢業設計_secret  這種接線辦法
 我又試了一下這個,這個的話,無論換到哪個水環境。電壓幾乎不發生變動,保持在3.8V。這比官方的還差多了。這樣接法好像是測總的電壓,總的電壓一般是不會變的。



這個是來自 
TS濁度傳感器在洗衣機中的應用  他的接線方法與官方的不同。
看得出像是綜合了官方的和上一個的電路圖。我試了下這種接線辦法,不過我去掉了其中的R1和無極電容 ,我的電路圖如下圖:



我現在只是用萬能表去測試傳感器,實際上還沒有接到單片機中。萬能表紅針接VCC,黑針接②。VCC為5V直流。
我這樣接后,在懸空狀態下測得電壓1.42V。



在純凈自來水中測得電壓1.17V


在渾濁的井水中(我外婆說,搞渾濁多容易,然后她東擦西擦,越擦越來勁,結果出乎意料地渾濁。。。)
測得電壓2.30V 




綜合上面的三個不同環境下的電壓值,我發現它的渾濁度與電壓的圖像并不是像官方數據手冊里說的那樣是一個遞減的減函數。反而是一個增函數。隨著渾濁程度的變大,電壓也跟著變大。

但是由官方的數據手冊可知,該傳感器用的是發光二極管和光電三極管配合工作的。由官方提供的圖可知引出來的是光電三極管的發射極。一般來講光電三極管的伏安圖像是向上的,即是增函數,而且它還有電流放大(增益)功能。
但是官方給的圖像確實向下的,而我按照他提供的電路圖,電壓始終保持在0.18V~0.22V之間。這讓人費解呢……

不過 ,不管怎么樣,已經能夠明顯地識別出水環境的變化了。接下來準備接到單片機上,利用AVR單片機內置的AD轉換器,算出得出電壓并顯示在數碼管上。




2012年11月24日21:39:27
中午的時候,我編寫完AD轉換程序了。在開發板上實驗成功。
void AD_init()
{
SREG|=0x80;
ADCSRA|=1<<ADEN|1<<ADIE|0x07;//AD轉換器啟動,中斷使能,128分頻
ADMUX=1<<REFS0|1<<ADLAR;//使用AVCC作參考電壓,使用AD0通道,左對齊
ADCSRA|=1<<ADSC|1<<ADATE;//啟動轉換。置位自動轉換

}
SIGNAL (ADC_vect)
{
//static char last;
char temp;
temp=ADCH;//舍去兩個精度,直接取高位。實際上我就只有四位的數碼管,再多位數也無意義。
//if (abs(temp-last)>2)
{
display(temp);
//last=temp;
}
}
 
下午放學回來后, 將傳感器連接到電路板上。可是連接好后,同樣的程序,又出現了亂碼。
郁悶的,我繼續一個個用萬能表電阻檔測,發現其中一個74HC573好像每個輸出引腳都互通的,他們之間存在1KΩ的電阻。實際上正常的話,輸出引腳之間為高阻態。哎,不知道什么時候弄燒你了,真是郁悶的。我之前焊接的時候,沒有放IC卡座,這下有得我拆了……







今晚拆的時候,我開始是用上我的秘密武器——真空吸錫器去拆的,但是,我甩了好幾下,也用力打了幾下氣,感覺總是被堵住,氣不夠大,這個情況上次我就出現了,但那次我仍是沒辦法疏通,即使是加熱情況下,里面細小的管子里附著的焊錫怎么甩都不移位,冷了又堵了。
今晚我狂甩,但仍是沒法通,然后突然,“啪”!的一聲,它中間冒出火花,電阻絲短路了,頓時房間黑暗……我也被嚇到,叫了一聲,但并沒有電到我。
外公怕了怕,聽說他正在前往廁所,聽到我叫聲后,回頭一看房間的燈黑完了,他說怕死了。
外公家這層樓的設計還算不錯,幾乎每個房間都有漏電斷路器,只需要在門口處把開關打回去即可。我以為沒有呢,然后又要跑到一樓大門外面冒著冷風摸黑換保險絲。
 

不過,沒有熱風機的我,只要用土辦法——撬,我邊用電烙鐵加熱邊撬,撬得一點是一點,往死里撬,
越撬越憤怒,撬得我想死的念頭都有了。沒有先進的工具真可怕。但我照樣把你給拆出來了!~~~~
然后我吸取教訓,先給他一個IC座,再插上新的。也拖這次“福 ”,我把電路板的線又整齊排了下,要是不動這個功夫的話,我也不再想去排線了。


然后再而三地用萬能表測,直到把整個電路都測完,第一確保沒有短路現象(焊接問題),第二接對線。測試合格后,我自信地接上傳感器!
傳感器與主板的連接,我還是像上次自行車安全行駛監控器那樣,設計一個直角三角形的接頭,為了防止反插。但是如果非常非常不小心的話,仍會出現反插的情況。但是對于這個渾濁度傳感器內部的電路來說,沒有像觸摸傳感器那樣嬌嫩(那次我換掉三個~~~),要盡早意識到就沒問題。

哈哈,一接上去,馬上看到了相對穩定的數字180左右。
然后我把它放到清水里,AD的電壓轉換結果為239 。我再放到渾濁了一天的水里,電壓示數為223!!!!
天啊!居然這次正常了!和官方數據手冊的圖像一樣!大概就是一個減函數的圖像。隨著渾濁度增大,電壓越來越低。然后我用一張紙直接隔著傳感器,示數為5左右。哈哈!是不?電壓這時很低了,如果水很渾濁,就會像紙一樣,阻礙光線的散射和反射。








PS:AD轉換器把通道里的電壓轉換出來,輸出到寄存器里的結果并不是實際電壓值。
它是把基準電壓(我設為由AVCC提供,電壓為5V) 平均分成256份(我舍去了兩位精度)。即每份5/256約為0.02V。然后它會自動利用單片機提供的系統時間,把電壓從GND的0V一份一份遞增,就是逐次逼近通道電壓。當很近的時候,觸發系統中斷并把遞增了多少份這個數值寫到寄存器里。在這里我設置了自動連續轉換,AD轉完后緊接著進行下一次轉換,除了斷電和使能位清零,它都會一直轉換下去,而且轉換速度也不慢。我的系統時鐘使用內部8MHz,AD轉換時選用了256分頻因子。

實際電壓可以通過這個數據獲取。即是把數碼管顯示的數據乘上 0.02V即可。

因為轉換速度快,而且我設置自動連續轉換,每次轉換的結果立刻顯示出來。
這樣的話,數碼管顯示的數據會一直有所跳動,比如傳感器懸空時,數碼管會隨機顯示179~181這三個數據,帶有閃爍。
我在想能不能降低點轉換頻率呢?但是對水的靈敏度就降低了。
如果我要限制在兩次結果相差不到2的時候,取上一次的結果顯示。這樣的話,確實是可以減少閃爍。明天先吧,明天把程序改下。還要注意下單片機里面的減法運算出現負數的情況,因為用的都是unsigned char。盡量避免吧
 

明天打算再去取更多的渾水來,我要知道傳感器的分辨率,這點在數據手冊 中沒有提到。
外公外婆家用的是井水,而且門口到處是泥沙,多容易的事~~~最后還要測下對可溶性雜質的反應。




2012年11月25日11:38:40
我對各種水進行測試:
 


在干凈的井水中為238.


混有大顆粒的泥沙,中層液體為145


加了食鹽溶解后,測得食鹽水為230


這時碰巧我媽洗完菜,我拿了一點洗菜水。測得232


在細小的沙粒中,取上層測得203



實驗結果還是比較滿意的。對可溶性的物質也可以測得出,而且相差5以上。往后還要考慮要模擬水井下的物質。
還有管道的設計。


2012年11月25日15:42:18
對程序改編,使用定時器控制AD的啟動。我設置為每秒只轉換兩次。轉換太快閃爍得要緊。
void AD_init()
{
SREG|=0x80;
ADCSRA|=1<<ADEN|1<<ADIE|0x07;//AD轉換器啟動,中斷使能,128分頻
ADMUX=1<<REFS0|1<<ADLAR;//使用AVCC作參考電壓,使用AD0通道,左對齊
//ADCSRA|=1<<ADSC|1<<ADATE;//啟動轉換。置位自動轉換

TCNT1=0xC2F7;//每0.5秒一次中斷
TCCR1B|=0x04;//256分頻
TIMSK|=0x04;//定時器1中斷溢出使能

}
SIGNAL (ADC_vect)
{
char temp;
temp=ADCH;
display(temp);
TCNT1=0xC2F7;
}
SIGNAL (TIMER1_OVF_vect)
{
ADCSRA|=1<<ADSC;//AD啟動轉換
}

2012年11月26日下午
和在市政府的科協主任 聊過后,深感時間緊迫。定于12月1日前提交文字資料和相片。我決定以水的渾濁度為根據控制抽水機是否繼續抽水作為本次項目的功能。另外加裝水位傳感器,實現整套系統的全自動。不知道這個定位好不好,雖然不如去年的好,總之拼一下試試。
現在只需要文字資料和照片,不管實際功能如何,得想辦法以假亂真。。。在照片上體現出所有功能 。
抽水機聽取主任的建議,用養魚的水泵代替。

 2012年12月5日下午,再次與科協部長見面還碰巧看見張老師,他對該裝置也提出了幾點建議,但是時間太緊,目前沒做完是一大麻煩,而且外觀和整體模型都未成形,僅僅做好了核心部分。這種情況比去年的還糟。
建議有:
不僅由數碼管顯示水的渾濁程度,旁邊加上3個LED燈輔助顯示水的渾濁程度。
再外加四個LED燈,分別顯示正常工作中,因缺水而補水中,強制抽水中,因渾濁而停止抽水中。
外殼封裝成黑匣子,只保留對用戶有直接作用的部分。渾濁度傳感器打算使用熱熔膠密封,將其捆綁在水泵上,隨水泵一起入水。
設計水塔與水井(模型) 的水循環管道,方便演示其功能。
 我個人發現,對于不同環境,即使是讓人感覺很清的水,顯示出來的數值都不相同,并不能以一個定值來評估水的渾濁度。我看需要以我目前所看見的最純凈的水為標準,采用百分比形式。當換了不同的環境后,通過一個按鍵,設定以當地環境的清澈時的數值為準,然后程序里把該數值乘上一個百分比得出渾濁與不渾濁的分界點。
造成不同數值的原因有可能是光線問題、不同容器的容器壁的反射和散射作用,水質的問題。一個弊端就是當地的水最清澈就只能在這個值了,不能再高了。所以臨時采用百分比這種比較粗略的方式判斷,否則就會導致一直處于因渾濁而不能抽水的狀態。


 2013年1月28日17:36:51
今天上網登錄科技創新大賽的服務平臺,發現市級和省級的審查都通過了吶。。那我就打算在這個寒假做完它。上次那個自行車安全行駛監控器在一個月的時間內趕做,太趕了,沒爸在家幫弄的話,根本沒時間完成,好險。



2013年2月7日23:51:17
接到通知,大賽組委會發的通知,我的作品已經列在進入決賽的名單里了。http://www.gxqs.org/creative/wjtz/201302/821.html
3月22號報到。嗯,還有兩個月。看來這次時間還是比較充分的。那就趕快做吧!欽州市算我在內總共有三個人參加比賽,其中兩個是小學生,他們都是靈山縣實驗小學的,看來靈山確實不錯。

今晚, 我第一次嘗試使用三極管,我以前一直很怕它,不是很知道怎么用法,今晚鼓起勇氣,就算失敗也要試一下。因為想了下,僅僅是控制一個繼電器,就動用一個ULN2003,就太浪費了。我上網自學了下,了解三極管的種類和構造,以及使三極管工作在放大和開關下的條件后,我焊接進去試了下,居然成功了!
比起以前常用ULN2003電路來得更簡潔,又占極少的電路板面積。我用的是8050D NPN型三極管來控制繼電器。好簡潔呢!爽吶!以后一定常用三極管,當然控制量多就用IC了 

我的接法是,單片機IO引腳串聯100歐電阻(因為整個系統都是用5V的,單片機IO輸出即使電流不大,但也是5V,串電阻是使基極的電壓小于集電極的電壓,就是
集電結反向偏置)到三極管基極,發射極接地(發射極正向偏置),+5V接到繼電器的一個線圈引腳,另一個線圈引腳接到三極管集電極,這樣三極管就工作在放大狀態下了。
三極管有三種狀態. 
1). 截止狀態 : uB<0,兩個PN結均為反偏,iB≈0,iC≈0,uCE≈UCC。三極管呈現高阻抗,類似于開關斷開。 
2). 放大狀態 : uB>0,發射結正偏,集電結反偏,iC=βiB。 
3). 飽和狀態 : uB>0,兩個PN結均為正偏,iB≥IBS(基極臨界飽和電流)≈UCC/βRc ,此時iC=ICS(集電極飽和電流)≈UCC/Rc 。三極管呈現低阻抗,類似于開關接通。

對于PNP三極管而言,如果要使PNP三極管導通,那么基極與發射極(發射結)正偏,即:基極(N)電勢要比發射極(P)電勢低,(這就是發射結正偏).還需要基極(N)電勢要比集電極(P)電勢高,(集電結反偏).

對于NPN三極管而言,如果要使NPN三極管導通,那么基極與發射極(發射結)正偏,即:基極(P)電勢要比發射極(N)電勢高,(這就是發射結正偏).還需要基極(P)電勢要比集電極(N)電勢低,(集電結反偏).








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





 

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





2013年2月12日22:29:34

焊接完所有LED燈了,線好多啊。。。。~~~不過也沒事,對于LED燈,只有6個LED的線擠在一起產生的干擾不會怎么樣的。
 



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






2013年2月17日12:41:44
計劃是: 
2月底前做完水塔、水井的模型,三月初編寫和調試程序,最后兩星期做展板


2013年2月23日21:49:19
今天去買了抽水機、一個置物架,定做了兩個玻璃缸。
玻璃缸工程圖如下:(3D模型、工程圖制作軟件:SolidWorks 2011 。我還不太熟練這個軟件,不過比AutoCAD在這方面好用點,我個人覺得AutoCAD用于平面畫圖很棒,立體建模和制作零件工程圖我就用SolidWorks了)然后直接打印工程圖去白沙街那些做魚缸的師傅定做。










另外,對于這個裝置,我加多了一塊木頭做支撐,然后開了一道口子,用來插線的。還買了一個排插,總不能剪斷抽水機的插頭來接繼電器吧。

引出來的IO和VCC插針,用熱熔膠固定了下,焊錫的硬度不夠。










還有就是置物架了。
買散裝的回來,自己組裝。汗,還沒有送說明書,就一袋螺絲……
而且我發現不知道是偷工減料還是沒有焊穩上去運輸途中掉了(八九不離十是沒有焊接上去,因為沒有斷裂的痕跡),架子的頂部,支撐頂板的螺絲,只用了3個,就是上了三個角而已,還有一個角沒有焊上孔,而且送的螺絲也只送3個。
這個架子中間本來還有一層的,我不裝它了,因為抽水機有點高,只能放在下層。這樣還好,中間那層空出來的兩個螺絲我用來懸掛這個水塔水質監控器






看到了嗎?螺絲的”耳“只有三個。。。

裝好了!~~~~即使沒有安裝說明書也是很so easy 的。



2013年2月24日14:24:10
在盒子旁邊開個口子,僅僅露出插孔。
開口我是去街上的五金電動工具店里借電鋸自己開的。但電鋸的齒輪直徑有點長,達到這個深度時已經有點超長了,但是電鋸比手鋸快得多,而且手鋸開孔麻煩不好看。
后來用電工膠布包一層邊。











接好插排內的線,線頭先上點焊錫,這樣扭進去不容易松散,而且又壓得穩。再打個結。因為我打算是用膠水把它與盒子粘起來。一旦粘好后,里面的線出問題的話就很難拆開了。


2013年2月24日20:35:52
回家吃飯時,路過一家店,看到門口有賣白色的膠布,走近一看,呵電工膠布!
然后順手就買下了。我拆開原來貼的黑色膠布,換上白色的。這樣更好看 呵呵!~~~~







內部差不多就完工啦~~~明天放學后買些電線,3米應該夠了。



2013年2月25日
買好了線和接頭了。
買了五米多的粗銅線和十幾米細一點的銅線(主要是價格問題。粗的1.5元一米,細的1.2元)
粗銅線打算用來連接抽水機的。細的拿來連接傳感器和延遲5V電源的。
另外。在買插頭時,發現有一種插頭特別新穎,好有創意的設計!
它的腳可以旋轉的,隨時可以方便轉成三角插頭、兩個角的插頭,各個孔都可以插入!還申請了專利呢!~~~2元一個。






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



這樣就接好電源線啦!~~~黑色的插頭輸出5V 1A直流電,另一個直接接220V到電機,由繼電器控制電路通斷。
另外,在電路板焊接的時候,我盡量把繼電器下的220V的兩根陰線與其他線,無論是電源線還是IO線,都離遠點,在繼電器那個區域,基本上不布線。繼電器的引腳到接線端子座采用焊錫走線,所以該裝置工作時,繼電器那個區域蠻危險的。等全部做完后,這個區域還要用酒精清洗一遍,檢查有沒有殘留的焊錫把電引到別的地方去,不然運輸過程中稍微一搖晃說不準就短路上了,220V的電源線一旦碰到5V電源線或單片機IO非常非常不妥的。

2013年2月26日23:17:44
快速地接完抽水機的電線,僅用了四分鐘~~~不過還算慢了。時間花在包膠布上,包得扎扎實實的。









另外,今天兩個玻璃缸工匠師傅那邊都做好了,但是沒有小車,而且又剛好不合適,只能一個一個搬回來了,明天再搬回一個就齊了。
然后還要解決水管的問題,我打算用軟水管做。還要弄兩個水閥才行,玻璃缸已經鉆好25mm的孔了,不知道有什么水閥合適裝的,能夠密封好的,而且玻璃孔沒有螺紋。要不就用像空心螺絲那樣的水閥吧,如果漏水就剪一塊自行車內胎墊下去。


2013年2月28日23:01:58
做這個玻璃缸,老爸也來插手啦。覺得還不如自己割玻璃做劃算,前幾天請白沙街的那個師傅做,兩個玻璃缸65+60=125元!
工費太貴了,材料聽說才20元一平米。當初是怕鉆孔鉆不好漏水之類的問題。不過這費用算學校經費的話,就不管了,以后就自己做算了。
今天下午做了一下,發現還是有點漏水的問題,我用報紙墊在底部,灌多多的水,很快,深色的地方就出現在接口處。在水管接口處沒處理好,可能加厚點橡膠墊和涂一層玻璃膏在接口外面會比較好,等明天后天玻璃膠干了再說。







2013年3月2日
今天下午和爸一起合作搞,速度很快。
漏水地方懷疑是螺紋處水浸出來,然后卷上幾層層生料帶 ,再扭回去。這樣就不太漏水了。問題解決。

在臺子的頂部,拿兩塊木頭來固定玻璃缸的兩個角 ,防止它因底下的抽水機震動而移位掉下去。
另外在出水口,一半采用軟水管,一半采用硬水管,一方面好運輸一方面簡潔好看。
 硬水管還需要一個卡扣固定,控制器還需要幾根螺絲來固定,目前只是暫時綁一下來測試。



今晚,我把渾濁度傳感器用玻璃膠進行密封。為了防止意外,我做好了兩個傳感器,如果有問題剪線接上另外一個。
玻璃膠涂得不太好,畢竟才接觸了兩次而已,這方面技術很生疏。

這是我認為目前焊接得最漂亮的一個!






2013年3月3日17:21:40
今天整個裝置幾乎完工啦!
目前能實現水位檢測,低水位自動抽水。上午調試時,總出現一個問題,數碼管亂顯示,程序也總是不對。看了一陣子才發現是AVR單片機出問題了,程序經常跑飛,具體原因先不管,果斷換了一塊,穩定許多了。 
我外婆在旁邊拍了N張照片。。。。但多數是手抖的。挑選了些清晰的都上傳了。更多照片請看相冊。
 













由于忘記先前跟爸說帶他那臺筆記本電腦 過來,所以就直接搬我的電腦到一樓來做算了。
盡管這里沒法接網線,我還是能上網的。先用我的手機連接三樓的無線路由器,然后手機用USB連接電腦。然后手機里打開設置共享網絡,即可!
信號還可以,有兩格。

另外,裝置的外殼打算不蓋了,就這樣全露出來,標簽、裝飾貼在頂部。就這樣才露出全手工的樣子,不搞太多封裝。


對于在單片機里的除法。一般來說我這個裝置需要進行除法運算,因為渾濁度的評估等級,以清澈時的數值為標準,中等渾濁為0.95,嚴重渾濁為0.90. 在單片機程序里,如果直接拿一個int或float型的數乘以0.95的話,程序體積會突然間增大三倍,原因是編程環境的內部算法不好。
我投機取巧換了一種,因為我不需要小數部分,所以,可以這樣來算:標準值*95/100  。這樣就可以避免進行小數運算了,還能自動舍去余數,單片機里進行整數乘除還是很可以的。
ClearValue=QualityValue;
CentreValue=ClearValue*95/100;
LowValue=ClearValue*90/100;
由于沒有特別規定的標準值,我暫且以目視渾濁為基準了,這個百分比明天等玻璃膠干了以后,再實際更改下。

2013年3月4日
之前發現有一個渾濁度值的邊界問題,導致抽水機頻繁抽抽停停,就像抽筋一樣。
我以前看過自動控制論里一些有關邊界的問題,他們那些“磚家”理論說在兩個功能范圍之間設一個死區,在該區里不做任何反應。
這樣子,不說能解決邊界問題,但至少能減少觸發邊界問題的次數,就是抽水機不是那么頻繁地抽抽停停,因為邊界始終存在。
于是我就試下吧!

2013年3月5日黃昏
我發現問題并沒有想象中的那么簡單, 經過多次觀察傳感器的數值,不知道是單片機的AD模塊不穩定還是傳感器的問題,不過我認為單片機的AD模塊的誤差影響不大,官方數據手冊里說的是+-3LSB絕對精度。
我懷疑是傳感器那邊,當加入泥沙等混濁物時,液體是流動的,細小泥沙也跟著流動,導致光的阻礙也是不均勻的。

實際上,我觀測到的數值,浮動的范圍超乎我的意料, 竟是 0~11,在那么大的范圍不穩地地浮動,叫我怎么判斷水是渾濁還是澄清的啊!

于是乎,我必須想辦法把這個誤差強制限制下來,必須要讓最終數值保持一定的時間不變動但又能快速識別出有混濁物加入。

在我洗澡的時候,忽然想出一個算法,能解決這個問題,然后今晚在學校晚自習有空時驗算過幾次,就是考慮下極端情況,發現應該沒問題的。今晚回到家后,按照我的思路編成程序,奇跡般的,數值的變動情況正是我想要的! That's what I need !
興奮死了!真想怒吼一聲“成功啦!”

就在此時,電腦桌面突然變黑,右下角提示“此Windows副本不是正版”,彈出窗口說“你可能受到了盜版軟件的侵害!……”

好吧!純屬巧合,我不認為微軟會在這個恰好時機這么告訴我的。懷疑是激活的期限到了吧,我裝的是正版原廠鏡像,等下我再用軟件再免激活一次就OK了,那不礙事的,誰不是用盜版的啊。

我對我的算法還是比較自信的,但是我還是得連續試驗幾十次,看下這個算法是否一直長期穩定有效,如果沒問題的話,我會貼出來一起分享!
 
2013年3月6日13:41:44
不錯,今天暫未發現算法有問題,
剛剛解決了些關于指示燈的顯示邏輯問題和更合理地改進該算法以便演示和實際使用后,程序算是比較完善的了。另外發現一個不穩定的問題:我還沒把復位引腳拉高電平。目前還只是懸空的,這樣很不穩定,單片機容易受到外界干擾自發復位。睡幾分鐘覺先,傍晚再搞


2013年3月7日13:38:45
發現,僅僅拉高復位引腳并沒大作用,我懷疑不是單片機在復位造成的錯亂。
在多次的開開關關中,我想可能是開關接觸不良或者電源的供電不穩定 。

我在電源的接線端子處并聯 一個330uF的電容,做濾波用。效果明顯,反復開開關關都很穩定。我當初以為電源適配器里的濾波電容已經起這個作用了,不必再接一個,可能那個電容不夠大吧。
另外,意外地發現,可以投機取巧用另外一種方法檢測水井是否抽干。原先我還打算在水井模型上開個洞放水位傳感器的,但是這個想法不現實,真實中的水井是沒法安裝水位傳感器的。
現在的辦法就是,利用現在這個渾濁度傳感器,當水位低于渾濁度傳感器的時候,紅外發射和接收他們兩個之間沒有水做介質傳播,取而代之的是空氣。實際中發現,在空氣中檢測到的電壓數值較低,相差三四十。
利用了這一點,間接得出水井被抽干了。

這樣的話,我整個演示流程就順暢了,而且不用更換渾濁的水。拿兩個桶,一個渾濁,一個清水。一開始,水塔上的水處于低水位線,水管放在清水中,抽水機自動啟動抽水。當我提起水管時,渾濁度傳感器一起被提起,提出水面時,能夠代表這是水井的水抽干了,然后裝置上按照原先的設置,會將此判斷為嚴重渾濁或水井無水,進而停止抽水。
再放入清水中時就繼續抽水。然后再拿出來,放到渾濁的水中,它不會抽水。然后放回清水中,直到抽到高水位線自動停止。
整個過程就很順暢了。然后放掉水塔的水到清水桶中等待下一輪演示。 



2013年3月7日23:05:57
算法基本上沒有問題,那到這里整個裝置就基本做好了,就剩些裝飾和貼紙說明。還有展板。 

2013年3月8日13:36:55
公布下程序整個源代碼,轉載請注明出處哈,其中算法也在里面,供其他人參考。有什么意見也可以提下。
 
















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



原理解析:
由于水中含有懸浮及膠體狀態的微粒,使得原來無色透明的水產生渾濁現象,其渾濁的程度稱為渾濁度。渾濁度的單位是用"度"來表示的,就是相當于1L的水中含有1mg.的SiO2(或是白陶土、硅藻土)時,所產生的渾濁程度為1度,或稱杰克遜。 濁度單位為JTU,1JTU=1mg/L的白陶土懸浮體。 
渾濁度是一種光學效應,是光線透過水層時受到阻礙的程度表示水層對于光線散射和吸收的能力。 
它不僅與懸浮物的含量有關,而且還與水中雜質的成分、顆粒大小、形狀及其表面的反射性能有關。 

演示稿:
您好,這是一個水塔水質監控器,它主要是應用在城鎮和農村的普通老百姓家庭中。
它主要是根據你水井里面水的渾濁度來工作的。
當我水塔里面的水用完時候,水位到達低水位線以下(開水塔泄水閥,等待)……
然后它就會自動啟動抽水機抽水。但是,如果此時水井處于枯水期的話,就是說水井里面沒有什么水抽了,(把水管提出水面) 
現在它就會自動停止抽水,等到有水抽了它就繼續抽(再放回水里) 。
它主要的功能就是這個:
比如說如果現在水井里面的泥沙太多,水已經渾濁了,(水管拿到渾濁的水里) 
這里黃燈就亮起來了,說明水是渾濁的,同時抽水機也是自動停止了的,等到水自然澄清后,才會自動抽水(拿回水井)
當然,如果這個時候你的確很需要水的話,可以按下這個強制按鈕,就能無視渾濁的水直接抽上來,但我不建議你這么做。 

這個裝置方便快捷,成本低廉,比那些專業設備價格要低很多,對于普通老百姓家庭來說,已經能夠勝任這一任務。所以這個經濟實惠,又有人性化功能的裝置必定是你家里水塔的優秀管理員。 

(基本功能演示完成,等待水被抽到高水位線,期間回答參觀者問題)
(水到達高水位線后,裝置自動斷開抽水機電源)
嗯,現在水塔抽滿水了就自動停了。 

測量原理: 
在此裝置中,我以澄清水為標準,根據渾濁度傳感器反饋回來的數據判斷水質(在渾濁度傳感器那邊已經有校準)
渾濁度在這里可以顯示出來,現在顯示的是標準值。另外還可以通過下面這三個LED燈的亮滅情況觀察到:綠色表示渾濁度達到要求,黃色表示濁度達不到要求,紅色表示不能飲用。  
這個數字下降1可以認為濁度增加了1度。國家規定生活飲用水的濁度不得超過5度。一般主要看的是這三個LED燈,只要黃燈亮了就說明水質渾濁,最好不要飲用,而且會自動斷電中國1976年頒布的生活飲用水水質標準)  
(經過多次對比實驗,在普通家庭中這種測量方法已經能區分出能飲用的賀歲和不能飲用的水)

背景:
經過我調查發現,極大多數的農村城鎮家庭自己在家旁邊挖一口井,他們生活用水全部來自這口井。然而問題就來了:
①有時候下雨,地表的水帶很多泥土、雜質滲透到水井里面,導致水質渾濁。如果沒有這個裝置的話,這些水被抽到水塔后時間長了會在水塔積一層水垢,清洗麻煩 ,而且飲用它們也不衛生。
②有時抽到泥沙很多的話,損壞過濾網和水泵;
③有時候水井處于枯水期,就是天氣干旱,有些地方沒有水可抽的時候,人們不知道,開著抽水機在那里抽空氣,很是浪費電。
④有時水塔抽滿水人不知道,繼續抽浪費了地下水;
⑤水塔的水用完了以后,還要人為去啟動抽水機抽水,比較麻煩。
所以我發明了這個裝置來解決以上五個生活問題。  

2013年3月25日
本作品獲廣西青少年科技創新大賽中學生科技創新成果二等獎。


2013年3月27日12:38:35
本作品打算在外公家的水塔上安裝使用,由于水井是已經密封了的,在安裝時將去掉水質監控功能,保留水塔水位自動控制功能,即低水位自動抽水,滿水自動停止。計劃在本周六、日開始實行

2013年3月30日 
水塔水質監控器安裝過程順利,檢測靈敏,已經投入使用。 家人給予高度評價。
老人家開水龍頭發現沒有水時,大叫一聲抽水,然后另一個就在下面開閘抽水,然后在鐘前守候著直到時間差不多了才離開,這樣很麻煩。
如今這種現象已經不會再出現了,老人家也不用去管抽水機、水塔了。裝置能在即將用完水前自動抽水,能夠保證用水連續供應,不會斷。這樣空氣不會進到水管里,每次開水龍頭時也不會有噴射之類的現象發生了。




2013年5月22日17:51:21

由于學校準備拿這個東西做長期展覽,而且家里很享受它帶來的種種周到的服務,所以決定將這個作品裝回當初在比賽現場展覽時的樣子,然后再開發一個新的來給自己用。

決定現在開始,重新做一個。新開發的水塔水質監控器按照其功能來說,不能再這樣命名了。應該更名為“水塔水位監控器”。
 
這個新作品采用STC 51單片機,因為它價格便宜,并不需要AVR單片機那么高級的功能,我自制一塊是貼片焊接的PCB電路板,在節約成本的同時,增加其性能。并且對電路也進行改進,提高穩定性。


2013年5月23日18:09:35
完成繪制原理圖。
增加了測試點,方便維護。 
對單片機所有不用的IO引腳進行上拉,防止電磁干擾。
由于手頭沒有排阻,所以只好用貼片電阻代替。
在89C51單片機里,也是有內部EEPROM的,只是不是真正的EEPROM,但和EEPROM有著一樣的功能,所以不需要外接EEPROM芯片。電路中還有一些參數尚未確定。
另外,51單片機里,ALE引腳還有一個非常有用的功能是:
ALE以六分之一振蕩頻率固定輸出正脈沖, 8051一個機器周期=6個狀態周期=12個振蕩周期,若采用6MHz的晶體振蕩器,則ALE會發出1MHz的固定的正脈沖。 可以用于驅動外部芯片,給外部芯片提供時鐘振蕩信號。
至于繼電器,由于驅動是大功率220V抽水機,在開關閉合、斷開的瞬間我敢肯定會在繼電器內部產生電弧,但這繼電器還受得住,開關頻率最多一天就兩次,壽命來個兩三年還是可以的,更換也是輕松的事,就不弄消弧電路了,我也無法確定是否真的消弧了,因為繼電器密封了的
看大圖請到相應相冊看高清圖片





2013年5月25日19:17:48

修改電路,修改部分元器件的封裝。
增加一個蜂鳴器,使用跳針控制,可以檢測傳感器是否損壞,因為使用二極管的話,在水塔那邊碰傳感器,不一定能看到放在屋子里的裝置上的發光二極管發的光,所以改用聲音。
只要我碰幾下傳感器,能聽到蜂鳴器能發聲就證明浮球傳感器沒有損壞。因此更加方便維護。
很多地方加入電阻,根據實際情況決定是否需要焊接,如果不需要就直接用焊錫連起來就行,全部元器件除了蜂鳴器外,采用貼片封裝。
調整測試點分布。

這次修改,差點白費功夫。我按錯一個按鍵,把所有元器件的參數、封裝都恢復到默認設置,并保存了。
嚇死我了,心想這下完了,然后我再想了下,這么出名的Altium Designer Release 10 不可能連這點失誤都沒有考慮到,于是我2不停地再到處點,看看有什么能夠恢復之類的功能。結果哈哈!被我找到了。在左邊的工程文件列表的樹形圖中,右鍵當前文檔(原理圖),在彈出的快捷菜單中最后一項:“本地歷史”。點它后會列出一大堆同名的原理圖,但后綴以數字區分。原來每一次保存時,AD都自動備份下來,只要雙擊他們就馬上可以恢復。另外我看了下,他們是保存在C盤里的我的文檔里的。


由于AD10里沒有這個芯片的PQFP-44封裝,自己對照著這個封裝的圖紙在畫了一個封裝,打印出來發現很吻合!



然后就繼續安排布線,我試過用軟件自帶的自動布線,但它布線的結果并不令我滿意,還是自己手動布線好!


布線完成,以負片形式打印出來:由于是單面板,一些線路根本沒辦法連通,我對部分線路采用過孔連接,到時候焊接時在底部用軟電線連上就行。


涂感光油墨


曝光后
顯影


顯影完成,還要檢查一些線路有沒有短路之類的然后再蝕刻


蝕刻





蝕刻完成


脫模



還要再檢查有沒有線路短路之類的,這次我用萬能表的二極管蜂鳴器檔位來測,但是結果令我大失所望。因為多邊形鋪銅(鋪地線)與線的距離太小了,10mil而已,有的還不到10mil,導致一些IO線和地直接相連,后來以為只是一部分,用小刀刮一下就行,后來發現有很多地方,實在不愿意刮了,決定重新做一塊,間距設到18mil去。線寬照舊10mil


2013年6月2日23:07:57
由于感覺太難看,又重新做了一塊

按照同樣的方法得到:



然后我饒有興趣地涂上了UV阻焊綠油





然后打印好焊盤和孔的菲林膠片,對準貼上去。綠油是沒辦法干的,綠油只有在紫外線燈照射下,才會固化,干。沒被照到的地方保持液態然后被酒精等溶劑洗掉。所以必須保證一次性貼好,我就是沒能一次性貼準,然后第二次移位修正時,整個板子的綠油就毀了。。。哎。以后還可以做兩三個定位孔,用牙簽插進去固定,這樣應該很準。




洗掉后就成這樣子了,后來我用砂紙打磨過,把那些多余的綠油磨掉,只保證焊點有銅就行,然后進行鉆孔。綠油聽說可以用NaOH洗掉,但手頭上也沒這個藥品,顯影液、脫模液都不能洗去阻焊綠油。







哎呀,比上次還難看。。。。我又有再做一塊的沖動了,或者弄一點NaOh來洗掉綠油,可能也不太好洗呢

下次弄的時候,就蝕刻完后就可以了,不弄阻焊綠油和文字油墨了,很麻煩的說。。。不過裸露的銅時間長了可能也會變點。


2013年6月5日13:13:09
重新做了一塊!再做多少塊都不介意。。。管它呢。。
 

這次不印絲印層,不印阻焊層,所以把版權信息印在Top Layer ,通過腐蝕銅來寫下版權的信息。
決定先鉆孔后再蝕刻銅板再脫模。





2013年6月5日16:52:01

開始鉆孔,由于地方、座椅的限制,沒找到合適高度的桌椅,也沒有臺鉆,就只有一個臺鉗和一把手電鉆。
剛開始第一第二個孔很難鉆,沒有東西固定手電鉆。不過后來,熟練了,即使沒有臺鉆,雙手就能搞掂!鉆得蠻準的。主要是鉆頭一定要安好,鉆時鉆頭一定要垂直,看不到鉆頭晃來晃去就行,不然就容易偏了。
最好先不要洗掉感光油墨和腐蝕電路板再鉆,就著感光油墨鉆比較好鉆, 不容易滑,鉆好后如果斷路了,還可以用油性筆修補電路,然后再進行蝕刻銅箔和脫去感光油墨膜。這是經歷了幾天的三四次失敗后得到的經驗…………油性筆不會被三氯化鐵腐蝕,它可以保護需要的銅箔,它的筆跡可以被脫模液洗去。





坐在床上鉆的。。。。對照著電路板的設計圖,看哪個位置需要鉆孔就對應著鉆下去。普通的IO孔都是0.8mm,二極管、開關等是1mm直徑。鉆頭很細,一定要垂直鉆,不然鉆頭會斷,危險的。

 

鉆好后,就是蝕刻電路板,把銅箔洗去。
每次腐蝕的時候,我都發現銅是從周圍向中間消失的,就是周圍的先被腐蝕掉,然后慢慢收向中間,然后就沒了。
這溶液我腐蝕過三四塊板了,有點淺綠色、墨綠色的,生成的氯化亞鐵和氯化銅還有部分三氯化鐵、氧化鐵、氧化亞鐵等弄的。





腐蝕的時候,銅箔表面變成那種紅棕色或者像磚紅色,顯眼得很,可以被掃去,用畫筆刷去后馬上有會生成回來。


蝕刻電路板OK!
自認為是最成功的一次制版!失敗多了經驗多了,電路板一路做下來每一步都很清楚,心里也有底了。真是太爽了!

檢查過沒有短路、短路的地方,另外繼電器的中點銅線我忘記用油性筆修補,一小部分銅沒有了,等下用焊錫補上,主要是當時還不清楚用油性筆畫上去
是否真的可以保護銅。下一步就是焊接元器件了。 

咱也學下喬布斯在電路板上簽名,簽得不好,見笑了。。 。簽得真是爽啊!哈哈!






2013年6月6日11:36:40
焊接51單片機時,先對準芯片的引腳,對得準準的,把電烙鐵的頭換成刀頭。然后在四周堆上大量的焊錫,把所有引腳都蓋上去,并且在堆錫的過程中,抖動電烙鐵,讓焊錫充分變成液態浸透引腳。
然后用電烙鐵沾大量的松香,然后去吸走焊錫,把焊錫吸到烙鐵頭上,然后用高溫海綿擦去烙鐵頭的焊錫。
每次都一定要是沾大量松香,不能不用松香,輕輕一碰后馬上提起烙鐵,焊錫就被吸上來了。提起電烙鐵的時候,發現吸不上時,烙鐵不能往外拖,不能刮著焊錫,不然會損傷阻焊層的。我這里往外拖是讓焊錫保護銅,因為我沒有弄阻焊層進去。在真正的電路板上絕對不能拖。吸不上就用多點松香,要不就再堆錫,堆多點再吸。
不過這個能吸起來的前提時烙鐵在第一次使用時必須充分形成錫合金,就是把焊錫通過高溫滲透到烙鐵頭里去,這樣才能吸得住焊錫。

還有個辦法就是用多股銅線,浸了松香后,放在一堆焊錫的旁邊,用烙鐵同時加熱銅線和焊錫,然后提起銅線,焊錫很多就會被吸到銅線上去了。

焊接完成后,一定要用放大鏡+手電筒來檢查引腳是否互相搭上,否則通電后可能會燒毀芯片的。松香是不導電的。松香可以用酒精洗去,洗不洗都沒什么要緊的。






終于焊接完所有元器件了。在焊接過程中,部分元器件的參數更改,去掉高低水位的指示燈,去掉復位按鈕。

在繼電器周圍,畫有高壓危險的標志,而我設計電路時也對這一區域不進行覆銅。因為如果覆銅的話,220V的電位差可能會導致與5V的單片機電路耦合,產生故障。







2013年6月7日20:02:32

程序編寫、測試完成!啟用了51單片機的掉電模式、看門狗,串口通信三大功能。
單片機采用6MHz外部晶振,內部使用雙倍速(6T)模式。振蕩器增益1/2 gain 。
經過實際測量,工作電壓5V,抽水機抽水過程中控制器電流60mA左右,功率0.3W。抽水完畢后到下次抽水前,單片機處于掉電(停機)模式,整個控制器電流2.5mA左右,功率0.0125W。
沿襲“水塔水質監控器”里的功能,該水塔水位監控器照樣具有記錄抽水次數、高水位傳感器失誤次數、低水位傳感器失誤次數這三個參數。
89C51RC單片機同樣具有EEPROM,我看了它的數據手冊發現通過IAP/ISP技術可以訪問內部Flash,其中數據區Flash可以當做EEPROM用,芯片設計者對EEPROM劃分了八個扇區,每個扇區512字節。
我將抽水任務標識這一個字節的數據放在第一扇區,地址為
0x2010
累計抽水完成次數這一個long型數據放在第二扇區,地址為
0x2210
低水位傳感器失誤次數(long型)放在第三扇區地址為
0x2410
高水位傳感器失誤次數(long型)放在第四扇區,地址為
0x2610

另外對于這個片內EEPROM 的操作,一般需要先對要被所寫的數據覆蓋的區域進行擦除操作后才能寫數據,不擦除也可以寫,但是數據可能會出錯。因為:字節編程:將1寫成1或0,將0寫成0,不能將0寫成1,所以要擦除,只有擦除才能將0寫成1 

51單片機的下載工具沒有讀取片內EEPROM的功能,我自己設計了一個引導程序。
在系統剛上電時,電路板上唯一一顆綠色的LED燈以20Hz的頻率快閃,閃爍5秒。在它閃爍期間,通過串口(波特率2400,停止位1,數據位8,校驗位N)向系統發送0x42這一字節的數據,那么系統馬上作出回應,模板如下:

Hello,我是水塔水位監控器,由楊宇慶于2013年6月7日編程制作完成。\n現在向您報告運行情況:\n

從2013年6月7日投入使用以來,\n
累計完成抽水任務 0 
次\n
低水位傳感器失誤 0 次\n
高水位傳感器失誤 0 次\n  
感謝您的使用!下次有需要還可以叫我出來。\n我愿繼續為您全天候管理水塔。祝您身體健康,萬事如意,闔家幸福!\n 

另外,在此期間,發送0x14這一字節的數據,系統會馬上清零這三個記錄,請別輕易發送喲,收到這三個數據的她怕我作者也怕。因為我覺得這些記錄很有紀念意義。

 5秒過后,系統將關閉串口功能,指示燈恢復為1Hz閃爍。
綠色LED燈在抽水狀態即單片機工作狀態保持1Hz的閃爍
LED在單片機初步檢測到水位到達高水位或低水位線時,保持亮起,然后單片機開始復查水位,直到復查完畢恢復閃爍。
一旦抽水完成,單片機進入掉電(停機)模式時,LED保持熄滅。當水位到達低水位線時,傳感器拉低外部中斷引腳,產生一個下降沿,這個下降沿將喚醒單片機,迅速恢復正常工作模式,然后檢測低水位,檢測水確實是在低水位后,開始啟動抽水機抽水……如此循環。

單片機復查水位的操作是:一秒鐘檢測一次,10秒過后,就檢測了十次。每檢測到一次計數加一,十秒后判斷計數是否超過6,即有60%的檢出率,就做出判斷:水位確實到達該水位線,否則記錄錯誤數+1,不進行任何操作。
雖然這個還不能說是確實到達,但是這種傳感器就兩條引線,光憑單片機本身也是很難摸清傳感器到底是壞了還是沒壞的。所以之前在樓下連的兩個閘刀開關就很有作用了。另外電路板上還有蜂鳴器幫助檢測水位傳感器的工作狀況。

還有個細節就是,在每次向EEPROM寫數據期間,由于需要擦除再進行寫入,雖然這個時間很短,大概13~20ms,但是,萬一就在這個時候, 家里停電了,裝置外部電源就停了,電路上唯一還有電能提供的就是電源適配器里的電容和我焊在電路板上的470uF電容。這兩個電容為單片機供電,但電腦是很小的,為了節省電能,支撐這單片機完成這一操作,就熄滅LED燈,碰運氣了。雖然這個概率很小很小很小,但我認為還是有可能性的,并聯多個大電容能夠提供更多的電能。而且數據手冊上說道,當電壓過低時,不能進行ISP/IAP讀寫操作。如果真的發生了,可能導致寫入的記錄不準確。 
 
明天早上就將“水塔水質監控器”拆下來,并讀出里面EEPROM的數據保存到我的電腦上。然后換上新的"水塔水位監控器"。這樣的話,他就宣告退役啦!~~~要不要什么儀式呢,呵呵。退役后,將重新安裝在木桌上,裝回原來參加比賽時的樣子,整個演示裝置包括那臺小抽水機送往學校實驗室供展覽用。


2013年6月8日
舊版水塔水質監控器,已經停止使用。新版已經開始投入使用,安裝過程順利。
調取內部EEPROM數據發現,從2013年3月11日11時起開始擔任家里水塔的管家,直到2013年6月8日8時,累計完成抽水86次。除了剛開始第一個星期用時出現點意外,經過維護后,將近三個月里不出現任何故障,期間經歷過大暴雨、停電等環境影響。
嗯,記錄蠻有歷史意義的。 
另外,我讀取了整個Flash和EEPROM數據到電腦上備份。 

關閉窗口
上一篇:用匯編語言實現單片機的循環燈控制

相關文章

閱讀排行
推薦文章