這段時間做了一個無線浮球控制器,用了差不多一個星期的時間。
主要原理是用浮球來控制單片機的I0口.單片機的io口再輸出一個觸發信號
這個觸發信號經光耦之后來觸觸發無線模塊。可以實現500米到100米的無線傳輸。
從而控制水位的高低。
附件里面有 原理圖 PCb板 和程序員代碼
都是自己制作的 請大家多多指教 多提一些寶貴意見
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
51hei.png (45.9 KB, 下載次數: 54)
下載附件
2019-11-5 17:33 上傳
51hei.png (38.92 KB, 下載次數: 48)
下載附件
2019-11-5 17:34 上傳
51hei.png (2.61 KB, 下載次數: 56)
下載附件
2019-11-5 17:34 上傳
單片機源程序如下:
- /*********************************************************************/
- #include <STC8.H> //調用單片機頭文件
- #include <intrins.H>
- #define uchar unsigned char//宏定義無符號字符型
- #define uint unsigned int //宏定義無符號整型
- /********************************************************************
- 初始定義
- *********************************************************************/
- uint a,b,t,n,i;
- sbit D0 = P2^4; //數據D0輸出
- sbit D1 = P2^3; //數據D1輸出
- //sbit LED = P2^3; //信號輸出指示燈
- sbit KEY0 = P1^0; //輸入觸發端
- sbit KEY1 = P1^1; //輸入觸發端
- /********************************************************************
- 延時函數
- *********************************************************************/
- void delay(uint xms)
- {
- uint i,j;
- for(i=xms;i>0;i--)
- for(j=110;j>0;j--);
- }
- /********************************************************************
- 主函數
- *********************************************************************/
- void main()
- {
- P1M0 = 0x00;//輸入設定為僅為輸入要外加上拉電阻
- P1M1 = 0x07;
- D1 =D0 = 0;
- while(1)
- {
- if(KEY0==0){delay(1000);if(KEY0==0){D0=1;D1=0;delay(30000);D0=0;while(!KEY0);}}
- if(KEY1==0){delay(1000);if(KEY1==0){D0=0;D1=1;delay(30000);D1=0;while(!KEY1);}}
- }
- }
復制代碼
所有資料51hei提供下載:
無線浮球PCB.zip
(56.48 KB, 下載次數: 14)
2019-11-5 14:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
無線浮球SCH.zip
(9.81 KB, 下載次數: 14)
2019-11-5 14:21 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
chengxu.zip
(797 Bytes, 下載次數: 16)
2019-11-5 14:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|