YL-69的資料內程序有51單片機和Arduino的測試程序,我用的是51的程序。先說我的模塊吧,四線制的,如果你買的是三線制的也沒關系,看完就懂。
VCC GND的連線就不說了。
DO —— 自己定于一個IO口,程序定義的是 key1=P0^1 ,
AO —— J9 4 (AIN1) 這個要對照單片機原理圖自己找
模擬量轉數字量,用于LCD1602 顯示準確數值(顯示的是電壓值,具體濕度要自己定義)
測試AO的時候我發現如果接上DO,LCD顯示會出錯,所以我接了AO線就會拔掉DO線,其實就是兩種模式二選一就好了。
3.jpg (124.91 KB, 下載次數: 98)
下載附件
2019-7-18 18:52 上傳
2.jpg (122.89 KB, 下載次數: 100)
下載附件
2019-7-18 18:52 上傳
1.png (205.91 KB, 下載次數: 91)
下載附件
2019-7-18 18:52 上傳
我從賣家那里獲得的資料程序很簡單,其程序單純用于判斷 干 或 濕。我加了個LED燈亮滅,也就是 濕就亮燈,干就滅燈。
好了,重點講一下AO的接口,這個才重要。顯示具體濕度值。
第一次寫帖子啊,代碼直接貼上來會怎么樣的啊,不知道,是不是要寫在附件里面啊,具體怎么操作不知道了,有懂的說一下哈。
一:接線接好了,直接燒程序(廢話),但是如果你用的單片機是亞博的51單片機,它的學習資料,視頻教程里面就會有LCD1602顯示AD的程序,亞博 51單片機開發板資料A\亞博 51單片機開發板光盤資料A\6、單片機視頻教程\1、配套視頻教程\第19講 AD和DA\2.AD(1602液晶顯示)
就是這個程序了,AO接線后,單片機那張圖片,我用濕紙巾包著傳感器, 2.2V 那個就是AD轉換后的數值,其它數值嘛,不要管,視頻教程里面有說是什么來的,學習用的。 打開程序,把那些檢測的程序刪除一部分就可以了。然后按照自己的想法修改程序。
二:我自己修改了一下,發現這個程序的LCD顯示程序真的是 令人費解,你可以去理解,但真的是極其巧妙,我改了挺久的。
改好后的顯示有濕度,原本AD轉換后的信號量我沒有刪去, 5.0v干,對應0%濕度 。 4.0V濕對應25%濕度,1.0V......... 這個是自己大概范圍的定義。
程序里面有水泵電機的開關,當濕度為25% 也就是4.0V~5.0V之間的時候,電機開啟泵水
水泵接線 J11 4、5 (VCC和OUT4)原理圖看。 還要接一條線,J12 IN4接P1^2 這個1.2是自己定義的,程序里面的 sbit ben=p1^2 。 if ben=0 水泵開啟。
如果要自己研究的話看 一: 給你提供一個方向,因為我開始的時候就是AD不會用。要參照我的程序的話我提供一個壓縮包。
(卑微的我黑幣太少,寫一下簡單的濕度傳感器吧)
單片機源程序如下:
/******************************************
傳感器觸發測試
單片機:STC89C52
波特率:9600
*****************************************/
#include <reg52.h>
unsigned char date;
#define uchar unsigned char
#define uint unsigned int
sbit key1=P0^1; //程序自帶觀察對象 數碼管
sbit LED1=P1^2; //自己定義了一個LED燈觀察
/* 函數申明 -----------------------------------------------*/
void delay(uint z);
void Initial_com(void);
/*********************************************************************************
** 函數名稱 : delay(uint z)
** 函數功能 : 延時函數
*********************************************************************************/
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
//*****串口初始化函數***********
void Initial_com(void)
{
EA=1; //開總中斷
ES=1; //允許串口中斷
ET1=1; //允許定時器T1的中斷
TMOD=0x20; //定時器T1,在方式2中斷產生波特率
PCON=0x00; //SMOD=0
SCON=0x50; // 方式1 由定時器控制
TH1=0xfd; //波特率設置為9600
TL1=0xfd;
TR1=1; //開定時器T1運行控制位
}
//**********主函數*********
main()
{
Initial_com();
while(1)
{
LED1=1; // LED 常閉
if(key1==0)
{
delay(5); //消抖動
if(key1==0) //確認觸發
{
SBUF=0X01; // 檢測到濕 數碼管開、LED亮
LED1=0;
delay(200);
}
}
if(RI)
{
date=SBUF; //單片機接受
SBUF=date; //單片機發送
RI=0;
}
}
}
程序與pdf資料51hei下載地址:
土壤濕度傳感器 資料合集.7z
(2.08 MB, 下載次數: 680)
2022-10-11 18:01 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|