找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4533|回复: 11
收起左侧

Arduino时钟数码管怎么用?

[复制链接]
ID:584041 发表于 2019-8-24 10:38 | 显示全部楼层 |阅读模式
这是arduino套件里面的时钟套件,不知道怎么用,配的资料也不全!
(A0QZGVVN%SLW}H6OCHVPOC.jpg
)J%)L59MWG5IV[BFG%CKI]J.jpg
回复

使用道具 举报

ID:220005 发表于 2019-8-24 16:33 | 显示全部楼层
我觉着吧,这应该是一个4位数码管驱动芯片。看一下背后的芯片是什么型号,然后在网络上搜索相关Datasheet和使用例程就好啦!
回复

使用道具 举报

ID:155507 发表于 2019-8-24 22:19 | 显示全部楼层
这个应该是一个4位数码管驱动芯片 TM1637
040_7_seg_led_fig_01_96dpi.png


  1. #include <Arduino.h>
  2. #include <TM1637Display.h>

  3. // Module connection pins (Digital Pins)
  4. #define CLK 2
  5. #define DIO 3

  6. // The amount of time (in milliseconds) between tests
  7. #define TEST_DELAY   2000

  8. const uint8_t SEG_DONE[] = {
  9.         SEG_B | SEG_C | SEG_D | SEG_E | SEG_G,           // d
  10.         SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,   // O
  11.         SEG_C | SEG_E | SEG_G,                           // n
  12.         SEG_A | SEG_D | SEG_E | SEG_F | SEG_G            // E
  13.         };

  14. TM1637Display display(CLK, DIO);

  15. void setup()
  16. {
  17. }

  18. void loop()
  19. {
  20.   int k;
  21.   uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
  22.   uint8_t blank[] = { 0x00, 0x00, 0x00, 0x00 };
  23.   display.setBrightness(0x0f);

  24.   // All segments on
  25.   display.setSegments(data);
  26.   delay(TEST_DELAY);

  27.   // Selectively set different digits
  28.   data[0] = display.encodeDigit(0);
  29.   data[1] = display.encodeDigit(1);
  30.   data[2] = display.encodeDigit(2);
  31.   data[3] = display.encodeDigit(3);
  32.   display.setSegments(data);
  33.   delay(TEST_DELAY);

  34.   /*
  35.   for(k = 3; k >= 0; k--) {
  36.         display.setSegments(data, 1, k);
  37.         delay(TEST_DELAY);
  38.         }
  39.   */

  40.   display.clear();
  41.   display.setSegments(data+2, 2, 2);
  42.   delay(TEST_DELAY);

  43.   display.clear();
  44.   display.setSegments(data+2, 2, 1);
  45.   delay(TEST_DELAY);

  46.   display.clear();
  47.   display.setSegments(data+1, 3, 1);
  48.   delay(TEST_DELAY);


  49.   // Show decimal numbers with/without leading zeros
  50.   display.showNumberDec(0, false); // Expect: ___0
  51.   delay(TEST_DELAY);
  52.   display.showNumberDec(0, true);  // Expect: 0000
  53.   delay(TEST_DELAY);
  54.         display.showNumberDec(1, false); // Expect: ___1
  55.         delay(TEST_DELAY);
  56.   display.showNumberDec(1, true);  // Expect: 0001
  57.   delay(TEST_DELAY);
  58.   display.showNumberDec(301, false); // Expect: _301
  59.   delay(TEST_DELAY);
  60.   display.showNumberDec(301, true); // Expect: 0301
  61.   delay(TEST_DELAY);
  62.   display.clear();
  63.   display.showNumberDec(14, false, 2, 1); // Expect: _14_
  64.   delay(TEST_DELAY);
  65.   display.clear();
  66.   display.showNumberDec(4, true, 2, 2);  // Expect: __04
  67.   delay(TEST_DELAY);
  68.   display.showNumberDec(-1, false);  // Expect: __-1
  69.   delay(TEST_DELAY);
  70.   display.showNumberDec(-12);        // Expect: _-12
  71.   delay(TEST_DELAY);
  72.   display.showNumberDec(-999);       // Expect: -999
  73.   delay(TEST_DELAY);
  74.   display.clear();
  75.   display.showNumberDec(-5, false, 3, 0); // Expect: _-5_
  76.   delay(TEST_DELAY);
  77.   display.showNumberHexEx(0xf1af);        // Expect: f1Af
  78.   delay(TEST_DELAY);
  79.   display.showNumberHexEx(0x2c);          // Expect: __2C
  80.   delay(TEST_DELAY);
  81.   display.showNumberHexEx(0xd1, 0, true); // Expect: 00d1
  82.   delay(TEST_DELAY);
  83.   display.clear();
  84.   display.showNumberHexEx(0xd1, 0, true, 2); // Expect: d1__
  85.   delay(TEST_DELAY);
  86.   
  87.         // Run through all the dots
  88.         for(k=0; k <= 4; k++) {
  89.                 display.showNumberDecEx(0, (0x80 >> k), true);
  90.                 delay(TEST_DELAY);
  91.         }

  92.   // Brightness Test
  93.   for(k = 0; k < 4; k++)
  94.         data[k] = 0xff;
  95.   for(k = 0; k < 7; k++) {
  96.     display.setBrightness(k);
  97.     display.setSegments(data);
  98.     delay(TEST_DELAY);
  99.   }
  100.   
  101.   // On/Off test
  102.   for(k = 0; k < 4; k++) {
  103.     display.setBrightness(7, false);  // Turn off
  104.     display.setSegments(data);
  105.     delay(TEST_DELAY);
  106.     display.setBrightness(7, true); // Turn on
  107.     display.setSegments(data);
  108.     delay(TEST_DELAY);  
  109.   }


  110.   // Done!
  111.   display.setSegments(SEG_DONE);

  112.   while(1);
  113. }

