最近弄粉尘传感器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条回答
ricefat
1楼-- · 2019-10-16 11:16
这种类似PWM的脉冲波形用输入捕获就行了。
既然要精确捕获,为什么还要加软件延时?
石头
2楼-- · 2019-10-16 11:47
 精彩回答 2  元偷偷看……
ricefat
3楼-- · 2019-10-16 16:06
用输入捕获,配置完成后等待波形跳变就好
空中飞鼠
4楼-- · 2019-10-16 21:35
输入波形不是周期10ms,高电平0.32ms吗?
ws_zdyz
5楼-- · 2019-10-17 01:32
一,你的驱动波形好像不对,怎么不用定时器驱动呢?
二,第二张图好像是对的,就是脉冲形式的,如果你用什么表测量的话,可能就是0.几或者0.00几伏特。。
三,如果你想采集AD模拟形式的话,加个RC吧,或者更好一点的电路,效果能好点。
个人建议。。
w472862133
6楼-- · 2019-10-17 05:51
这问题你解决了没有?

一周热门 更多>