根据库尔特原理,将两电极板放入电解液溶液中,并通恒定的电流时,产生如下脉冲图形
左边较高的表示有微粒通过,右边可表示噪音等因素产生的波形
请问怎么求波形的峰值,以达到对微粒计数的目的
装置图如下:
#include <LiquidCrystal.h>
int DJ=3;//定义电极引脚,即为PWN口,也是中断口
int count=0;//定义脉冲个数初始化
int B=0;
int C=0;
int D=0;
int NUM=0;//微粒数目初始化
float E=0;//定义阈值
LiquidCrystal lcd(12,11,5,4,1,0);//必须按照液晶显示器孔从左至右的顺序写
void setup()
{
pinMode(DJ,INPUT_PULLUP);//上拉电阻
attachInterrupt(0,Q,RISING);
attachInterrupt(0,W,FALLING);
digitalWrite(3,HIGH);
lcd.begin(16,2);//使能,相当于液晶的初始化,必须有,16列2行
lcd.print("Welcome to use!");
delay(1000);
lcd.clear();//清屏
}
void loop()
{
if(count==5)
E=B/5;//求脉冲阈值
if(D>3E)
NUM++;
lcd.setCursor(0,0);//设置显示在液晶的哪个位置,格式为(行,列)
lcd.print("微粒数目:");
lcd.setCursor(0,1);
lcd.print((int)NUM/10);
delay(1000);
}
void Q()
{
count++;
}
void W()
{
D=analogRead(3);
D=map(D,0,1023,0,255);//提高精确度
B+=D;
}
自我认为这种方法行不通,校验显示有错误,请教大家怎么修改!
错误截图如下:
谢谢大家!!! |