Arduino 入门到精通 例程16-数码管

合集下载

ArduBlock零基础编程

ArduBlock零基础编程
2.ArduBlock 介绍
一款为 Arduino 设计的图形化编程软件,由上海新车间创客开发。ArduBlock 软件是 Arduino 官方编程环境的第三方软件,目前必须依附于 Arduino 软件下运行,区别于 Arduino 文本式 编程环境,ArduBlock 是以图形化积木搭建的方式编程的,这样的方式会使编程的可视化 和交互性加强,编程门槛降低,即使没有编程经验的人也可以尝试给 Arduino 控制器编写 程序。

ArduBlock 零基础编程套件
---For Arduino
ArduBlock 零基础编程套件是科易互动科技最新推出的一款基于 Arduino 爱好者的图形化编 程学习套件,大大降低了爱好者的学习难度,所有编程都可以通过搭积木的方式,把高级的 计算机语言和专业的语法,简化为一个个模块,堆砌在一起。最后和 Arduino 开发板互动, 做出激动人心的效果。
简单,但不至于太简单
传统开发板往往过于复杂,有很多附件,例如液晶显示屏,按钮,发光二级管,7段数码 管等等。开发板展示了其一切功能。Arduino 板上显示的功能数量是绝对最小值,如果要实现 功能扩展,只需增加 Shield(盾)。Arduino Shield 有成百上千,从液晶显示屏到无线上网 技术,但要增加多少 Shield 由用户自己定。扩展 Shield 的功能也容易,对于制作扩展 Shield 功能的人还会有商业上的刺激。 非芯片制造商制造 Arduino 开发板不是由芯片制造商设计的。为什么强调这点呢?因为芯片制造商为了突出自 己的产品与众不同,他们常常会添加一些奇怪的东西。而 Arduino 强调微控器间的共同性而 不是差异性。这就意味着 Arduino 是一个绝佳的初学者平台,只要在 Arduino 板上可以做的 事情,您在其他任何的微控制器上都可以做。这一基本特征将伴随您很长时间。

Arduino教程(非常适合初学者)

Arduino教程(非常适合初学者)

Arduino教程一: 数字输出Arduino, 教程11 Comments »Arduino的数字I/O被分成两个部分,其中每个部分都包含有6个可用的I/O管脚,即管脚2到管脚7和管脚8到管脚13。

除了管脚13上接了一个1K的电阻之外,其他各个管脚都直接连接到ATmega上。

我们可以利用一个6位的数字跑马灯,来对Arduino数字I/O 的输出功能进行验证,以下是相应的原理图:电路中在每个I/O管脚上加的那个1K电阻被称为限流电阻,由于发光二极管在电路中没有等效电阻值,使用限流电阻可以使元件上通过的电流不至于过大,能够起到保护的作用。

该工程对应的代码为:int BASE = 2;int NUM = 6;int index = 0;void setup(){for (int i = BASE; i < BASE + NUM; i ++){pinMode(i, OUTPUT);}}void loop(){for (int i = BASE; i < BASE + NUM; i ++) {digitalWrite(i, LOW);}digitalWrite(BASE + index, HIGH);index = (index + 1) % NUM;delay(100);}下载并运行该工程,连接在Arduino数字I/O管脚2到管脚7上的发光二极管会依次点亮0.1秒,然后再熄灭:这个实验可以用来验证数字I/O输出的正确性。

Arduino上一共有十二个数字I/O管脚,我们可以用同样的办法验证其他六个管脚的正确性,而这只需要对上述工程的第一行做相应的修改就可以了:int BASE = 8;SEP01Arduino教程二: 数字输入Arduino, 教程3 Comments »在数字电路中开关(switch)是一种基本的输入形式,它的作用是保持电路的连接或者断开。

Arduino从数字I/O管脚上只能读出高电平(5V)或者低电平(0V),因此我们首先面临到的一个问题就是如何将开关的开/断状态转变成Arduino能够读取的高/低电平。

