NO.22 基于Arduino的数字示波器(完成)-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: ntwhq

NO.22 基于Arduino的数字示波器(完成)

  [复制链接]
发表于 2014-4-23 15:24 | 显示全部楼层
楼主动手能力相当强,感谢分享
发表于 2014-4-27 00:23 | 显示全部楼层
期待楼主的升级版
发表于 2014-4-27 22:43 | 显示全部楼层
这个要收藏!改天我也DIY一下。
发表于 2014-5-2 13:59 | 显示全部楼层
ntwhq 发表于 2014-2-28 21:02
改成对红外信号的分析工具电路的程序都要修改了。

Arduino_oscilloscope:7: error: 'U8GLIB_ST7920_128X64_4X' does not name a type
Arduino_oscilloscope.ino: In function 'void draw()':

怎么破
发表于 2014-5-4 17:19 | 显示全部楼层

mega8出错  uno成功
发表于 2014-5-4 23:18 | 显示全部楼层
编译的问题已经解决  原来是我没有import那个库

楼主  看了你的新版代码  我又有一个问题了

Buffer[i] = ADCH;  这里的ADCH是AVR的SFR吗   我在arduino cookbook里面都找不到ADCH的相关介绍
但是根据51的经验(10bit精度的ADC用到了ADCH和ADCL两个SFR

源代码里面的 Buffer[i] = ADCH;意思是只拿8bit的ADC结果吗?
发表于 2014-5-4 23:21 | 显示全部楼层
以及
void Measure()
{
  V_max=Buffer[0];
  V_min=Buffer[0];      
  for(i=0;i<192;i++)
  {
    if(Buffer[i]>V_max)
    V_max=Buffer[i];
    if(Buffer[i]<V_min)
    V_min=Buffer[i];
  }
  V_mid=(V_max+V_min)/2;  
  Vpp=(V_max-V_min)*2.56/255;
  for(i=0;i<97;i++)
  {
    if(Buffer[i]<V_mid&&Buffer[i+1]>=V_mid)  
    {
      i1=i;
      break;
    }
  }
  for(i=i1+1;i<98+i1;i++)
  {
    if(Buffer[i]<V_mid&&Buffer[i+1]>=V_mid)  
    {
      i2=i;
      break;
    }
  }
  t=i2-i1;
  if(t>0)
  Freq=8000/t;
  else
  Freq=0;
}

这个算法的目的是什么啊
发表于 2014-5-4 23:23 | 显示全部楼层
这里的(V_max-V_min)*2.56/255

是不是更加说明了新版本的程序只拿了8bit的精度?
求解啊
发表于 2014-5-7 09:26 | 显示全部楼层
频率比信号发生源的要大
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-28 00:01 , Processed in 0.085587 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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