精华内容
下载资源
问答
  • 2021-05-31 09:22:18

    视频演示地址:https://www.bilibili.com/video/BV1FA41137sa/

    开机后显示PH值的大小
    校准后可直接使用。

    更多相关内容
  • 包括程序代码以及PCB电路图和3D图,主要采用PCF8591来采集PH值传感器的数据,通过AO输出,PH值传感器需要先进行中值校准,否则无法使用。显示在1602上。
  • 单片机的软件实现传感器温度误差补偿,是一种简便、有效的方法。它可以大大提高传感器的测量精度,降低测量系统电路的复杂程度,提高可靠性,降低成本。
  • 本系统采用51单片机以及外搭AD模块,对PH传感器进行模拟量采集,并对PH值传感器进行校准,可以精确的采集溶液中的pH值,并且可以设置上下限,进行报警,希望对大家有一定的帮助
  • 可以测量PH值,8路管教任意切换,可以进行实时的PH值测量
  • 参考资料-基于soc单片机ph值检测与控制.zip
  • 摘要:基于SOC 单片机C8051F020 设计了pH 值的信号放大电路和抗干扰电路,并依据pH值的测量原理nernst 方程对pH 值进行校正。针对多因子水环境反应过程中pH 值滞后、非线性、时变、耦合性等特点,采用模糊PID 控制...
  • 绍、分析了单片机PH/ORP监控系统。
  • 基于CC3200单片机的无线鱼塘水质pH检测系统.pdf
  • 基于STC89C52单片机pH值测量仪设计.pdf
  • 基于STC12C5A60S2单片机编写的温度测量与PH值测量程序。温度传感器使用DS18B20,温度传感器使用单片机自带AD进行采样,内部集成拟合函数,使用1602液晶屏显示数据
  • 基于soc单片机ph值检测与控制.pdf
  • 基于运算放大器的自制pH传感器模块的开发,附带原理图。
  • 基于单片机ADuC845的pH计的设计.pdf
  • 基于MSP430单片机pH计的研制,论文非常详细,是制作PH仪器的好的参考资料
  • 单片机技术
  • 单片机pH智能分析仪中的应用.pdf
  • } void Display_PH1() { uint ph_h1, ph_h2,ph_h3,ph_h4; ph_h = ph1 * 100; ph_h1 = (int)ph_h/1000; ph_h2 = (int)ph_h%1000/100; ph_h3 = (int)ph_h%100/10; ph_h4 = (int)ph_h%10; DisplaySingleChar(0x03,0,ph...

    /******************** (C) COPYRIGHT 2015 Silicone shell electronic studio **************************

    * 文件名  :main.c

    * 描述    :

    * 硬件连接:

    *

    * 实验平台:STC12C5A60S2开发板

    *https://www.bilibili.com/video/BV1rK411V7xa/

    **********************************************************************************/

    #include

    #include

    #include

    #include

    #define        uchar        unsigned char

    #define uint        unsigned int

    #define MAIN_Fosc                11059200L        //定义主时钟, 模拟串口和和延时会自动适应。5~35MHZ  22118400L

    #define ADC_OFF()        ADC_CONTR = 0

    #define ADC_ON                (1 << 7)

    #define ADC_90T                (3 << 5)

    #define ADC_180T        (2 << 5)

    #define ADC_360T        (1 << 5)

    #define ADC_540T        0

    #define ADC_FLAG        (1 << 4)        //软件清0

    #define ADC_START        (1 << 3)        //自动清0

    #define ADC_CH0                0

    #define ADC_CH1                1

    #define ADC_CH2                2

    #define ADC_CH3                3

    #define ADC_CH4                4

    #define ADC_CH5                5

    #define ADC_CH6                6

    #define ADC_CH7                7

    sbit k1 = P2^0;

    sbit k2 = P2^1;

    sbit k3 = P2^2;

    sbit fs_led = P3^3;

    sbit ss_led = P3^4;

    sbit yw_up = P3^6;

    sbit yw_down = P3^7;

    /**************变量定义***************************/

    float PH=0.0;

    float PH_value=0.0;

    float ph1=0.0,ph2=0.0;

    float ph_h=0.0, ph_h_2=0.0;

    unsigned int temp_data=0;

    unsigned char disbuff[14]={0};

    void DelayUs(unsigned int time);   //延时子函数

    void Delay1(unsigned int time);                 //延时主程序

    void  delay_ms_AD(unsigned char ms);

    void  press_k1();

    void  press_k2();

    void  press_k3();

    void Display_PH1();

    void Display_PH2();

    void Display_time_set();

    uint        adc10_start(uchar channel);        //channel = 0~7

    uint        key_flag = 0,turnwater=0,flag1=0;

    uint count1 = 0;

    uint i;

    void PH_Value_Conversion()

    {

    PH=(PH*5)/1024;

    PH_value=-5.8887*PH+21.677;

    if((PH_value<=0)){PH_value=0;}

    if((PH_value>14)){PH_value=14.1;}

    /*显示酸碱度*/

    disbuff[0]=(int)(PH_value*100)/1000+'0';

    disbuff[1]=(int)(PH_value*100)%1000/100+'0';

    disbuff[2]='.';

    disbuff[3]=(int)(PH_value*100)%100/10+'0';

    disbuff[4]=(int)(PH_value*100)%10+'0';

    DisplaySingleChar(0x03,1,disbuff[0]);

    DisplaySingleChar(0x04,1,disbuff[1]);

    DisplaySingleChar(0x05,1,disbuff[2]);

    DisplaySingleChar(0x06,1,disbuff[3]);

    DisplaySingleChar(0x07,1,disbuff[4]);

    }

    void TEMP_Value_Conversion()                                        //温度

    {

    disbuff[9]=(int)(temp_data)/1000+'0';

    disbuff[10]=(int)(temp_data)%1000/100+'0';

    disbuff[11]=(int)(temp_data)%100/10+'0';

    disbuff[12]='.';

    disbuff[13]=(int)(temp_data)%10+'0';

    DisplaySingleChar(0x0b,1,disbuff[10]);

    DisplaySingleChar(0x0c,1,disbuff[11]);

    DisplaySingleChar(0x0d,1,disbuff[12]);

    DisplaySingleChar(0x0e,1,disbuff[13]);

    }

    /*

    * 函数名:main

    * 描述  :主函数

    * 输入  :无

    * 输出  :无

    */

    void main(void)

    {

    ss_led = 0;

    fs_led = 0;

    Init_Ds18b20();

    LCDInit();                              //显示屏初始化

    DisplayString(0x0,0,"  Welcome...  ");

    DisplayString(0x0,1,"water quality");

    Delay1(2500);

    WriteCmd(LCD_CLS);

    P1ASF = 0x07;                        //12C5A60AD/S2系列模拟输入(AD)选择

    ADC_CONTR = ADC_360T | ADC_ON;

    ph1 = 5.0;

    ph2 = 6.0;

    while(1)

    {

    press_k1();

    press_k2();

    press_k3();

    if (count1 == 0)

    {

    DisplayString(0x02,0,"*");

    DisplayString(0x09,0," ");

    }

    if (count1 == 1)

    {

    DisplayString(0x02,0," ");

    DisplayString(0x09,0,"*");

    }

    DisplayString(0x0,1,"PH:");

    DisplayString(0x09,1,"T:");

    Display_time_set();

    for(i=0; i<2; i++)

    {

    Delay1(500);

    if(i==0)

    {

    PH = adc10_start(0);

    PH_Value_Conversion();

    }

    if(i==1)

    {

    temp_data=Get_temp();

    TEMP_Value_Conversion();

    }

    }

    if (PH_value < ph1 || PH_value > ph2)

    {

    turnwater = 1;

    }

    if( turnwater == 1 )

    {

    if(yw_down == 0 && flag1 == 0)       //放水过程

    {

    ss_led = 0;

    fs_led = 1;

    }

    if(yw_down == 1 && flag1 == 0)       //放水完毕,开始上水

    {

    ss_led = 1;

    fs_led = 0;

    flag1 = 1;

    }

    if(yw_up == 0 && flag1 == 1)      //上水完毕,关继电器

    {

    ss_led = 0;

    fs_led = 0;

    turnwater = 0;

    flag1=0;

    }

    }

    }

    }

    ///********************* 做一次ADC转换 *******************/

    uint        adc10_start(uchar channel)        //channel = 0~7

    {

    uint        adc;

    uchar        i;

    ADC_RES = 0;

    ADC_RESL = 0;

    ADC_CONTR = (ADC_CONTR & 0xe0) | ADC_START | channel;

    i = 250;

    do{

    if(ADC_CONTR & ADC_FLAG)

    {

    ADC_CONTR &= ~ADC_FLAG;

    adc = (uint)ADC_RES;

    adc = (adc << 2) | (ADC_RESL & 3);

    return        adc;

    }

    }while(--i);

    return        1024;

    }

    //========================================================================

    // 函数: void  delay_ms(unsigned char ms)

    // 描述: 延时函数。

    // 参数: ms,要延时的ms数.

    // 返回: none.

    // 版本: VER1.0

    // 日期: 2010-12-15

    // 备注:

    //========================================================================

    void  delay_ms_AD(unsigned char ms)

    {

    unsigned int i;

    do{

    i = MAIN_Fosc / 14000;

    while(--i)        ;   //14T per loop

    }while(--ms);

    }

    //========================================================================

    void Display_time_set()

    {

    Display_PH1();

    Display_PH2();

    }

    void Display_PH1()

    {

    uint ph_h1, ph_h2,ph_h3,ph_h4;

    ph_h = ph1 * 100;

    ph_h1 = (int)ph_h/1000;

    ph_h2 = (int)ph_h%1000/100;

    ph_h3 = (int)ph_h%100/10;

    ph_h4 = (int)ph_h%10;

    DisplaySingleChar(0x03,0,ph_h1+0x30);

    DisplaySingleChar(0x04,0,ph_h2+0x30);

    DisplaySingleChar(0x05,0,'.');

    DisplaySingleChar(0x06,0,ph_h3+0x30);

    DisplaySingleChar(0x07,0,ph_h4+0x30);

    }

    void Display_PH2()

    {

    uint ph_h1, ph_h2,ph_h3,ph_h4;

    ph_h_2 = ph2 * 100;

    ph_h1 = (int)ph_h_2/1000;

    ph_h2 = (int)ph_h_2%1000/100;

    ph_h3 = (int)ph_h_2%100/10;

    ph_h4 = (int)ph_h_2%10;

    DisplaySingleChar(0x0a,0,ph_h1+0x30);

    DisplaySingleChar(0x0b,0,ph_h2+0x30);

    DisplaySingleChar(0x0c,0,'.');

    DisplaySingleChar(0x0d,0,ph_h3+0x30);

    DisplaySingleChar(0x0e,0,ph_h4+0x30);

    }

    //========================================================================

    // 描述: 键盘扫描。

    void press_k1()

    {

    if (k1 == 0)

    {

    Delay1(80);

    if (k1 == 0)

    {

    //key_flag = 1;

    count1++;

    if (count1 ==2)

    {

    count1 = 0 ;

    }

    }

    }

    }

    void press_k2()

    {

    if (k2 == 0)

    {

    Delay1(100);

    if (k2 == 0)

    {

    if (count1 == 0)

    {

    ph1+=0.1;

    if(ph1>=14)

    {

    ph1 = 0;

    }

    }

    if (count1 == 1)

    {

    ph2+=0.1;

    if(ph2>=14)

    {

    ph2 = 0;

    }

    }

    }

    }

    }

    void press_k3()

    {

    if (k3 == 0)

    {

    Delay1(100);

    if (k3 == 0)

    {

    if (count1 == 0)

    {

    ph1-=0.1;

    if(ph1<=0)

    {

    ph1 = 14;

    }

    }

    if (count1 == 1)

    {

    ph2-=0.1;

    if(ph2<=0)

    {

    ph2 = 14;

    }

    }

    }

    }

    }

    //延时函数//

    void Delay1(unsigned int time)

    {

    unsigned int timeCounter = 0;

    for (timeCounter = time;timeCounter > 0 ;timeCounter --)

    DelayUs(255);

    }

    void DelayUs(unsigned int time)

    {

    unsigned int timeCounter = 0;

    for (timeCounter = 0;timeCounter < time;timeCounter ++)

    _nop_();

    }

    //void        BitTime(void)        //位时间函数

    //{

    //        uint i;

    //        i = ((MAIN_Fosc / 100) * 104) / 140000L - 1;                //根据主时钟来计算位时间

    //        while(--i);

    //}

    //模拟串口发送

    //void        Tx1Send(uchar dat)                //9600,N,8,1                发送一个字节

    //{

    //        uchar        i;

    //        EA = 0;

    //        P_TXD1 = 0;

    //        BitTime();

    //        for(i=0; i<8; i++)

    //        {

    //                if(dat & 1)                P_TXD1 = 1;

    //                else                        P_TXD1 = 0;

    //                dat >>= 1;

    //                BitTime();

    //        }

    //        P_TXD1 = 1;

    //        EA = 1;

    //        BitTime();

    //        BitTime();

    //}

    展开全文
  • 参考资料-利用AT89S51单片机设计pH值控制器.zip
  • 水产科研的不断深入以及... 本系统以单片机为主控制器,结合 的外围器件,可实现同时监测溶解氧、温度、pH值、电导率、氨氮等11路参数的变化,同时显示在液晶显示器上,并按设定的时间间隔记录在EEPROM中;也可通过
  • 基于单片机PH值控制器的设计说明.doc
  • 基于单片机的数字式PH值测量仪的设计终期PPT学习教案.pptx
  • 泳池水质监控PH温度浑浊度测量_基于STC89C51单片机

    千次阅读 多人点赞 2020-07-04 13:19:04
    研究泳池水质监控系统的整体结构设计,包括总体方案设计、软硬件总体设计等,要求监控泳池水温度、PH值、浑浊度等。 以单片机为主要控制器件,主要包括硬件电路的设计和系统程序的设计。硬件电路主要包括传感器的...

    前述:
    QQ:3177227373
    V X:F9986858

    主要内容

    研究泳池水质监控系统的整体结构设计,包括总体方案设计、软硬件总体设计等,要求监控泳池水温度、PH值、浑浊度等。
    以单片机为主要控制器件,主要包括硬件电路的设计和系统程序的设计。硬件电路主要包括传感器的选取,单片机的选取与应用,A/D转换的选用,电源设计,显示部分设计等;软件设计主要包括主程序设计和子程序设计,监测结果通过显示模块显示。

    系统硬件结构设计

    单片机的选择

    泳池监控系统的核心是微处理器,对处理器的选型将直接决定系统的性能及总体开发方式。选型的主要标准有:
    1、具有较高的计算能力;
    2、具备与其他设备的通信接口;
    3、整体功耗较低等。
    根据获取和软件开发的难易程度,经过初步的筛选,基本在MSP430单片机,51单片机和其他PIC中进行选择。根据前文对低功耗要求,首先要选择的是具备低功耗模式且运算速度较快的芯片。
    从供电电压上来看,MSP430的最低工作电压为3.3V,51单片机及其他PIC为5V,在工作电压的需求方面,与其他单片机相比,MSP430对电压的要求较低,可以更好的降低功率。另外,MSP430自身带有5种低功耗模式,可以根据不同的实际情况选择对应的低功耗模式,在程序设计上可以根据实际需要关闭闲置的模块,来达到低功耗的目的。在本次筛选对比MSP430系列的单片机低功耗以及运算能力方面有着相当的优势。
    根据对比筛选得出,本设计选择MSP430芯片作为主控芯片。根据前人的设计证明,以及MSP430价格上的优势加上片内资源丰富,MSP 430能够很好的完成智能监控的主控功能。整个数据采集处理流程为,传感器模块将采集到的模拟信号经过A/D模块转化为数字信号传至MSP430芯片中,MSP430芯片对传来的信号进行分析和处理,实现对采集信息的显示以及对控制端的控制。
    本设计主控芯片采用的是MSP430系列单片机中的f149型号。该单片机在程序设计、开发调试及实际应用上都具有明显的优点。具有方便、便宜、实用等优点,给用户提供了一个理想的样机开发方式。MSP430主控芯片特点:1、处理能力强;2、运算速度快;3、超低功耗;4、折叠片内资源丰富;5、开发环境简单。

    传感器选择

    温度传感器:

    经常用到的温度传感器类型有、半导体、热电偶、热敏电阻等,其中半导体测温元件又分为电压型、电流型和数值型。DS18B20传感器为数值型温度传感器、其具备了导线少、体积小以及使用方便等特点。虽然它有0.5℃的固有测温误差为,但是考虑到作为泳池水质的温度采集,0.5℃的误差是可以接受的,其优点远大于缺点。因此本设计采用DS18B20数字温度传感器。
    DS18B20温度传感器输出数字信号,通过程序编辑设置可选择数字值的位数(9-12位),本设计基于泳池水环境的实际使用情况,选择DS18B20的防水封装,该封装类型可以直接将传感器安装与水中,且体积小安装方便。

    PH值传感器:

    PH值的测量,主要由指示电极和参考电极构成。目前主要的指示电极有两大类,分别为金属电极和玻璃电极。在实际应用中由于各种原因,金属电极仅仅在工业测量中使用。而玻璃电极在实验测量和工业测量中都有比较广泛的应用。
    在PH值测量中玻璃电极和金属电极都具有比较良好的复现性,都存在可以接受的测量误差,都能够较为准确的测量出被测溶液的PH值。经过各两类电极的比较,本设计采用玻璃电极传感器采集泳池水中的PH值。

    水浊度传感器:

    游泳池水质在正常营业过程中随着游泳人员越来越多加上所处的自然环境,水中出现越来越多的悬浮颗粒,从而导致水质被污染。对水浊度进行检测主要是检测水中悬浮颗粒的含量。
    本设计选用的浊度传感器为红外传感器,内部有封装的红外对管。对管平行放置于泳池的水环境中,通过红外对管发射端发出光线,红外对管接收端把透过的光强度转化为电流。水中悬浮颗粒会挡住红外传感器发出的一部分光线,使光线的强度发生改变。水中的悬浮颗粒越多则水浊度越高,透过光线的强度则越弱,接收端转化出来的电流也越小。相反,水浊度越高,透光性越强则电流越大。所以可以通过对浊度传感器电流的检测,完成对泳池水浊度的监测。
    在这里插入图片描述

    系统软件结构设计

    主程序是程序设计的主干,在主程序的调控下完成整体的工作。本设计实际流程为:打开开关,单片机通电,首先进行系统初始化,LCD显示屏进入欢迎界面,2秒钟后进入系统测量程序,屏幕实时显示测量的值,整个系统开始正常工作。主程序流程如图所示。
    在这里插入图片描述

    实物照片

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    仿真

    在这里插入图片描述

    PCB

    在这里插入图片描述

    部分代码

    浑浊度计算
    //浑浊度计算
    void TURB_Date()
    {
    	//浑浊度获取并计算
    	Dat1=ReadADC(1);
    	TU= 不展示核心代码;//计算电压
    	temp_data=shi*10+ge;//计算温度
    	TU_calibration=不展示核心代码;//温度补偿
    	TU_value=不展示核心代码;//转换公式
    	
    	if(TU_value<=0){TU_value=0;}
    	if(TU_value>=3000){TU_value=3000;}
    	
    	TU_Val=(int)TU_value/30;//计算为百分比
    }
    
    PH值计算
    //PH值计算
    void PH_Date()
    {
    	//PH值获取并计算
    	Dat2=ReadADC(0);
    	ADC_Voltage_1=不展示核心代码;//转换为电压值
    	PH_Value=不展示核心代码;//转换公式
    	
    	if(PH_Value<=0){PH_Value=0;}
    	if(PH_Value>=14){PH_Value=14;}
    
    	Disbuff_PH[0]=(int)(PH_Value*100)/1000;
    	Disbuff_PH[1]=(int)(PH_Value*100)%1000/100;
    	Disbuff_PH[2]=(int)(PH_Value*100)%100/10;
    	Disbuff_PH[3]=(int)(PH_Value*100)%10;
    	
    	PH_DAT=Disbuff_PH[0]*1000+Disbuff_PH[1]*100+Disbuff_PH[2]*10+Disbuff_PH[3];
    }
    
    LCD1602显示
    void LCD_Init()//液晶初始化
    {
    	u8 i;
    	LCD_WR=0;
    	LCD_Write_Cmd(0x38);//设置16*2显示,5*7点阵,8位数据接口
    	LCD_Write_Cmd(0x0c);//设置开显示,0x0e显示光标  0x0c不显示光标
    	LCD_Write_Cmd(0x06);//写一个字符后地址指针自动加1,光标自动右移
    	LCD_Write_Cmd(0x01);//清屏
    	LCD_Write_Cmd(0x80);//数据指针定位到第一行第一个字处
    	for(i=0;i<16;i++)
    		LCD_Write_Data(str1[i]);//液晶显示第一行写数据
    	LCD_Write_Cmd(0xc0);//数据指针定位到第二行第一个字处
    	for(i=0;i<16;i++)
    		LCD_Write_Data(str2[i]);//液晶显示第二行写数据
    }
    
    //LCD1602显示函数
    void LCD_Manifest(u8 row,u8 add,u8 date)
    {
     	if(row==1) 	 LCD_Write_Cmd(0x80+add);
    	if(row==2)	 LCD_Write_Cmd(0xc0+add);
    	LCD_Write_Data(0x30+date);
    }
    
    void LCD_Write_Cmd(u8 com)//液晶写命令
    {
       LCD_RS=0;//选择写命令模式
       Date=com;//将要写的命令字送到数据总线上
       delay_ms(1);
       LCD_E=1;//使能端给一高脉冲,高脉冲有效
       delay_ms(1);
       LCD_E=0;
    }
    void LCD_Write_Data(u8 date)//数据写命令
    {
       LCD_RS=1;//选择写数据模式
       Date=date;
       delay_ms(1);
       LCD_E=1;//使能端给一高脉冲,高脉冲有效
       delay_ms(1);
       LCD_E=0;
    }
    
    ADC采集
    //读取AD模数转换的值,有返回值
    unsigned char ReadADC(unsigned char Chl)
    {
    	unsigned char Data;
    	Start();        //写入芯片地址
    	Send(0x90);
    	Ack();
    	Send(0x40|Chl);//写入选择的通道,Chl的值分别为0、1、2、3,分别代表1-4通道
    	Ack();
    	Start();
    	Send(0x91);    //读入地址
    	Ack();
    	Data=Read();    //读数据
    	Scl=0;
    	NoAck();
    	Stop();
    	return Data;   //返回值
    }
    
    DS18B20温度采集
    void Tem_display(u16 temp)
    {
    	float tp;
    	tp=temp;//因为数据处理有小数点所以将温度赋给一个浮点型变量
    	//如果温度是正的那么,那么正数的原码就是补码它本身
    	temp=不展示核心代码;	
    	//留一个小数点就*10,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点
    	//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就
    	//算加上0.5,还是在小数点后面。
    	shi = temp % 1000 / 100; //显示温度十位数
      	ge  = temp % 100 / 10;	 //显示温度个位数
      	xs  = temp % 10;		 //显示小数一位
    	Temp_Now=(u16)temp%1000;
    }
    
    //读取温度
    int Ds18b20ReadTemp()
    {
    	int temp=0;
    	u8 tmh,tml;
    	Ds18b20ChangTemp();			 //先写入转换命令
    	Ds18b20ReadTempCom();		//然后等待转换完后发送读取温度命令
    	tml=Ds18b20ReadByte();		//读取温度值共16位,先读低字节
    	tmh=Ds18b20ReadByte();		//再读高字节
    	不展示核心代码
    	return temp;
    }
    
    展开全文
  • 余氯在线检测系统的设计及单片机编程优化.pdf
  • 5.通过PCF8591 AD转换器,采集电压数据,并由单片机处理得到相应的PH,浊度值 6.通过LCD1602实现人机界面,显示PH值和浊度值 7.采用蜂鸣器和LED灯实现声光报警,当PH低于5或高于8时,浊度过大时都会报警 8.采用继电器...
  • 本系统由STM32单片机核心板、超声波测距模块、PH值传感器模块、电导率传感器、LCD1602液晶及电源组成。 1、超声波传感器采集探测距离,PH传感器采集PH值(PH传感器需要根据手册校准),电导率传感器采集液体电导率值...

    系统功能设计

    (末尾附文件)

    本系统由STM32单片机核心板、超声波测距模块、PH值传感器模块、电导率传感器、LCD1602液晶及电源组成。
    1、超声波传感器采集探测距离,PH传感器采集PH值(PH传感器需要根据手册校准),电导率传感器采集液体电导率值。
    2、LCD1602液晶实时显示液位、PH值和电导率。

    PH值检测采集传感器模块设计
    本PH值检测传感器模块可以很方便的检测液体的PH值,其由PH电极和PH值转换器两部分组成。
    PH电极通过 BNC 输出的是 mV 信号,该模块实现信号放大的功能。 转换为 0-5V。电压读取可以用单片机或者万用表。之后根据标准曲线将输出的电压信号转换为待测溶液的 PH 值。(由于电极个体差异与电位器电阻差异,请务必收到模块后做标准曲线)
    在这里插入图片描述
    在这里插入图片描述
    STM32F103C8T6单片机核心板:
    USB供电接口,复位按键 开关按键
    在这里插入图片描述
    合理优秀的布局布线:
    在这里插入图片描述
    .

    链接:https://pan.baidu.com/s/10_-uSx95-MUqFCojV_N_8w
    提取码:o9sb

    .

    展开全文
  • 电压读取可以用单片机或者万用表。之后根据标准曲线将输出的电压信号转换为待测溶液的 PH 值。(由于电极个体差异与电位器电阻差异,请务必收到模块后做标准曲线) 引脚功能: VCC:5V 电源正输入口 (只能用 5V,不...
  • 基于51单片机的智能水箱控制系统(仿真+程序+原理图)
  • 1.节点1单片机采集PH及土壤湿度数据; 2.节点2单片机采集SGP的TVOC和CO2数据; 3.节点3接收节点1和2的数据汇总并驱动OLED显示数据,并向节点4发送数据; 4.节点5接收节点4的数据,采用485总线驱动DTU传输数据至...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 834
精华内容 333
关键字:

ph 单片机