数码管驱动程序实例

数码管驱动程序实例

数码管驱动程序实例介绍数码管是一种常见的显示设备,通常用于显示数字和部分字母。

为了控制数码管的显示内容,我们需要编写一段驱动程序来控制数码管的工作。

本文将介绍一个数码管驱动程序的实例,包括硬件连接、代码编写和运行效果展示。

通过学习这个实例,你将了解到如何使用Arduino来驱动数码管进行数字显示。

硬件连接首先,我们需要准备以下硬件组件:•Arduino开发板•数码管(常见的有共阳极和共阴极两种类型)接下来,按照以下步骤进行硬件连接:1.将Arduino开发板与电脑连接,并打开Arduino IDE。

2.将数码管的引脚与Arduino开发板上的数字引脚相连。

具体连接方式取决于你使用的数码管类型,请参考相关资料或数据手册。

3.使用面包板或杜邦线等工具完成引脚连接。

代码编写完成硬件连接后,我们可以开始编写代码了。

以下是一个简单的数码管驱动程序示例:// 引入库#include <SevSeg.h>// 创建一个SevSeg对象并指定引脚SevSeg sevseg;void setup() {// 初始化数码管sevseg.begin(COMMON_CATHODE, 4, 3, 2, 1, 0, 6, 7, 5, 8);}void loop() {// 显示数字0-9for (int i = 0; i < 10; i++) {sevseg.setNumber(i);sevseg.refreshDisplay();delay(1000);}}代码解析:1.首先,我们引入了一个名为SevSeg的库,该库提供了控制数码管的函数和方法。

2.在setup()函数中,我们初始化了一个SevSeg对象,并指定了数码管的引脚连接方式。

这里使用的是共阳极数码管,如果你使用的是共阴极数码管,则需要将COMMON_CATHODE改为COMMON_ANODE。

3.在loop()函数中,我们通过一个循环来显示数字0-9。

单片机指令编程实例数码管显示程序设计

单片机指令编程实例数码管显示程序设计

单片机指令编程实例数码管显示程序设计在单片机的开发中,数码管是一种常见的输出设备。

通过编程控制数码管的显示,我们可以实现各种功能,如计时、计数、温度显示等。

本文将介绍一个简单的单片机指令编程实例,用于设计一个数码管显示程序。

一、概述数码管是一种由七段LED组成的显示器件,每个数码管可以显示0-9的数字。

通过合理的控制,可以将多个数码管连接起来并显示多位数值。

在这个实例中,我们将使用AT89C51单片机和共阳数码管进行程序设计。

二、硬件连接将数码管的七段LED引脚依次连接到单片机的GPIO引脚,并将共阳极引脚连接到单片机的VCC。

为了方便控制,可以利用74HC595芯片实现数码管的级联连接,这样只需要使用三个IO口即可控制多个数码管。

三、程序设计程序设计的主要逻辑是通过编写一系列的指令来控制数码管的显示。

以下是一个简单的实例程序:```#include <reg51.h>sbit SDA = P1^0; // 74HC595芯片的串行数据引脚sbit SCK = P1^1; // 74HC595芯片的时钟引脚sbit RCK = P1^2; // 74HC595芯片的输出使能引脚unsigned char code num[10] = {0xC0, // 数字0的显示码0xF9, // 数字1的显示码0xA4, // 数字2的显示码0xB0, // 数字3的显示码0x99, // 数字4的显示码0x92, // 数字5的显示码0x82, // 数字6的显示码0xF8, // 数字7的显示码0x80, // 数字8的显示码0x90 // 数字9的显示码};void delay(unsigned int t) {unsigned int i;while (t--) {for (i = 0; i < 1000; i++);}}void writeByte(unsigned char dat) {unsigned char i;for (i = 0; i < 8; i++) {SDA = (dat & 0x80) ? 1 : 0;dat <<= 1;SCK = 0;SCK = 1;}}void display(unsigned char n) {unsigned char i;for (i = 0; i < 8; i++) {writeByte(num[n]);RCK = 1;RCK = 0;delay(1); // 延时一段时间,使数码管显示出来}}void main() {unsigned char i;while (1) {for (i = 0; i < 10; i++) {display(i);delay(500); // 每个数字显示的时间间隔为500ms}}}```以上程序通过将各个数字的显示码存储在一个数组中,然后通过控制74HC595芯片的串行数据引脚、时钟引脚和输出使能引脚,来实现数码管的动态显示。

