本帖最后由 kaka 于 2015-11-30 12:00 编辑
前几天帮朋友做了一个计数器,非常简单的计数器
我看论坛上还没人发如何制作计数器,所以抛砖引玉下
有人会问这么简单的东西有什么应用啊,哈哈,这个是
韩国的running men,来南京演唱会,这个是给他们
现场做的点赞器。
主要硬件就是一个按钮、一个Arduino主板+一块1.2寸的
7段数码管
制作过程
1、将数码管和arduino连接,由于采用的是I2C接口
所以信号线只需要2根即可实现功能
接线方式
- "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
- /*接线:
- kaiguan
- out----D2
- vcc ---3.3V
- gnd----gnd
-
-
- sumaguan
- scl----a5
- sda----a4
- vcc----5V
- GND----GND
-
- */
- #include <Wire.h>
-
- #include "Adafruit_LEDBackpack.h"
- #include "Adafruit_GFX.h"
-
- Adafruit_7segment matrix = Adafruit_7segment();
-
- long count=0 ;
- unsigned long time = 0;
- void setup() {
- matrix.begin(0x70);
- Serial.begin(9600);
- attachInterrupt(0, runCount, FALLING); //设置触发,中断号0,即数字2口
- // put your setup code here, to run once:
-
- }
-
- void loop() {
- Serial.println(count);
- matrix.print(count, DEC);
- matrix.writeDisplay();
- delay(500);
- // put your main code here, to run repeatedly:
-
- }
- void runCount() //触发函数
- {
-
- if ((millis() - time) > 150) //防抖动处理
- {
- count ++;
- //for(int i = 0; i < 4; i++) {
- // EEPROM.write(i, *dpointer);
-
- // dpointer++;
- // }
-
- }
-
- time = millis();
-
- }
复制代码
下面的附件是程序中涉及的库文件
Adafruit-GFX-Library-master.zipAdafruit-LED-Backpack-Library-master.zip
|