利用Arduino实现数码管显示功能
@Tinbur物联网
利用Arduino实现数码管显示功能
1.实现功能的代码
1.1数码管显示滚动自定义字符串
#include <SevenSegmentTM1637.h>SevenSegmentTM1637 display(5,4);void setup(){display.begin();
}void loop(){display.setBacklight(50);display.print("123456");}
1.2数码管显示自定义的时间
#include <SevenSegmentExtended.h>
#include <SevenSegmentTM1637.h>SevenSegmentExtended display(5,4);void setup(){display.begin();display.setBacklight(20);
}void loop(){display.printTime(12,30,HIGH);}
1.3数码管显示秒表
#include <EEPROM.h>
#include <SevenSegmentTM1637.h>
#include <avr/pgmspace.h>
#include <TimerOne.h>SevenSegmentTM1637 display(5,4);int8_t TimeDisp[] = {0x00,0x00,0x00,0x00};
unsigned char ClockPoint = 1;
unsigned char Update;
unsigned char microsecond_10 = 0;
unsigned char second;
unsigned char _microsecond_10 = 0;
unsigned char _second;
unsigned int eepromaddr;
boolean Flag_ReadTime;#define ON 1
#define OFF 0void TimeUpdate2(void)
{
if(ClockPoint)tm1637.point(POINT_ON);
else tm1637.point(POINT_OFF);
TimeDisp[2] = _microsecond_10 / 10;
TimeDisp[3] = _microsecond_10 % 10;
TimeDisp[0] = _second / 10;
TimeDisp[1]= _second % 10;
Update = OFF;
}void TimingISR2()
{
microsecond_10 ++;
Update = ON;
if(microsecond_10 == 100)
{
second ++;
if(second == 60)
{
second = 0;
}
microsecond_10 = 0;
}
ClockPoint =(~ClockPoint) & 0x01;
if(Flag_ReadTime == 0){_microsecond_10 = microsecond_10;
_second = second; }
}void readTime(){
Flag_ReadTime = 1;
if(eepromaddr == 0)
{
Serial.println("The time had been read");
_microsecond_10 = 0;_second = 0;
}
else{
_second = EEPROM.read(-- eepromaddr);
_microsecond_10 = EEPROM.read(-- eepromaddr);
Serial.println("List the time");
}
Update = ON;
}
void saveTime()
{EEPROM.write(eepromaddr ++,microsecond_10);
EEPROM.write(eepromaddr ++,second);
}void stopwatchPause()
{
TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12));
}void stopwatchReset()
{stopwatchPause();
Flag_ReadTime = 0;
_microsecond_10 = 0;
_second = 0;
microsecond_10 = 0;
second = 0;
Update = ON;
}void stopwatchStart()
{Flag_ReadTime = 0;
TCCR1B |=Timer1.clockSelectBits;
}void setup(){display.begin();display.setBacklight(20);tm1637.set();tm1637.init();
Timer1.initialize(10000);Timer1.attachInterrupt(TimingISR2);}void loop(){stopwatchStart();if(Update == ON){TimeUpdate2();tm1637.display(TimeDisp);}
}
2.以下使用可视化编程的截图
2.1数码管滚动字符串
2.2数码管显示自定义时间
2.3数码管显示秒表的功能
3.实现的效果
3.1实现滚动字符视频
数码管实现滚动字符串
3.2 实现自定义的时间
3.3实现秒表的视频
实现数码管秒表
利用Arduino实现数码管显示功能相关推荐
- LabVIEW控制Arduino驱动数码管(基础篇—11)
目录 1.实验目的 2.实验环境 3.程序设计 4.实验演示 1.实验目的 利用LIAT中的数码管显示函数库,通过LabVIEW软件控制Arduino Uno控制板,将特定的数据显示在单个数码管上,实 ...
- 利用Arduino IDE对ATMEGA8等单片机编程
简 介: 根据 Programming ATmega8 Using Arduino IDE - Arduino Project Hub 所描述的方法,测试了在Arduino IDE中增加对于ATmeg ...
- 利用Arduino Nano 对于另外的Arduino控制板下载Bootloader
简 介: 测试了利用Nano板对于基于MEGA328的Arduino的Bootloader下载,在此基础之上,利用了FT232TL的USB-TTL UART模块对测试MEGA328下载执行程序. 关键 ...
- 利用Arduino对路由器进行调试,居然这么简单!
本文讲的是利用Arduino对路由器进行调试,居然这么简单!, 在生产嵌入式系统,如路由器或网络摄像头时,制造商就已预留了一些调试端口.不过对于一般的用户来说,这些预留的调试端口显然是用不到的,因为它 ...
- Arduino:数码管显示原理详解和Proteus仿真实验
Arduino:数码管显示原理详解和Proteus仿真实验 Proteus仿真 数码管介绍 数码管是半导体发光元件,其基本单元是发光二极管.根据段数,数码管分为七段管和八段管. 八段管比七段管还多一个 ...
- 单片机实验——改进型交通信号灯设计,交通信号系统是保障交通安全高效的重要设施,为了利于司机更好的判断,很多交通信号灯系统在原来的系统基础上设置了倒计时显示器。本实验利用7段数码管作倒计时显示器
实验内容及要求 交通信号系统是保障交通安全高效的重要设施,为了利于司机更好的判断,很多交通信号灯系统在原来的系统基础上设置了倒计时显示器.本实验利用7段数码管作倒计时显示器,设计一个改进型的交通信号灯 ...
- 如何利用Arduino和TFT LCD操控NeoPixel LED灯条
原文地址:https://circuitdigest.com/microcontroller-projects/neopixel-rgb-led-strip-with-arduino 如何利用Ardu ...
- 利用Arduino uno控制24BYJ-48电机正反转停止( 不使用步进库实现方法三)
利用Arduino uno控制24BYJ-48电机正反转停止( 不使用步进库实现方法三) 24BYJ48步进电机 本文不涉及指定圈数的转动,旨在控制步进正反转以及停止的控制.(知道其原理,实现指定圈数 ...
- 利用Arduino uno控制24BYJ-48电机正反转停止( 不使用步进库实现方法二)
利用Arduino uno控制24BYJ-48电机正反转停止( 不使用步进库实现方法二) 继续写第二种方法,主要是受到之前写流水灯的程序原理启发. 24BYJ48步进电机 本文不涉及指定圈数的转动,旨 ...
最新文章
- 架构设计之分布式文件系统
- 核密度估计python_核密度估计Kernel Density Estimation(KDE)
- python数据库编程dbf_python读写dbf文件
- pomelo 分布式聊天入门客户端demo(c#)
- hp服务器raid制作,HP服务器建立RAID的两种方法
- 微软推出免费在线系统诊断工具--不用手动下载
- 5、mysql中的库操作
- MATLAB之图像与音频信号处理
- 凭什么说这门编程语言是下一代 Java?
- Jersey Restful WebService 接收 JSON 数组 对象
- 2022-渗透测试-口令破解-几款暴力破解和字典生成的工具
- 因子分析python代码_用Python实现因子分析
- disc性格测试cs适合职业_DISC性格测试,高C型的人适合从事什么工作?
- 服务器上的VGA切换原理,什么是VGA接口 原理及特点是什么
- PowerShell 开启无线热点
- 我的世界手机java版下载_我的世界java版下载手机版-我的世界java版手机版v1.16 - 手机迷...
- python计算三角形面积_【Scratch算法编程】计算三角形面积
- 管理员技术(二): 访问练习用虚拟机、 命令行基础技巧 、 挂载并访问光盘设备、ls列表及文档创建、复制删除移动...
- CAD命令栏窗口跑到屏幕外面怎么找回来
- 【运筹优化】结合天际线启发式的蚁群算法求解二维矩形装箱问题 + Java代码实现
热门文章
- java 编程动感相册_抖音3D立体动态相册实现代码下载
- 【面试】向主考官提出的10个漂亮的问题
- matlab多元回归程序,多元回归程序MATLAB程序.doc
- 完整制作网吧系统全过程(四)
- 数通网络高工的金手指(附详细书单)
- Macbook OS X EI Capitan 10.11.5 WiFi不稳定
- windows10命令行窗口cmd路径切换
- jsp页面跳转的几种方式
- 时间格式yyyy-MM-dd‘T‘HH:mm:ss.SSSXXX与yyyy-MM-dd HH:mm:ss之间相互转换的工具类
- 访问者模式(Visitor Pattern)