Arduino基础课程

Arduino基础课程

课后任务
发挥想象制作一个流 水灯
第六课 模拟输入
• analogRead(引脚或变量名); [0,1023] 本指令用于从 Arduino的模拟输入引脚读取数 值。 Arduino可以将0-5V的电压输入信号映 射到数值0-1023。 换句话说,我们可以将5V等分成1024份。0V 的输入信号对应着数值0,而5V的输入信号对 应着1023。
模式:OUTPUT 输出模式,为电路提供激励
INPUT 输入模式,读取传感器信号或开关信号
笔记
• 模式常量 HIGH、LOW (高电平、低电平) 输出模式:HIGH=5V、LOW=0V 输入模式:HIGH>=3V、LOW<=2V
• digitalWrite(引脚或变量名,模式常量); 将数字引脚输出高低电平
digitalWrite(led2, HIGH);
}
}
void ledmie(){
//灯全灭
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
2路抢答器
int g1=13; int y1=12; int r1=11; int g2=10; int y2=9; int r2=8; void setup() { pinMode(g1, OUTPUT); pinMode(y1, OUTPUT); pinMode(r1, OUTPUT); pinMode(g2, OUTPUT); pinMode(y2, OUTPUT); pinMode(r2, OUTPUT); } void loop() { digitalWrite(g1, HIGH); delay(5000); digitalWrite(g1, LOW); digitalWrite(y1, HIGH); delay(1000); digitalWrite(y1, LOW); digitalWrite(r1, HIGH); delay(5000); digitalWrite(r1, LOW); }

ARDUINO入门及其简单实验(7例)

ARDUINO入门及其简单实验(7例)

ARDUINO⼊门及其简单实验(7例)ARDUINO⼊门及其简单实验(7例) (1)1. Arduino硬件开发平台简介 (1)1.1 Arduino的主要特⾊ (2)1.2 Arduino的硬件接⼝功能描述 (3)1.3 Arduino的技术性能参数 (3)1.4 电路原理图 (4)2. Arduino软件开发平台简介 (5)2.1 菜单栏 (5)2.2 ⼯具栏 (6)2.3 Arduino 语⾔简介 (6)3. Arduino开发实例中所⽤部分器件 (8)1. LED简介 (8)2. 光敏电阻简介 (9)3. 直流电机简介 (9)4. 电位器简介 (10)4. Arduino平台应⽤开发实例 (10)4.1【实作项⽬⼀】利⽤LED作光敏电阻采样实验 (10)4.2【实作项⽬⼆】利⽤PWM信号控制LED亮度 (12)4.3【实作项⽬三】单键控制⼀只LED的亮灭 (15)4.4【实作项⽬四】利⽤PWM控制直流电机转速 (17)4.5【实作项⽬五】利⽤电位器⼿控LED亮度 (19)4.6【实作项⽬六】控制LED明暗交替 (21)4.7【实作项⽬七】利⽤光敏电阻控制LED的亮灭 (23)ARDUINO⼊门及其简单实验(7例)1. Arduino硬件开发平台简介Arduino硬件是⼀块带有USB的I/O接⼝板(其中包括13条数字I/O引脚,6通道模拟输出,6通道模拟输⼊),并且具有类似于Java、C语⾔的集成开发环境。

Arduino既可以扩展⼀些外接的电⼦元器件,例如开关、传感器、LED、直流马达、步进马达或其他输⼊、输出装置;Arduino也可以独⽴运⾏,成为⼀个可以跟交互软件沟通的接⼝装置,例如:Flash、Processing、Max/MSP、VVVV或其他互动软件。

Arduino开发环境IDE全部开放源代码,可以供⼤家免费下载、利⽤,还可以开发出更多激发⼈们制作欲望的互动作品。

如图1和图2所⽰,分别为Arduino硬件平台的实物图和电路布局图。

Arduino入门版使用教程

Arduino入门版使用教程

Arduino入门版使用教程i目录介绍篇 ........................................................................ . (1)一、Arduino 基础套装介绍 (2)1、什麽是Arduino 基础套装 (2)2、元件清单 ........................................................................ (2)二、Arduino 介绍 ........................................................................ (4)1、什麽是Arduino ................................................................... . (4)2、特色描述 ........................................................................ (4)3、性能描述 ........................................................................ (4)三、Arduino C 语言介绍 ........................................................................ .. 61、关键字和符号 ........................................................................ .. (6)2、结构 ........................................................................ .. (9)3、功能 ........................................................................ (9)四、Arduino 使用介绍 ........................................................................ . (11)1、准备好你的Arduino板 (11)2、下载Arduino 开发环境 (13)3、安装USB 驱动 ........................................................................ . (13)4、连接LED 灯电路 ........................................................................ .. (17)5、打开arduino 开发环境 (18)6、打开已有程式 ........................................................................ . (19)7、编译程式 ........................................................................ . (20)8、下载程式 ........................................................................ . (23)五、面包板使用介绍 ........................................................................ .. (30)1、面包板介绍 ........................................................................ . (30)2、面包板的使用 ........................................................................ (30)ii实验篇 ........................................................................ .. (34)第一节多彩led 灯实验 ........................................................................ .. 35一、发光二极管介绍 ........................................................................ .. (35)二、简单的控制一个led 灯的闪烁实验 (39)三、广告灯效果实验 ........................................................................ .. (41)第二节蜂鸣器实验 ........................................................................ (48)一、蜂鸣器介绍 ........................................................................ .. (48)二、蜂鸣器模拟救护车警笛声音实验 (50)第三节数码管实验 ........................................................................ (54)一、数码管介绍 ........................................................................ (54)二、数码管显示数字的实验 (56)第四节按键实验 ........................................................................ (63)一、按键介绍 ........................................................................ (63)二、按键控制led 等亮灭实验 (65)三、掷骰子实验 ........................................................................ (67)第五节倾斜开关实验 ........................................................................ (74)一、倾斜开关介绍 ........................................................................ (74)二、倾斜开关控制led 灯的亮灭 (75)第六节光控声音实验 ........................................................................ (79)一、光敏电阻介绍 ........................................................................ (79)二、光控声音实验 ........................................................................ (80)第七节火焰报警实验 ........................................................................ (84)一、火焰传感器介绍 ........................................................................ (84)二、火焰报警实验 ........................................................................ (85)第八节抢答器实验 ........................................................................ (90)第九节温度报警实验 ........................................................................ (98)一、温度传感器介绍 ........................................................................ (98)iii二、温度报警实验 ........................................................................ (99)第十节红外遥控 ........................................................................ . (103)一、红外接收头介绍 ........................................................................ . (103)二、红外遥控实验 ........................................................................ . (104)介绍篇一、Arduino 基础套装介绍1、什麽是Arduino基础套装Arduino基础套装是精心为初学者设计的一款学习工具。

Arduino机器人制作入门教程

Arduino机器人制作入门教程

图 1.15:安装电池盒图 2 步骤 5:安装万向轮
4
C5
Arduino 机器人制作入门教程

图 1.16 万向轮安装后的后视效果图
(1)完成组装步骤 5 所需零件: 1)12mm 铜螺柱:4 个 2)M3*6 圆头螺钉:8 颗 3)万向轮:1 个 (2)组装说明 1)首先用 4 颗 M3*6 圆头螺钉 将 4 个 12mm 铜螺柱安装到万向轮 上。 2) 再把万向轮安装于底盘的尾 部, 安装方法如图 1.16 和图 1.17 所示。 3)到此机器人底盘便组装完 毕, 图 1.18 所示为组装完毕的机 器人底盘整体效果图。
2
C5
Arduino 机器人制作入门教程

