查看: 9727|回复: 20

[项目] 基于arduino和I2C接口制作的计数器(原创)

[复制链接]
本帖最后由 kaka 于 2015-11-30 12:00 编辑

前几天帮朋友做了一个计数器,非常简单的计数器
我看论坛上还没人发如何制作计数器,所以抛砖引玉下
有人会问这么简单的东西有什么应用啊,哈哈,这个是
韩国的running men,来南京演唱会,这个是给他们
现场做的点赞器。
主要硬件就是一个按钮、一个Arduino主板+一块1.2寸的
7段数码管
1268-00.jpg

制作过程
1、将数码管和arduino连接,由于采用的是I2C接口
所以信号线只需要2根即可实现功能
led_matrix_2013_04_12_IMG_1639-1024.jpg

接线方式
  • "D" - I2C Data Pin (SDA)
  • "C" - I2C Clock Pin (SCL)
  • "+" - 5v. (Will not run on 3.3v!)
  • "-" - GND
  • "IO" - I2C bus voltage
对于uno采用如下接线方式
  • D -> SDA
  • C -> SCL
  • + -> 5v
  • - -> GND
  • IO -> jumper to + for 5v.
代码:

为了检测按钮信号,采用了中断方式
将开关的OUT接入D2
  1. /*接线:
  2. kaiguan
  3. out----D2
  4. vcc ---3.3V
  5. gnd----gnd


  6. sumaguan
  7. scl----a5
  8. sda----a4
  9. vcc----5V
  10. GND----GND

  11. */
  12. #include <Wire.h>

  13. #include "Adafruit_LEDBackpack.h"
  14. #include "Adafruit_GFX.h"

  15. Adafruit_7segment matrix = Adafruit_7segment();

  16. long count=0 ;
  17. unsigned long time = 0;
  18. void setup() {
  19.    matrix.begin(0x70);
  20.   Serial.begin(9600);
  21.    attachInterrupt(0, runCount, FALLING);    //设置触发,中断号0,即数字2口
  22.   // put your setup code here, to run once:

  23. }

  24. void loop() {
  25.   Serial.println(count);
  26.   matrix.print(count, DEC);
  27.   matrix.writeDisplay();
  28.   delay(500);
  29.   // put your main code here, to run repeatedly:

  30. }
  31. void runCount()            //触发函数
  32. {

  33. if ((millis() - time) > 150) //防抖动处理
  34. {
  35.     count ++;
  36.       //for(int i = 0; i < 4; i++) {
  37.        //  EEPROM.write(i,  *dpointer);
  38.         
  39.       //   dpointer++;
  40.      // }

  41. }

  42. time = millis();

  43. }
复制代码
下面的附件是程序中涉及的库文件
Adafruit-GFX-Library-master.zip (9.19 KB, 下载次数: 150)
led_matrix_2013_04_12_IMG_1634-1024.jpg

Ricky  NPC

发表于 2015-11-30 11:56:00

数码管颜色挺好看,代码乱了。 代码最好黏贴到记事本里,然后去掉里面的标记,再复制到论坛里,就看起来整齐了。
回复 支持 反对

使用道具 举报

kaka  版主
 楼主|

发表于 2015-11-30 11:58:51

Ricky 发表于 2015-11-30 11:56
数码管颜色挺好看,代码乱了。 代码最好黏贴到记事本里,然后去掉里面的标记,再复制到论坛里,就看起来整 ...

不好意思,在修改
回复 支持 反对

使用道具 举报

kevinzhang19701  中级技匠

发表于 2015-11-30 12:06:52

有意思
回复 支持 反对

使用道具 举报

MoonShine  中级技匠

发表于 2015-11-30 12:10:58

这个LED比我红色的高端多了
回复 支持 反对

使用道具 举报

kaka  版主
 楼主|

发表于 2015-11-30 15:14:14

MoonShine 发表于 2015-11-30 12:10
这个LED比我红色的高端多了

我也有红色的这个数码管
回复 支持 反对

使用道具 举报

hnyzcj  超级版主

发表于 2015-11-30 15:24:33

不错不错,值得学习。
回复 支持 反对

使用道具 举报

Juice  管理员

发表于 2015-11-30 17:48:56

running man ~~~那用你东西的人好多了啊~赞赞~~
回复 支持 反对

使用道具 举报

大连林海  初级技神

发表于 2015-11-30 18:47:27

学习了
回复 支持 反对

使用道具 举报

孙毅  版主

发表于 2015-11-30 22:51:09

哈哈,什么情况,竟然论坛置顶了?!
回复 支持 反对

使用道具 举报

jczaza  初级技师

发表于 2015-12-1 10:14:26

按钮呢
回复 支持 反对

使用道具 举报

kaka  版主
 楼主|

发表于 2015-12-1 11:25:36


按钮我没拍进去了,买的是下面的这种按钮,3个接线,VCC,GND,OUT接D2口 11.PNG

回复 支持 反对

使用道具 举报

kaka  版主
 楼主|

发表于 2015-12-1 11:26:49

你也可以用普通按钮,甚至拿根线接3v3,接电阻,去碰D2口
回复 支持 反对

使用道具 举报

kaka  版主
 楼主|

发表于 2015-12-1 11:27:10

孙毅 发表于 2015-11-30 22:51
哈哈,什么情况,竟然论坛置顶了?!

我也不清楚
回复 支持 反对

使用道具 举报

jczaza  初级技师

发表于 2015-12-1 15:35:39

很好奇他们策划用这个在现场是怎样用呢
回复 支持 反对

使用道具 举报

kaptar  学徒

发表于 2016-12-26 23:54:53

为什么我的不行呢  总是这个样子,求解答  谢谢

回复 支持 反对

使用道具 举报

kaka  版主
 楼主|

发表于 2016-12-29 12:41:52

jczaza 发表于 2015-12-1 15:35
很好奇他们策划用这个在现场是怎样用呢

给喜欢的明星投票啊,有一次跑男中国结束投票还是用纸然后统计,我这个直接按了就投票
回复 支持 反对

使用道具 举报

kaka  版主
 楼主|

发表于 2016-12-29 12:42:38

kaptar 发表于 2016-12-26 23:54
为什么我的不行呢  总是这个样子,求解答  谢谢

我看不见你发的,一直在刷新,什么都出不来
回复 支持 反对

使用道具 举报

wuhq1207  学徒

发表于 2017-2-25 23:03:26

您好,我也想想用Arduino做个秒表,请问下你附件里的程序怎么使用,还有D2是板子上的Digital2吗,谢谢
回复 支持 反对

使用道具 举报

kaka  版主
 楼主|

发表于 2017-2-27 11:48:25

wuhq1207 发表于 2017-2-25 23:03
您好,我也想想用Arduino做个秒表,请问下你附件里的程序怎么使用,还有D2是板子上的Digital2吗,谢谢 ...

是的
回复 支持 反对

使用道具 举报

DFH1cUlGQdQ  学徒

发表于 2018-9-14 22:36:57

能用红外传代替按键吗
回复 支持 反对

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail