最近弄粉尘传感器GP2Y1010AU0F 希望用过的帮解答一下

2019-10-16 06:32发布

u16 AD_PM;
void config_GP2Y1010AU0F() //PIN3  B13 
{
    GPIO_ResetBits(GPIOB,GPIO_Pin_13);                // 点亮连接到pin3 的LED
    delay_us(280);   //  过0.28毫秒
    AD_PM=Get_Adc(ADC_Channel_2); // 对连接到A0的模块Vo进行采样
    delay_us(40);    //  过0.04毫秒
    GPIO_SetBits(GPIOB,GPIO_Pin_13); //  关闭LED
    delay_us(9680); //  等待9.680毫秒

  // dustdensity=0.17*AD_PM-0.1;  //灰尘浓度与电压线性关系
}
while(1)
{
    config_GP2Y1010AU0F();
   //delay_ms(500);
    //printf("%d",AD_PM);
}

第一张波形是PIN3 LED输入波形  第二张是点跟烟以后输出PIN5的波形  但是打印串口的时候 电压采样值一直是几到几十 说明电压一直是0 如果是4000多 就对了 如果波形对了 那是我AD没采到这个电压吗 ?怎么解决呢 谢谢大家了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
liushiming82
1楼-- · 2019-10-17 10:42
 精彩回答 2  元偷偷看……
abcde
2楼-- · 2019-10-17 11:26
ricefat 发表于 2014-4-28 09:12
这种类似PWM的脉冲波形用输入捕获就行了。
既然要精确捕获,为什么还要加软件延时?

没懂你说的输入捕获,我觉得要也是pwm输出啊
nndd8023
3楼-- · 2019-10-17 16:20
楼主能把你的程序给我发一份吗?刚学习这个模块还有很多不懂的地方,我qq553717669,谢谢了
xujian468
4楼-- · 2019-10-17 18:12
本帖最后由 xujian468 于 2016-6-13 17:06 编辑

也在搞这个问题,但是6脚如果VCC接5V的话,灰尘浓度达到最高的话,Vo(5脚)输出最高会达到3.6,3.7V,那估计会烧AD口吧,我打算VCC接3.3V
xyl210xyl
5楼-- · 2019-10-17 23:59
用过夏普的pm2.5微粒传感器,那个直接串口收就行了
xujian468
6楼-- · 2019-10-18 03:43
 精彩回答 2  元偷偷看……

一周热门 更多>