第一章
1
Arduino 教学机器人硬件组装和编程入门
本体组装
本节将指导你组装 Arduino 教学机器人,必须依照每个组装步骤说明仔细组装。
1.1 组装工具
图 1.1 所示的工具是比较通用的工具,一般家庭或学校都有,在一些五金商店也可以买到。在 与书本配套的机器人套件中已经配有此套工具。
1、尖嘴钳
2、螺丝刀
图 1.1 机器人组装工具
1.2 安装机器人底盘零件
零件列表分为 4 类:金属杆件,螺钉与铜螺柱,万向轮,电机套件与电池盒。
金属杆件名称及数量
A) 1*1 金属转弯件:2 个 B)2*2 转弯件:4 个 C) 1*5 金属杆件:2 个 D) 开槽金属杆件: 2 个 E) 2*10 金属杆件:2 个
步骤 1:组装机器人车体
2
C5
Arduino 机器人制作入门教程

图 1.7 步骤 1 组装后的效果图 2 步骤 2:组装机器人电机安装支架 (1)完成组装步骤 2 所需零件: 1)1*1 金属转弯件:2 个 2)2*2 金属转弯件:4 个 3)开槽金属杆件:1 个 4)M3*6 圆头螺钉 :10 颗 图 1.8 组装后的前方效果图 (2)组装说明 1) 组装方式参照图 1.8、 图 1.9 和图 1.10。 2) 先按照图 1.8 和图 1.9 将 4 个 2*2 金属 转弯件安装于底盘前部的两侧,用于固定伺 服电机。再按图 1.10 用 2 个 1*1 金属转弯 件将开槽金属杆件固定于前部,用于安装传 感器或者其它工具。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Arduino 入门到精通例程16
数码管显示实验
数码管是一种常见的普遍的显示数字的显示器件,日常生活中例如:电磁炉,全自动洗衣机,太阳能水温显示,电子钟…..等等数不甚数。

