精华内容
下载资源
问答
  • STM32之GP2Y1014AU.zip

    2020-12-06 15:33:50
    stm32f103c8t6+gp2y1014au实现粉尘采集,资料包含工程代码+gp2y1014au接线图+gp2y1014au数据手册
  • PM2.5传感器 GP2Y1014AU粉尘传感器 传感器模块代替GP2Y1010AU0F.PDF,灰尘传感器的使用说明
  • GP2Y1014AU0F灰尘传感器模块说明书,该模块可以用来测量环境PM2.5,油烟,水雾等,文档内涵时序图,环境电压测试曲线,标准电路等各个方面。
  • GP2Y1014AU0F粉尘传感器

    千次阅读 2021-04-18 14:59:22
    GP2Y1014AU0F粉尘传感器 概述 GP2Y1014AU0F粉尘传感器是由夏普公司生产的一款光学灰尘传感器

    GP2Y1014AU0F粉尘传感器

    概述

    GP2Y1014AU0F粉尘传感器是由夏普公司生产的一款光学灰尘传感器

    组成

    工作原理

    传感器中心有一个圆形的洞,空气可以自由流过。

    基本参数

    重要参数

    • 供电电压:5~7V
    • 消耗电流:最大20mA
    • 清洁空气中的电压值:0.9V
    • 最小粒子检出值:0.7μm
    • 灵敏度:0.5V/(mg/m³)

    其他参数

    • 工作温度:-10~65℃(该温度下可正常工作)
    • 存储温度:-20~85℃(该温度下传感器参数不改变)
    • 使用寿命:5年
    • 尺寸大小:46mm×30mm×17.6mm
    • 重量大小:15g

    电路连接

    电路连接

    程序设计

    gp2y1014au0f.c

    #include "gp2y1014au0f.h"
    #include "delay.h"
    
    /*初始化ADC*/
    void  Adc_Init(void)
    { 	
    	ADC_InitTypeDef ADC_InitStructure; 
    	GPIO_InitTypeDef GPIO_InitStructure;
    
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB |RCC_APB2Periph_ADC1	, ENABLE );	  //使能ADC1通道时钟
     
    
    	RCC_ADCCLKConfig(RCC_PCLK2_Div6);   //设置ADC分频因子6 72M/6=12,ADC最大时间不能超过14M
    
    	//PA1 作为模拟通道输入引脚                         
    	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
    	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;		//模拟输入引脚
    	GPIO_Init(GPIOA, &GPIO_InitStructure);	
      
    	//PB1 作为脉冲输出引脚   
    	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;	                 
    	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;           
    	GPIO_Init(GPIOB, &GPIO_InitStructure);
    	GP2Y_High;
    
    	ADC_DeInit(ADC1);  //复位ADC1,将外设 ADC1 的全部寄存器重设为缺省值
    
    	ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;	//ADC工作模式:ADC1和ADC2工作在独立模式
    	ADC_InitStructure.ADC_ScanConvMode = DISABLE;	//模数转换工作在单通道模式
    	ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;	//模数转换工作在单次转换模式
    	ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;	//转换由软件而不是外部触发启动
    	ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;	//ADC数据右对齐
    	ADC_InitStructure.ADC_NbrOfChannel = 1;	//顺序进行规则转换的ADC通道的数目
    	ADC_Init(ADC1, &ADC_InitStructure);	//根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器   
    
      
    	ADC_Cmd(ADC1, ENABLE);	//使能指定的ADC1
    	
    	ADC_ResetCalibration(ADC1);	//使能复位校准  
    	 
    	while(ADC_GetResetCalibrationStatus(ADC1));	//等待复位校准结束
    	
    	ADC_StartCalibration(ADC1);	 //开启AD校准
     
    	while(ADC_GetCalibrationStatus(ADC1));	 	//等待校准结束
     
    	//	ADC_SoftwareStartConvCmd(ADC1, ENABLE);	//使能指定的ADC1的软件转换启动功能
    }				  
    //获得ADC值
    //ch:通道值 0~3
    u16 Get_Adc(u8 ch)   
    {
      	//设置指定ADC的规则组通道,一个序列,采样时间
    	ADC_RegularChannelConfig(ADC1, ch, 0, ADC_SampleTime_239Cycles5 );	//ADC1,ADC通道,采样时间为239.5周期	  			    
      
    	ADC_SoftwareStartConvCmd(ADC1, ENABLE);		//使能指定的ADC1的软件转换启动功能	
    	 
    	while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
    
    	return ADC_GetConversionValue(ADC1);		//返回最近一次ADC1规则组的转换结果
    }
    
    float GetGP2Y(void)
    {
        u32 AD_PM;  
    	  double pm; 
        GP2Y_Low;
        delay_us(280);
        AD_PM = Get_Adc(ADC_Channel_0);	//PA0
        delay_us(40);
        GP2Y_High;
        delay_us(9680);
        pm = 0.17*AD_PM-0.1; //转换公式
        //printf("%f\n",pm);
    	return pm;
    } 
    
    u16 Get_GP2Y_Average(u8 times)
    {
    	u32 pm_val=0;
    	u8 t;
    	for(t=0;t<times;t++)
    	{
    		pm_val+=GetGP2Y();
    		delay_ms(5);
    	}
    	return pm_val/times;
    } 
    
    

    gp2y1014au0f.h

    #ifndef __GP2Y1014AU0F_H
    #define __GP2Y1014AU0F_H	
    #include "sys.h"
    
    #define GP2Y_High GPIO_SetBits(GPIOB,GPIO_Pin_1);
    #define GP2Y_Low  GPIO_ResetBits(GPIOB,GPIO_Pin_1);
    
    float GetGP2Y(void);
    void Adc_Init(void);
    u16  Get_Adc(u8 ch); 
    u16 Get_GP2Y_Average(u8 times);
     
    #endif 
    
    
    展开全文
  • 目录资料:清单:概观规范检测原理测试代码:测试得到的数据和空气质量对照:排线位置:不接电容电阻接线示意图:添加...GP2Y1014AU_设计参考指南及原理:http://pan.baidu.com/s/1o6kglNs 打包下载地址:https://do...

    资料:

    产品手册(资料):http://pan.baidu.com/s/1eQjaACa

    GP2Y1014AU_设计参考指南及原理:http://pan.baidu.com/s/1o6kglNs

    打包下载地址:https://download.csdn.net/download/acktomas/11006449

    清单:

    1. GP2Y1014AU0F 灰尘传感器(1个)代替已经停产的GP2Y1010AU0F
    2. 150ohm的电阻(1个)
    3. 220uF的电容(1个)
    4. 6pin连接线(1个)【实验必备元件】
      在这里插入图片描述

    概观

    夏普光学灰尘传感器(GP2Y1014AU0F)在检测非常细的颗粒,如香烟烟雾,是特别有效的,并且是常用的空气净化器系统。

    该装置中,一个红外发光二极管和光电晶体管,对角布置成允许其检测到在空气中的灰尘反射光。

    该传感器具有极低的电流消耗(最大20mA,11毫安典型的),可以搭载高达7VDC的传感器。输出的是一个模拟电压正比于所测得的粉尘浓度,敏感性为0.5V/0.1mg/m3。

    规范

    • 电源电压:5-7V
    • 工作温度:-10-65摄氏度
    • 消耗电流:20mA最大
    • 最小粒子检出值:0.8微米
    • 灵敏度:0.5V/(0.1mg/m3)
    • 清洁空气中电压:0.9V 典型值
    • 工作温度:-10~65℃
    • 存储温度:-20~80℃
    • 使用寿命:5年
    • 尺寸大小:46mm×30mm×17.6mm
    • 重量大小:15g

    检测原理

    其原理如下图,传感器中心有个洞可以让空气自由流过,定向发射LED光,通过检测经过空气中灰尘折射过后的光线来判断灰尘的含量。

    测试代码:

    int dustPin = 0;
    
    float dustVal = 0;
    
    int ledPower = 2;
    int delayTime = 280;
    int delayTime2 = 40;
    float offTime = 9680;
    void setup() {
      Serial.begin(9600);
      pinMode(ledPower, OUTPUT);
      pinMode(dustPin, INPUT);
    }
    
    void loop() {
      // ledPower is any digital pin on the arduino connected to Pin 3 on the sensor
      digitalWrite(ledPower, LOW);
      delayMicroseconds(delayTime);
      dustVal = analogRead(dustPin);
      delayMicroseconds(delayTime2);
      digitalWrite(ledPower, HIGH);
      delayMicroseconds(offTime);
    
      delay(1000);
      if (dustVal > 36.455)
        Serial.println((float(dustVal / 1024) - 0.0356) * 120000 * 0.035);
    }
    

    在这里插入图片描述

    测试得到的数据和空气质量对照:

    3000 + = 很差
    1050-3000 = 差
    300-1050 = 一般
    150-300 = 好
    75-150 = 很好
    0-75 = 非常好

    排线位置:

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

    不接电容电阻接线示意图:

    在这里插入图片描述

    添加一个150ohm的电阻和一个220uF的电容,接线如下图:

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

    Sensor PinArduino Pin
    Vled(150ohm resistor)
    LED-GNDGND
    LEDDigital pin 2
    S-GNDGND
    VoAnalog pin 0
    Vcc5V

    LED引脚必须调节成1ms的周期。

    LED似乎使用的是PNP晶体管来通电,LED引脚必须接收一个较低的电压。

    展开全文
  • 修改正点原子ADC函数,STM32F103对夏普PM2.5模块GP2Y1014AU进行ADC采集并进行数据计算,数据支持串口打印显示和TFT屏幕显示两种。
  • STM32F407驱动PM2.5传感器GP2Y1014AU模块驱动代码的代码,其中的GetPM25函数可以用来获取当前端口输出的电压
  • GP2Y1014AU0F.pdf

    2020-04-08 15:38:13
    2. When using this product, please observe the absolute maximum ratings and the instuctions for use outlined in these specification sheets, as well as the precautions mentioned below. Sharp assumes ...
  • 【Arduino教程】GP2Y1014AU粉尘传感器原理分析及使用

    万次阅读 多人点赞 2018-12-27 16:10:10
    GP2Y1014AU粉尘传感器是夏普开发的一款光学灰尘监测传感器模块,在其中间有一个大洞,空气可以自由流过,它里面邻角位置放着红外发光二极管和光电晶体管,红外发光二极管定向发送红外,当空气中有微粒阻碍红外时,...

     

    一.概述

    GP2Y1014AU粉尘传感器是夏普开发的一款光学灰尘监测传感器模块,在其中间有一个大洞,空气可以自由流过,它里面邻角位置放着红外发光二极管和光电晶体管,红外发光二极管定向发送红外,当空气中有微粒阻碍红外时,红外线发送漫反射,光电晶体管接收到红外,所以信号输出引脚电压发送变化。其属性值如下;

    供电电压;5-7V

    工作温度;-10-65℃

    监测最小直径;0.8μm

    灵敏度;0.5V/(0.1mg/m3)灰尘浓度每变化0.1mg/m3,输出电压变化0.5V。

    二.硬件连接

    需要连接1个150欧的电阻,和1个220μF的电容,具体位置如图所示。(实物图片是直接在淘宝上随便找的一家)

     

    三.程序编写

    根据产品说明书,我们可以得到输出电压Vout和灰尘浓度M的表达式(供电电压5V情况下);M=(5Vout-3)/29*1000 单位为;μg/m3。

    紧接着根据说明书中的对LED的时序要求

    检测周期为10ms,红外从发射到接收需要一定时间,那么在什么时候检测才是有效的呢?这个要看说明书中的输出信号图,如下图所示,将采样时间设置为0.28ms可以得到一个稳定值。

     

    故程序如下;

    #define measurePin A0//输出引脚连接模拟口A0
    #define ledPin 9 //LED引脚连接数字口9
    unsigned int samplingTime = 280;//根据前面分析采样时间为280,所以这里为280
    unsigned int deltaTime = 40;//测量完后脉冲需要继续保持,保持时间为320-280=40
    unsigned int sleepTime = 9680;//LED脉冲周期为10毫秒,故此处为10000-320=9680
    float voMeasured = 0;
    float calcVoltage = 0;
    float dustDensity = 0;
    
    void setup() {
        pinMode(ledPin, OUTPUT);
        pinMode(A0, INPUT);
        Serial.begin(9600);
    }
    void loop() {
        digitalWrite(ledPin, LOW);
    
        delayMicroseconds(samplingTime);
        voMeasured = analogRead(measurePin);
    
        delayMicroseconds(deltaTime);
        digitalWrite(ledPin, HIGH);
    
        delayMicroseconds(sleepTime);
        calcVoltage = voMeasured * (5.0 / 1024);
        dustDensity = 5000*calcVoltage/29 - 3000/29;
    
        if (dustDensity < 0) {
            dustDensity = 0.00;
        }
        Serial.println(dustDensity);
        delay(2 * 1000);
    }

     

     

     

     

     

    展开全文
  • stm32f103之GP2Y1014AU

    万次阅读 2017-12-19 10:05:14
    灰尘传感器 GP2Y1010AU的接线方式: ADC初始化: void Adc_Init(void) { ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2...

    灰尘传感器 GP2Y1010AU的接线方式:

    这里写图片描述


    ADC初始化:

    void  Adc_Init(void)
    {   
        ADC_InitTypeDef ADC_InitStructure; 
        GPIO_InitTypeDef GPIO_InitStructure;
    
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);      
    
    
        RCC_ADCCLKConfig(RCC_PCLK2_Div6);  
    
    
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;       
        GPIO_Init(GPIOA, &GPIO_InitStructure);  
    
        ADC_DeInit(ADC1);  
    
        ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;  
        ADC_InitStructure.ADC_ScanConvMode = DISABLE;   
        ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; 
        ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; 
        ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;  
        ADC_InitStructure.ADC_NbrOfChannel = 1;
        ADC_Init(ADC1, &ADC_InitStructure); 
    
    
        ADC_Cmd(ADC1, ENABLE);  
    
        ADC_ResetCalibration(ADC1); 
    
        while(ADC_GetResetCalibrationStatus(ADC1)); 
    
        ADC_StartCalibration(ADC1);  
    
        while(ADC_GetCalibrationStatus(ADC1));  
    
    
    
    }                 
    
    u16 Get_Adc(u8 ch)   
    {
    
        ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );          
    
        ADC_SoftwareStartConvCmd(ADC1, ENABLE);     
    
        while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));
        return ADC_GetConversionValue(ADC1);    
    }
    
    u16 Get_Adc_Average(u8 ch,u8 times)
    {
        u32 temp_val=0;
        u8 t;
        for(t=0;t<times;t++)
        {
            temp_val+=Get_Adc(ch);
            delay_ms(5);
        }
        return temp_val/times;
    }    
    
    

    GP2Y1014AU的使用:

    void GP2Y1014AU()   //PIN3  B12 
    {
        GPIO_ResetBits(GPIOB,GPIO_Pin_12);                 
        delay_us(280);      
        AD_PM=Get_Adc(1); 
        delay_us(40);     
        GPIO_SetBits(GPIOB,GPIO_Pin_12);    
        delay_us(9680); 
    }
    
    void GP2Y1014AU_init(void){
    
        GPIO_InitTypeDef GPIO_InitStruce;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
        GPIO_InitStruce.GPIO_Mode=GPIO_Mode_Out_PP;
        GPIO_InitStruce.GPIO_Pin=GPIO_Pin_12;
        GPIO_InitStruce.GPIO_Speed= GPIO_Speed_50MHz;
        GPIO_Init(GPIOB,&GPIO_InitStruce);
    }
    展开全文
  • GP2Y1014AU传感器

    千次阅读 2020-02-11 23:23:01
    2号引脚LED_GND是模块内部的LED灯的GND 5号引脚Vo接入微控制器的ADC采集引脚 3号引脚LED接入DAC输出引脚 根据LED驱动周期(脉冲周期:T(ms)),LED驱动时间(脉冲:宽度Pw(ms))输出.电压会变动,规格书特性的规格值...
  • 转抄代码 GP2Y1014AU

    2020-04-04 17:54:16
    void GP2Y_ADC_init() { GPIO_InitTypeDef GPIO_InitStructure; ADC_InitTypeDef ADC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF|RCC_APB2Periph_AFIO|RCC_APB2Periph_ADC3,ENABLE); RCC_...
  • stm32之GP2Y1014AU使用

    千次阅读 2020-12-06 15:47:38
    原理图说明一下: 1.150Ω的电阻和220u的电容是用在红外发光二极管上的 电阻用来限流,电容用来稳压 2、LED脚的三极管建议加上,网上有的朋友没加三极管,我的建议是加上 3、 AOUT引脚上的电阻R4和R5:起分压作用 ...
  • 2.MQ4天然气传感器 MQ-4传感器简介: MQ- 4气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使...
  • GP2Y1014AU 粉尘传感器 GP2Y1014AU粉尘传感器是夏普开发的一款光学灰尘监测传感器模块,在其中间有一个大洞,空气可以自由流过,它里面邻角位置放着红外发光二极管和光电晶体管,红外发光二极管定向发送红外,当空气...
  • GP2Y1050AU

    2014-11-29 21:29:44
    GP2Y1050AU说明书,最新版本,内容详细,不可错过!
  • GP2Y1051AU0F 夏普二代升级版 GP2Y1051AU0F仕様書
  • stm32_GP2Y1010AU0F

    2015-09-18 11:12:51
    stm32_GP2Y1010AU0F 里面有51的 以及stm32的 有ad的平均算法 等等
  • 夏普GP2Y1051AU0F传感器使用串口传输数据到51单片机的rx接口,波特率为2400,单片机使用并行接口驱动12864显示数据,程序可以直接使用
  • GP2Y1010AU0F

    2015-05-22 11:25:27
    GP2Y1010AU0F粉尘传感器使用资料
  • 项目场景: 笔者前段时间接触到了一个...笔者的传感器是在淘宝的一家微雪电子购买的灰尘传感器 GP2Y1014AU0F PM2.5 粉尘颗粒 雾霾 检测仪。本来看说明看他是ADC模拟信号传输的,想着应该是蛮简单的。结果却是踩了个大坑
  • Sharp的粉尘传感器GP2Y1010AU0F应用上比较麻烦,使用时需要外部连接一些电阻、电容和杜邦线。而且杂乱的接线让新手不知所措。所以我们特别设计了这样一块粉尘传感器转接模块,帮你搞定一切外部的电路连接。 当连接...
  • 以Arduino+ Sharp GP2Y1010AU为基础的 DIY PM2.5 实时监测器
  • GP2Y1051AU0FPM2.5传感器

    2016-01-07 21:11:07
    用STM32控制GP2Y1051AU0F型号的PM2.5传感器,绝对可用,自己辛苦调的
  • GP2Y1010AU0F中文资料

    2015-06-09 00:25:36
    这个是夏普的PM2.5模块GP2Y1010AU0F中文资料,是第一代的,需要的朋友可以下载看看

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,918
精华内容 767
关键字:

gp2y1014au