Arduino数码管计时
数码管计时功能实现
1、IDE
米思齐(Mixly)官网:http://maker.bnu.edu.cn/ http://mixly.org/创客教育不断普及,以Arduino为基础的创意电子类创客教育课程正逐步在中小学中推广开来。然而,由于受到其本身技术门槛的限制,创意电子类课程的开设给广大师生提出了巨大的挑战(Arduino需要通过C/C++语言编程实现创意,这对低年龄段的学生来说几乎是不可能的)。创客教育需要更好的图形化编程工具,Mixly(米思齐)因此应运而生。Mixly,中文名为米思齐,全称为Mixly_Arduino,是一款由北京师范大学教育学部创客教育实验室傅骞教授团队开发的图形化编程软件。
米思齐软件界面:
2、硬件
Arduino Uno和TM1637四位数码管
Arduino是一块基于开放原始代码的Simple i/o平台,并且具有开发语言和开发环境都很简单、易理解的特点。让您可以快速使用Arduino做出有趣的东西。它是一个能够用来感应和控制现实物理世界的一套工具。 它由一个基於单片机并且开放源码的硬件平台,和一套为Arduino板编写程序 的开发环境组成。Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。Arduino项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP)进行通讯。
TM1637四位数码管模块是一个带时钟点的4位共阳数码管(0.36英寸)的显示模块,驱动芯片为TM1637,驱动方式为IIC,因此只需2根信号线即可使单片机控制4位8段数码管(数码管8级灰度可调)。控制接口:共4个引脚(GND、VCC、DIO、CLK),GND为地,VCC为供电电源,DIO为数据输入输出脚,CLK为时钟信号脚。
3、代码
#include <SevenSegmentExtended.h>
#include <SevenSegmentTM1637.h>
SevenSegmentExtended display(7,8);
volatile int minute;//定义分
volatile int second;//定义秒
void setup(){
minute = 0;
second = 0;
display.begin();
}
void loop(){
display.printTime(minute,second,HIGH);
delayMicroseconds(1);
if (second == 59 && minute == 59) { //分和秒都达到59后归0
second = 0;
minute = 0;
} else if (second == 59) {//秒达到59后归0,分进1
second = 0;
minute = minute + 1;
} else {//秒进1
second = second + 1;
}
}
4、成果截图
用到Aruino Uno的数字管脚7,8,DIO为数据输入输出脚接8号管脚,CLK为时钟信号脚接7号管脚
5、相关链接:Github