说以掌握数码管的显示原理,是很有必要的。

数码管是一种半导体发光器件,其基本单元是发光二极管。

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示),本实验所使用的是八段数码管。

按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。

共阳数码管在应用时应将公共极COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。

共阴数码管在应用时应将公共极COM 接到地线GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。

当某一字段的阳极为低电平时,相应字段就不亮。

数码管的每一段是由发光二极管组成,所以在使用时跟发光二极管一样,也要连接限流电阻,否则电流过大会烧毁发光二极管的。

本实验用的是共阴极的数码管,共阴数码管在应用时应将公共极接到GND,当某一字段发光二极管的阳极为低电平时,相应字段就点熄灭。

当某一字段的阳极为高电平时,相应字段就点亮。

介绍完原理,
我们开始准备实验用元器件。

八段数码管*1
220Ω直插电阻*8
面包板*1 面包板跳线*1 扎
我们参考实物连接图按原理图连接好电路。

数码管共有七段显示数字的段,还有一个显示小数点的段。

当让数码管显示数字时,只要将相应的段点亮即可。

例如:让数码管显示数字1,则将b、c 段点亮即可。

将每个数字写成一个子程序。

在主程序中每隔2s 显示一个数字,让数码管循环显示1~8 数字。

每一个数字显示的时间由延时时间来决定,时间设置的大些,显示的时间就长些,时间设置的小些,显示的时间就短。

