数码之家

 找回密码
 立即注册
搜索
查看: 2191|回复: 21

[Arduino] 示波器的雏形

[复制链接]
发表于 2020-3-1 09:09:29 | 显示全部楼层 |阅读模式
:titter:
哈哈,试试画图功能











调节电平位置




加个RC电路






本帖子中包含更多资源

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

x

打赏

参与人数 7家元 +124 收起 理由
965039114 + 20 原創內容
中心小学 + 20 楼主还真的搞个波出来。佩服!.
邓穿石 + 20 謝謝分享
zhuqing-1920 + 14
广东梁百万 + 10 以資鼓勵
游泳的鸟儿 + 20 原創內容
kkdkj + 20 謝謝分享

查看全部打赏

发表于 2020-3-1 09:10:21 | 显示全部楼层
不错,一天一天在前进,抢个沙发先:victory:

打赏

参与人数 1家元 +5 收起 理由
人艰不拆了 + 5

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-3-1 10:30:21 | 显示全部楼层
UNO很方便,就是5110太古老了,新屏都很便宜的
回复 支持 反对

使用道具 举报

发表于 2020-3-1 12:35:39 | 显示全部楼层
xiaodai 发表于 2020-3-1 09:10
不错,一天一天在前进,抢个沙发先

:victory:这个好,学习了
回复 支持 反对

使用道具 举报

发表于 2020-3-1 12:36:45 | 显示全部楼层
屏幕是什么型号呀?
回复 支持 反对

使用道具 举报

发表于 2020-3-1 14:53:19 | 显示全部楼层
eagler8 发表于 2020-3-1 12:36
屏幕是什么型号呀?

5110
一般推荐12864,5110的像素是长方形的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-1 15:07:56 | 显示全部楼层
eagler8 发表于 2020-3-1 12:36
屏幕是什么型号呀?

5110:loveliness:
回复 支持 反对

使用道具 举报

发表于 2020-3-1 15:45:11 | 显示全部楼层

哦,这个我有二块,可是不会做示波器呀:shy:
回复 支持 反对

使用道具 举报

发表于 2020-3-1 15:48:23 | 显示全部楼层
有代码吗?借鉴学习一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-1 18:37:13 | 显示全部楼层
eagler8 发表于 2020-3-1 15:48
有代码吗?借鉴学习一下

#include "U8glib.h"

//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8);    // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8
U8GLIB_PCD8544 u8g(3, 4, 7, 5, 6); // SPI Com: clk = 3, din = 4, ce = 7, dc = 5, rst = 6

int x, y;
int v0, v1;
int Buffer[84];//48*84的屏

void setup() {
  u8g.firstPage();
  do {
    u8g.setFont(u8g_font_helvB14);

    //字型設定可在此網址找/ https://github.com/olikraus/u8glib/wiki/fontsize
    //判斷式要放在 本大括號內才會在屏幕上顯示

    u8g.drawStr(0, 14, "V=");
    u8g.drawStr(26, 14, "12.34");

    u8g.drawStr(0, 30, "A=");
    u8g.drawStr(26, 30, "56.789");

    u8g.setFont(u8g_font_helvR08);

    u8g.drawStr( 0, 39, "T=");
    u8g.drawStr(10, 39, "12.34");
    u8g.drawStr(37, 39, "\260C");
    u8g.drawStr(52, 39, "fan on");
  } while ( u8g.nextPage() );

  delay(2000);
}

void loop( )
{
  do {
    v0 = analogRead(A0);
  }
  while (v0 > 10);

  for (x = 0; x < 84; x++) //信号采样
    Buffer[x] = 31 - (analogRead(A0) >> 5);

  u8g.firstPage();  //清屏
  do//显示
  {
    for (x = 0; x < 83; x++)
      u8g.drawLine(x, Buffer[x], x, Buffer[x + 1]); //画相邻两点连线

    u8g.drawLine(42, 0, 42, 47); // 画坐标轴
    u8g.drawLine(0, 24, 84, 24);
    for (x = 0; x < 84; x += 21) //画坐标轴刻度
      u8g.drawLine(x, 23, x, 25);
    for (x = 0; x < 48; x += 8)
      u8g.drawLine(41, x, 43, x);
    u8g.drawFrame(0, 0, 84, 48); //画边框
  }
  while (u8g.nextPage( ));
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-1 18:39:10 | 显示全部楼层
哈哈,我的代码大多是抄的,所以我一般不发代码,以后大家别找我要代码了,容易出问题:titter:
回复 支持 反对

使用道具 举报

发表于 2020-3-1 18:50:30 | 显示全部楼层
不错,我原来做心率显示时自己写的代码,相邻两列的线条容易断开,正好可以参考您的代码来修改算法。
回复 支持 反对

使用道具 举报

发表于 2020-3-2 05:46:33 | 显示全部楼层
人艰不拆了 发表于 2020-3-1 18:37
#include "U8glib.h"

//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8);    // SPI Com: SCK = 13, MOSI = 11, C ...

谢谢,今天我试试
回复 支持 反对

使用道具 举报

发表于 2020-3-2 12:34:37 | 显示全部楼层
人艰不拆了 发表于 2020-3-1 18:39
哈哈,我的代码大多是抄的,所以我一般不发代码,以后大家别找我要代码了,容易出问题 ...

:lol: 开源平台,共享出来大家交流学习,谢谢
回复 支持 反对

使用道具 举报

发表于 2020-3-2 16:12:46 | 显示全部楼层
人总厉害了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 16:31:14 | 显示全部楼层

只有人民,没有人总!:titter:
回复 支持 反对

使用道具 举报

发表于 2020-3-2 19:03:58 | 显示全部楼层
人艰不拆了 发表于 2020-3-2 16:31
只有人民,没有人总!

不不不,你是人艰,哈哈
回复 支持 反对

使用道具 举报

发表于 2020-3-3 22:09:31 | 显示全部楼层
用单色的LCD屏会不会刷新太慢? 用OLED屏或彩屏吧。

打赏

参与人数 1家元 +10 收起 理由
人艰不拆了 + 10

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 15:20:03 | 显示全部楼层
花生仔 发表于 2020-3-3 22:09
用单色的LCD屏会不会刷新太慢? 用OLED屏或彩屏吧。

哈哈,实验的东西,无所谓:loveliness:
回复 支持 反对

使用道具 举报

发表于 2020-3-4 19:52:24 | 显示全部楼层
楼主还真的搞个波出来。佩服!
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-10 14:23 , Processed in 0.577201 second(s), 16 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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