极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11321|回复: 3

新手求助,才接触Arduino,求大神们帮助

[复制链接]
发表于 2015-10-31 16:38:49 | 显示全部楼层 |阅读模式
根据库尔特原理,将两电极板放入电解液溶液中,并通恒定的电流时,产生如下脉冲图形

左边较高的表示有微粒通过,右边可表示噪音等因素产生的波形
请问怎么求波形的峰值,以达到对微粒计数的目的
装置图如下:

#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;
}

自我认为这种方法行不通,校验显示有错误,请教大家怎么修改!
错误截图如下:

谢谢大家!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-10-31 19:52:02 | 显示全部楼层
  if(D>3E) 要写成 D>1000吧?
回复 支持 反对

使用道具 举报

发表于 2015-11-1 06:31:38 | 显示全部楼层
zoologist 发表于 2015-10-31 19:52
if(D>3E) 要写成 D>1000吧?

3E应该为3*E
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-1 15:54:07 | 显示全部楼层
林定祥 发表于 2015-11-1 06:31
3E应该为3*E

谢谢,我没注意到
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-5 17:41 , Processed in 0.045728 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表