参考程序源代码:
//设置控制各段的数字IO 脚
int a=7;//定义数字接口7 连接a 段数码管
int b=6;// 定义数字接口6 连接b 段数码管int c=5;// 定义数字接口5 连接c 段数码管int d=10;// 定义数字接口10 连接d 段数码管int e=11;// 定义数字接口11 连接e 段数码管int f=8;// 定义数字接口8 连接f 段数码管int g=9;// 定义数字接口9 连接g 段数码管int dp=4;// 定义数字接口4 连接dp 段数码管void digital_0(void) //显示数字5
{
unsigned char j;
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);
digitalWrite(dp,LOW);
}
void digital_1(void) //显示数字1
{
unsigned char j;
digitalWrite(c,HIGH);//给数字接口5 引脚高电平,点亮c 段digitalWrite(b,HIGH);//点亮b 段
for(j=7;j<=11;j++)//熄灭其余段
digitalWrite(j,LOW);
digitalWrite(dp,LOW);//熄灭小数点DP 段
}
void digital_2(void) //显示数字2
{
unsigned char j;
digitalWrite(b,HIGH);
digitalWrite(a,HIGH);
for(j=9;j<=11;j++)
digitalWrite(j,HIGH);
digitalWrite(dp,LOW);
digitalWrite(c,LOW);
digitalWrite(f,LOW);
}
void digital_3(void) //显示数字3
{
digitalWrite(g,HIGH);
digitalWrite(a,HIGH);
digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(dp,LOW); digitalWrite(f,LOW); digitalWrite(e,LOW);
}
void digital_4(void) //显示数字4 {
digitalWrite(c,HIGH); digitalWrite(b,HIGH); digitalWrite(f,HIGH); digitalWrite(g,HIGH); digitalWrite(dp,LOW); digitalWrite(a,LOW); digitalWrite(e,LOW); digitalWrite(d,LOW);
}
void digital_5(void) //显示数字5 {
unsigned char j;
digitalWrite(a,HIGH);
digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e, LOW); digitalWrite(f,HIGH); digitalWrite(g,HIGH); digitalWrite(dp,LOW);
}
void digital_6(void) //显示数字6 {
unsigned char j;
for(j=7;j<=11;j++) digitalWrite(j,HIGH); digitalWrite(c,HIGH); digitalWrite(dp,LOW); digitalWrite(b,LOW);
}
void digital_7(void) //显示数字7 {
unsigned char j;
for(j=5;j<=7;j++)
digitalWrite(j,HIGH);
for(j=8;j<=11;j++) digitalWrite(j,LOW);
}
void digital_8(void) //显示数字8 {
unsigned char j;
for(j=5;j<=11;j++) digitalWrite(j,HIGH); digitalWrite(dp,LOW);
}
void digital_9(void) //显示数字5 {
unsigned char j;
digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e, LOW); digitalWrite(f,HIGH); digitalWrite(g,HIGH); digitalWrite(dp,LOW);
}
void setup()
{
int i;//定义变量
for(i=4;i<=11;i++)
pinMode(i,OUTPUT);//设置4~11 引脚为输出模式}
void loop()
{
while(1)
{
digital_0();//显示数字1
delay(1000);//延时1s
digital_1();//显示数字1
delay(1000);//延时1s
digital_2();//显示数字2
delay(1000); //延时1s
digital_3();//显示数字3
delay(1000); //延时1s
digital_4();//显示数字4
delay(1000); //延时1s
digital_5();//显示数字5
delay(1000); //延时1s
digital_6();//显示数字6
delay(1000); //延时1s
digital_7();//显示数字7
delay(1000); //延时1s
digital_8();//显示数字8
delay(1000); //延时1s
digital_9();//显示数字8
delay(1000); //延时1s
}
}
实验现象:数码管显示0-9 循环显示。

相关文档
最新文档