极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 84356|回复: 47

基于Arduino的示波器V0.1 12864版

[复制链接]
发表于 2012-11-23 21:24:46 | 显示全部楼层 |阅读模式
本帖最后由 迷你强 于 2013-8-15 09:32 编辑

基于Arduino的示波器V0.1 12864版
可以接收0~5V的任意波形电压,将波形显示到12864液晶屏上。
关于示波器我就不多说了。
效果不错,不过波形复杂的话会有点闪,因为是串行连接。

先上图:





再上代码:



  1. #include <U8glib.h>

  2. U8GLIB_ST7920_128X64 u8g(3, 9, 8, U8G_PIN_NONE);  
  3. #define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )

  4. [color=Blue]const int[/color] Input = A0;
  5. int x, y = 128;
  6. int ax, ay = 128;
  7. int Status[128];

  8. void setup()
  9. {
  10.   for ( int i = 0;i < 128;i++)
  11.   {
  12.    Status[i] = 64;
  13.   }
  14. }

  15. void draw()
  16. {
  17. y = map(analogRead(Input),0,1023,63,6);
  18. for(x = 0;x < 128;x++)
  19. {
  20.   if (x < 127){Status[x] = Status[x+1];}else{Status[127] = y;}
  21.   u8g.drawPixel(x,Status[x]);  //话波形
  22.   if (ay != Status[x])
  23.   {
  24.     u8g.drawLine(x,ay,x,Status[x]);
  25.     ax = x;ay = Status[x];
  26.   }
  27. }
  28.   u8g.setFont(u8g_font_4x6);  //写文字
  29.   u8g.drawStr(1,5,"APE Arduino Oscilloscope V0.1");
  30.   u8g.drawLine(25.6,     6,   25.6,   64);   //画网格
  31.   u8g.drawLine(25.6*2,   6,   25.6*2, 64);
  32.   u8g.drawLine(25.6*3,   6,   25.6*3, 64);
  33.   u8g.drawLine(25.6*4,   6,   25.6*4, 64);
  34.   u8g.drawLine(25.6*5,   6,   25.6*5, 64);
  35.   
  36.   u8g.drawLine(0, 35 - 15, 128, 35 - 15);
  37.   u8g.drawLine(0, 35,   128, 35);
  38.   u8g.drawLine(0, 35 + 15, 128, 35 + 15);
  39. }

  40. void loop()
  41. {
  42.   u8g.firstPage();  
  43.   do {
  44.     draw();
  45.   } while( u8g.nextPage() );
  46. }
复制代码
麻烦帮添加一下注释!


嗯嗯,这个需要一个奇葩的库:
U8glib
下载地址

代码介绍
英文专业户专用……

本帖子中包含更多资源

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

x

评分

参与人数 1 +1 收起 理由
幻生幻灭 + 1 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-11-23 21:26:03 | 显示全部楼层
#include <U8glib.h>

U8GLIB_ST7920_128X64 u8g(3, 9, 8, U8G_PIN_NONE);  
#define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )

const int Input = A0;
int x, y = 128;
int ax, ay = 128;
int Status[128];

void setup()
{
  for ( int i = 0;i < 128;i++)
  {
   Status[i] = 64;
  }
}

void draw()
{
y = map(analogRead(Input),0,1023,63,6);
for(x = 0;x < 128;x++)
{
  if (x < 127){Status[x] = Status[x+1];}else{Status[127] = y;}
  u8g.drawPixel(x,Status[x]);  //话波形
  if (ay != Status[x])
  {
    u8g.drawLine(x,ay,x,Status[x]);
    ax = x;ay = Status[x];
  }
}
  u8g.setFont(u8g_font_4x6);  //写文字
  u8g.drawStr(1,5,"APE Arduino Oscilloscope V0.1");
  u8g.drawLine(25.6,     6,   25.6,   64);   //画网格
  u8g.drawLine(25.6*2,   6,   25.6*2, 64);
  u8g.drawLine(25.6*3,   6,   25.6*3, 64);
  u8g.drawLine(25.6*4,   6,   25.6*4, 64);
  u8g.drawLine(25.6*5,   6,   25.6*5, 64);
  
  u8g.drawLine(0, 35 - 15, 128, 35 - 15);
  u8g.drawLine(0, 35,   128, 35);
  u8g.drawLine(0, 35 + 15, 128, 35 + 15);
}

void loop()
{
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );
}
回复 支持 0 反对 1

使用道具 举报

发表于 2012-11-24 10:34:52 | 显示全部楼层
果然是个奇葩库!!
回复 支持 反对

使用道具 举报

发表于 2012-11-24 11:32:03 | 显示全部楼层
非常感兴趣,接线图也放一下吧!
回复 支持 反对

使用道具 举报

发表于 2012-11-24 16:39:59 | 显示全部楼层
我是来看奇葩库的,适当增加点外围元件可以拓展测量范围吧~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-24 16:59:37 | 显示全部楼层

先放Mulitisim的图

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-24 17:29:28 | 显示全部楼层
Fritizng连线图:

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-24 23:05:24 | 显示全部楼层
shenhaiyu 发表于 2012-11-24 16:39
我是来看奇葩库的,适当增加点外围元件可以拓展测量范围吧~~

我本来想用运放加衰减的,后来感觉太麻烦了,就没做
回复 支持 反对

使用道具 举报

发表于 2012-12-26 20:21:17 | 显示全部楼层
亲,为什么我使用这个库却是花屏?!!无论是examples还是你的程序,就隐约有点形状,花屏很厉害。。
PS,我用的是并口传输,U8GLIB_ST7920_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, U8G_PIN_NONE, U8G_PIN_NONE, 17, 16);   // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16
回复 支持 反对

使用道具 举报

发表于 2012-12-27 15:30:46 | 显示全部楼层
这个u8g库的确很变态!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-28 19:52:54 | 显示全部楼层
zhi_jian 发表于 2012-12-26 20:21
亲,为什么我使用这个库却是花屏?!!无论是examples还是你的程序,就隐约有点形状,花屏很厉害。。
PS, ...

我也遇到过,一般是线没有接好
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-30 10:39:20 | 显示全部楼层
zhi_jian 发表于 2012-12-26 20:21
亲,为什么我使用这个库却是花屏?!!无论是examples还是你的程序,就隐约有点形状,花屏很厉害。。
PS, ...

我也遇到过,是线没接好
回复 支持 反对

使用道具 举报

发表于 2013-1-3 07:24:47 | 显示全部楼层
这也太酷吧!
回复 支持 反对

使用道具 举报

发表于 2013-1-13 00:27:39 | 显示全部楼层
您好  请问您是用哪个版本的IDE啊
???
回复 支持 反对

使用道具 举报

发表于 2013-1-16 00:36:11 | 显示全部楼层
您好    经用你的代码  显示的基线不是在50%处  您的也是吗?


回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 16:19 , Processed in 0.050733 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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