复制代码
https://github.com/avishorp/TM1637






TM1637-master.zip

1.36 MB, 下载次数: 17

TM1637_7_seg_led_display.zip

2.47 KB, 下载次数: 14

回复

使用道具 举报

ID:277550 发表于 2019-8-24 22:33 | 显示全部楼层

应该是712*之类的,直接去arduino库中找相应的库
回复

使用道具 举报

ID:584041 发表于 2019-8-31 13:42 | 显示全部楼层
angmall 发表于 2019-8-24 22:19
这个应该是一个4位数码管驱动芯片 TM1637

非常感谢
回复

使用道具 举报

ID:584041 发表于 2019-8-31 14:06 | 显示全部楼层
angmall 发表于 2019-8-24 22:19
这个应该是一个4位数码管驱动芯片 TM1637

这是个1637,不是1632,不知道区别大不大
回复

使用道具 举报

ID:640989 发表于 2019-11-14 20:33 | 显示全部楼层
谢谢分享!附件和代码一起捞走了!
回复

使用道具 举报

ID:385959 发表于 2020-4-30 20:02 | 显示全部楼层
请问硬件部分怎么连接?
回复

使用道具 举报

ID:155507 发表于 2020-5-1 08:37 | 显示全部楼层
wz201611 发表于 2020-4-30 20:02
请问硬件部分怎么连接?

硬件部分连接
TM1637-4-digit-7-segment-display-with-Arduino-UNO-tutorial-wiring-diagram-schema.jpg
回复

使用道具 举报

ID:385959 发表于 2020-5-2 20:31 | 显示全部楼层
请问想实现上电后数码管从零开始计时有参考程序吗?谢谢
回复

使用道具 举报

ID:385959 发表于 2020-5-2 20:33 | 显示全部楼层
另外,TM1637Display的库可以分享吗?谢谢。
回复

使用道具 举报

ID:385959 发表于 2020-5-10 20:16 | 显示全部楼层
fatal error: TM1637Display.h: No such file or directory请问怎么解决?
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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