文档章节

arduino uno r3 静态控制四位共阳数码管(笔记)

虚拟世界的懒猫
 虚拟世界的懒猫
发布于 2017/07/24 18:03
字数 543
阅读 29
收藏 0
点赞 0
评论 0

最近在玩arduino的板子,玩到静态控制四位数码管遇到了障碍,搞了一下午才弄明白,写个笔记玩玩:

首先需要:(1)arduino uno r3

                  (2)220欧姆电阻8个

                   (3)四位数码管(我用的型号是F3461BH,型号不一样可能设定不一样)

                    (4)面包板,杜邦线若干

四位数码管电路图:

电路连接图:我dao了一张图,图是arduino板子的连接方式,我的r3稍有不同,第一根线从2号位开始连接,后边顺序不变一次措一位ie,也就是我用的2~13位(原图是1~12位)。

实物连接图:

代码来啦!

//设置阴极接口
int a = 2 ;   //从2号位开始连接的
int b = 3;
int c = 4;
int d = 5;
int e = 6;
int f = 7;
int g = 8;
int p = 9;
//设置阳极接口
int d4 = 10;
int d3 = 11;
int d2 = 12;
int d1 = 13;
//设置变量
long n = 0;
int x = 100;
int del = 55;  //此处数值对时钟进行微调

byte segs[7] = { a, b, c, d, e, f, g };

byte seven_seg_digits[10][7] = {  {0,0,0,0,0,0,1} ,  // = 0
                                  {1,0,0,1,1,1,1} ,  // = 1
                                  {0,0,1,0,0,1,0} ,  // = 2
                                  {0,0,0,0,1,1,0} ,  // = 3
                                  {1,0,0,1,1,0,0} ,  // = 4
                                  {0,1,0,0,1,0,0} ,  // = 5
                                  {0,1,0,0,0,0,0} ,  // = 6
                                  {0,0,0,1,1,1,1} ,  // = 7
                                  {0,0,0,0,0,0,0} ,  // = 8
                                  {0,0,0,0,1,0,0}    // = 9
                                }; 

void setup()
{
  pinMode(d1, OUTPUT);
  pinMode(d2, OUTPUT);
  pinMode(d3, OUTPUT);
  pinMode(d4, OUTPUT);
  pinMode(a, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(c, OUTPUT);
  pinMode(d, OUTPUT);
  pinMode(e, OUTPUT);
  pinMode(f, OUTPUT);
  pinMode(g, OUTPUT);
  pinMode(p, OUTPUT);
}

void loop()
{
  clearLEDs();
  pickDigit(1);
  lightSegments((n/x/1000)%10);
  delayMicroseconds(del);

  clearLEDs();
  pickDigit(2);
  lightSegments((n/x/100)%10);
  delayMicroseconds(del);

  clearLEDs();
  pickDigit(3);
  dispDec(3);
  lightSegments((n/x/10)%10);
  delayMicroseconds(del);

  clearLEDs();
  pickDigit(4);
  lightSegments(n/x%10);
  delayMicroseconds(del);

  n++;

  if (digitalRead(13) == HIGH)   //设定到999.9以后就归零
  {
    n = 0;
  }
}

void pickDigit(int x)  //定义pickDigit(x),其作用是开启dx端口
{
  digitalWrite(d1, LOW);
  digitalWrite(d2, LOW);
  digitalWrite(d3, LOW);
  digitalWrite(d4, LOW);

  switch(x)
  {
  case 1: 
    digitalWrite(d1, HIGH); 
    break;
  case 2: 
    digitalWrite(d2, HIGH); 
    break;
  case 3: 
    digitalWrite(d3, HIGH); 
    break;
  default: 
    digitalWrite(d4, HIGH); 
    break;
  }
}

void dispDec(int x)  //设定开启小数点
{
  digitalWrite(p, LOW);
}

void clearLEDs()  //清屏
{
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  digitalWrite(p, HIGH);
}


// 点亮对应数字的数码管
void lightSegments(int x) {
   for (int i = 0; i <7 ; i++) {
     digitalWrite(segs, seven_seg_digits[x]);
   }
}

 

 

© 著作权归作者所有

共有 人打赏支持
虚拟世界的懒猫
粉丝 1
博文 21
码字总数 10044
作品 0
唐山
个人站长
(五).单片机输出电路的实践——数码管显示电路的设计

一.数码管显示电路设计 数码管分为共阴和共阳两种,一种是将LED内部所有的阳极连 到一起,并通过com端引出。共阴则反之。 当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输...

hu_9716
03/16
0
0
Arduino下实现LED Martix级联

前面介绍过在pcDuino上运行LED Matrix Kit,这个套件中有MAX7219芯片,它是串行输入/输出共阴极数码管显示驱动芯片,它的操作很简单,MCU只需通过模拟SPI三线接口就可以将相关的指令写入MAX...

pc朵拉
2013/07/02
0
0
【物联网(IoT)开发】Arduino 入门 Hello World(LED闪烁)

Hello World ,中文意思:你好,世界。世界上的第一个程序就是Hello World,由Brian Kernighan创作。然而在单片机、微控制器的学习上的Hello World 就是通过程序控制LED灯(通常是发光二极管...

微wx笑
2016/09/17
0
0
Arduino教程汇总

原始链接:Arduino教程汇总贴 (有更新) 初识arduino http://www.arduino.cn/thread-1083-1-1.html 常见arduino版本比较 http://www.arduino.cn/thread-1192-1-1.html arduino驱动安装方法 ht......

小堤
2013/05/26
23K
15
开源电子工作套件 Arduino Start Kit 登场

英国RS Components Ltd.在2012年10月,开始发售Arduino Uno的电子工作套件Arduino Start Kit。Arduino Uno以使用开源硬体Arduino为基础设计,厂方会持续发放相关教学,让初学者也能设计出专家...

oschina
2012/10/15
4.1K
19
Arduino初初教程2——I/O口输出应用

Arduino除了能驱动LED之外,还可以通过I/O输出驱动蜂鸣器和数码管。 LED(发光二极管),能将电能转化为光能,其也具有单向导电性,反向击穿电压约5V。它的正向伏安特性曲线很陡,使用时必须...

小堤
2013/05/28
0
0
Arduino UNO r3 在win7 64位系统安装驱动失败的解决方案

最近入手一块Arduino UNO r3,准备向开源硬件进军。 Arduino UNO r3 没想到刚刚将设备链接到电脑上时就遇到驱动安装失败的问题。(如图) 驱动安装失败的提示 办法总比困难多,遇到问题还得解...

高杆python
2017/10/13
0
0
arduino从零开始(21)四位数码显示管

        你将学到什么   你将学到如何使用TM1637芯片控制四位数码管的显示      视频内容         若视频不清晰,1080P高清视频网址:   https://v.qq.com/x/page/b0558...

Python与Arduino
03/01
0
0
微机原理之跑马灯课程设计设计报告及相关汇编代码

微机原理课程设计 设计报告 花式跑马灯 一、设计目的 1、熟悉Protues ISIS的基本操作,及基本电路绘制; 2、能根据电路修改理解程序; 3、能根据程序分析各种功能; 二、设计内容 用七段数码...

wxx258369
2017/01/01
0
0
PIC16F883实现按键行列扫描,准确识别按键,数码管显示按键编号

控制芯片:PIC16F883 引脚图: 按键连接图: 四位数码管连接:四个共阴极分别连接PORTA<3:0>,8段数码管分别连接PORTC<7:0>,PORTB<4,2:0>分别连接按键的四个I/O引脚。 我在PORTC上连接了数码...

0101
2012/07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

看看 LinkedList Java 9

终于迎来了 LinkedList 类,实现的接口就有点多了 Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E>。LinkedList是一个实现了List接口和Deque接口的双端链......

woshixin
9分钟前
0
0
算法 - 冒泡排序 C++

大家好,我是ChungZH。今天我给大家讲一下最基础的排序算法:冒泡排序(BubbleSort)。 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大(可以相反),就交换他们两个。 对每...

ChungZH
11分钟前
0
0
jquery ajax request payload和fromData请求方式

请求头的不同 fromData var data = { name : 'yiifaa'};// 提交数据$.ajax('app/', { method:'POST', // 将数据编码为表单模式 contentType:'application/x-ww...

lsy999
14分钟前
0
0
阿里P7架构师,带你点亮程序员蜕变之路

前言: Java是现阶段中国互联网公司中,覆盖度最广的研发语言。 掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。 有不少朋友问,成为Java架...

Java大蜗牛
15分钟前
0
0
Ecstore 在没有后台管理界面(维护)的情况如何更新表的字段

window 系统: 切换到:app\base 目录下: C:\Users\qimh>d: D:\>cd D:\WWW\huaqh\app\base 执行:D:\WWW\huaqh\app\base>cmd update linux 系统: 1># cd /alidata/www.novoeshop.com/app/......

qimh
19分钟前
0
0
设计模式-策略模式

策略模式 解释 对工厂模式的再次封装,使用参数控制上下文信息(将工厂返回的实例赋值给context field) 不会返回bean实例,只是设置对应的条件 调用context的方法(调用field的方法) 用户只...

郭里奥
22分钟前
0
0
python使用有序字典

python自带的collections包中有很多有用的数据结构可供使用,其中有个叫OrderedDict类,它可以在使用的时候记录元素插入顺序,在遍历使用的时候就可以按照原顺序遍历。 a = {"a":1,"b"...

芝麻糖人
52分钟前
0
0
RestTemplate HttpMessageConverter

RestTemplate 微信接口 text/plain HttpMessageConverter

微小宝
52分钟前
0
0
mysql视图/存储过程/函数/事件/触发器

--语法参考:https://dev.mysql.com/doc/ (当前用的是5.6) https://dev.mysql.com/doc/refman/5.6/en/sql-syntax-data-manipulation.html --视图 CREATE VIEW test.v AS SELECT * FROM t;......

坦途abc
54分钟前
0
0
MySQL参数优化案例

环境介绍 硬件配置 cpu核心数 内存大小 磁盘空间 16核 256G 3T 软件环境 操作系统版本 mysql版本 表数目 单表行数 centos-7.4 mysql-5.7.22 128张表 2kw行 优化层级与指导思想 优化层级 MySQ...

小致dad
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部