51单片机驱动YL-69土壤湿度传感器

发布者:科技舞者最新更新时间:2020-02-12 来源: 51hei关键字:51单片机  驱动YL-69  土壤湿度传感器 手机看文章 扫描二维码
随时随地手机看文章

YL-69的资料内程序有51单片机和Arduino的测试程序,我用的是51的程序。先说我的模块吧,四线制的,如果你买的是三线制的也没关系,看完就懂。
VCC GND的连线就不说了。

DO —— 自己定于一个IO口,程序定义的是   key1=P0^1  ,
AO ——  J9  4 (AIN1)  这个要对照单片机原理图自己找                   
模拟量转数字量,用于LCD1602 显示准确数值(显示的是电压值,具体湿度要自己定义)

测试AO的时候我发现如果接上DO,LCD显示会出错,所以我接了AO线就会拔掉DO线,其实就是两种模式二选一就好了。
 

我从卖家那里获得的资料程序很简单,其程序单纯用于判断 干 或 湿。我加了个LED灯亮灭,也就是 湿就亮灯,干就灭灯。

好了,重点讲一下AO的接口,这个才重要。显示具体湿度值。
第一次写帖子啊,代码直接贴上来会怎么样的啊,不知道,是不是要写在附件里面啊,具体怎么操作不知道了,有懂的说一下哈。

一:接线接好了,直接烧程序(废话),但是如果你用的单片机是亚博的51单片机,它的学习资料,视频教程里面就会有LCD1602显示AD的程序,亚博 51单片机开发板资料A亚博 51单片机开发板光盘资料A6、单片机视频教程1、配套视频教程第19讲 AD和DA2.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
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;
                  }               
          }
}

关键字:51单片机  驱动YL-69  土壤湿度传感器 引用地址:51单片机驱动YL-69土壤湿度传感器

上一篇:51单片机OLED时钟显示
下一篇:51单片机PCA9685驱动9个舵机

推荐阅读最新更新时间:2024-11-06 11:21

8051单片机(STC89C52)以轮询方式实现串行通信
8051向笔记本电脑发送0 ~ 15, 且本次发送和前一次发送间间隔一小段时间. #include STC89C5xRC.H void delay() { int i, j; for(i = 0; i 300; i++) for(j = 0; j 300; j++) ; } void send() { int i; for(i = 0; i = 15; i ++) { delay(); SBUF = i; while(TI == 0); //等待数据发送完毕 TI = 0; } } int main() { TMOD = 0x21; //设定timer1的工作模式 SCON = 0
[单片机]
80<font color='red'>51单片机</font>(STC89C52)以轮询方式实现串行通信
基于51单片机的嵌入式SNMP代理器设计与实现
0 引言 SNMP(简单网络管理协议)应用广泛,功能强大,只要管理软件驻留有MIB(管理信息库),并且拥有适当的权限,管理器就可以访问SNMP代理器。SNMP一般用于计算机网络和电信网络,本文提出了用SNMP进行控制。由于其传输媒介是Internet,所以传输距离不受限制,这相对于其他工业控制总线有不可比拟的优势,SNMP最大的优点是协议简洁,适合嵌入式应用。SNMP体系可扩展性强,只要将新的MIB装载在管理软件上就可以实现对新的终端的控制与访问,本文介绍了一种基于廉价的微控制器的实现嵌入式代理器的方案,以微处理器核心实现相关硬件及软件。 1 SNMP体系结构 SNMP的体系结构(见图1)以简单的查询/回答模型为基
[单片机]
基于<font color='red'>51单片机</font>的嵌入式SNMP代理器设计与实现
89C51单片机9个按键的行列式键盘输入电路
若行线为P1.0~P1.2,列线为P1.5~P1.7,试画出只有9个按键的行列式键盘输入电路,并编写按键扫描程序 图片1 KEY: MOV P1,#11100000B MOV A,P1 CPL A ANL A,#111000000B JZ GORET KEY1: JB P1.5,KEY2 MOV 30H,#00H KEY2: JB P1.6,KEY3 MOV 30H,#01H KEY3:
[单片机]
89C<font color='red'>51单片机</font>9个按键的行列式键盘输入电路
MCS-51单片机汇编中的“寻址范围”
指令的占用的字节数可以不放在心上,因为现在的单片机的ROM容量都挺大的。 但如果寻址范围不注意的话,一旦汇编源程序长了就很容易出现错误。 特别是跳转指令等。 DPTR是16位寄存器。 LJMP addr16-------------0000H TO FFFFH AJMP addr11-------------0000H TO 07FFH SJMP rel-------------------负80H TO 7FH JMP @A+DPTR----------0000H TO FFFFH JZ rel-----------------------负80H TO 7FH ;累加器为0跳转 JNZ rel----------
[单片机]
51单片机OLED+dht11显示温度的源程序
入门51单片机一个多月,参加一个比赛熬夜写出了OLED+DHT11程序。 单片机源程序如下: #include REG51.h #include oled.h #include intrins.h typedef unsigned char BYTE; typedef unsigned int WORD; #define uint unsigned int #define uchar unsigned char sbit io=P1^2;//dht11data端接单片机的P1^0口// sbit IN1 = P1^0; sbit IN2 = P1^1; //输入电机接口 sbit K1 = P3^
[单片机]
51单片机超声波测距数码管显示
超声波原理简单测距准确,应用广泛下面贴一个自己写的数码管程序,显示部分需要改,最近比赛写的我使用的是慧净开发板,共阴数码管 //超声波模块程序 //作者 : Z H //时间 2015/11/29 //Trig = P2^0 //Echo = P3^2 #include reg52.h #define uchar unsigned char #define uint unsigned int unsigned char code table ={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; //0-9的码
[单片机]
基于51单片机的高频频率计的设计
  基于51 单片机设计 了一款测试范围在1Hz~10MHz的频率计。系统通过峰值有效电路和有效值电路将正弦渡、方波和三角波转化为直流信号送入单片机,通过编写相应的程序计算出其有效值和峰峰值的比,实现自动检测的目的,并由显示电路显示测量结果。该系统电路简洁、软件编写简单、调试难度低。   目前在频率测量领域中,对于高频率信号高精度测量大都使用ARM、FPGA等高速处理器加专用计数芯片来完成。但这种方法程序编写复杂,并且其处理器外围电路复杂,这增加了其调试难度,降低了可操作性。   文中设计的高频信号频率计,除数据处理和显示交由单片机负责外,测频核心电路用经检测的模拟电路完成,该高频频率计电路简洁,软件编写简单,降低了调试难度的同时
[单片机]
基于<font color='red'>51单片机</font>的高频频率计的设计
直流电机控制(PWM)+普中51单片机+江科大自化协
1 实验现象 2 实验原理 通过按键来控制PWM占空比实现对直流电机的调速,数码管则显示当前速度挡位信息。 (1)直流电机的控制是通过设置PWM波的占空比来控制直流电机的转速,占空比越大,转速越快,越小转速越低; (2)单片机的I/O口是不能直接驱动电机的,所以还需要用一个驱动芯片。如 LG9110、CMO825、L298 等。驱动芯片可以将单片机I/O输出信号放大,这样电机中流过的电流足够大,电机才能转起来。 (3)直流电机只有两根电源线,直流电机的两根电源线是不分正负极的。假设两根电源线代号分别为A、B。 当A线接正极,B线接负极时,电机正转(反转);那么当B线接正极,A线接负极时,电机反转(正转)。 3 参考程序
[单片机]
直流电机控制(PWM)+普中<font color='red'>51单片机</font>+江科大自化协
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved