Arduino基础入门之十 红外遥控1位数码管的显示

本文介绍如何使用Arduino实现红外遥控控制1位数码管显示。内容包括数码管的工作原理,硬件连接,以及代码实现。通过遥控器可以控制数码管随机显示数字、显示遥控器按键对应的0-9数字,以及实现加减功能。遇到的问题包括随机数始终显示为7和数码管误显示8,作者分析了原因并提出了解决思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 硬件

    

 如图数码管是由8个LED(b,a,f,g,e,d,c,DP)构成,外接有10个端口,我自己连接的引脚标号如图,另外数码管分共阳和共阴,区别也很简单,如下【1】

共阳数码管,它们公共端接5V,那在代码中,控制另一端的数字引脚为LOW,这样才能让数码管点亮。

如果是共阴数码管,公共端接GND,在代码中中,控制另一端数字引脚为HIGH,才让数码管点亮。

     连线的话,本来按照网站【1】的接法如下图,是在8个LED都接入220欧电阻,两个共阳极都接了5V,觉得这样比较麻烦,所以实际连线图还是按照最开始的上图,每个端口对应数字引脚直接连接即可,并没有串联电阻,在一个共阳极串联一个220欧再接5V,另一个共阳极空置(共阳极两个端口内部本来就是相连的)

 

二 代码

1. 目的:通过红外遥控器控制1位数码管的显示,希望实现以下3个具体功能
1)通电后数码管随机显示一位数(目前随机出来总是7)
2)遥控器按0~9,就显示对应数字
3)遥控器按+或-,数字相应加/减一位,直到9/0不能增减为止

2. 代码如下

//红外遥控控制1位数码管

#include <IRremote.h>//调用红外遥控的库
int RECV_PIN = 11;//定义红外接口数字引脚
IRrecv irrecv(RECV_PIN);//创建一个红外线接收对象irrecv
decode_results results;//声明一个IRremote库函数独有的变量类型(decode_results),results存放红外解码结果,


int ledpin = 13;//定义LED接口引脚,为了观察遥控器是否发送成功,用LED灯的亮灭来直观展示
boolean ledstate = LOW;

int currentnumber = random(0,10);//定义当前显示的数字为一随机数

//数码管部分相关
/*一位共阳数码管,10个接口,8个对应8个LED(7个条形+1个点形),两个对应正(共阳&#x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值