本帖最后由 hanreng 于 2020-8-15 17:09 编辑
目标
1、数字信号输出的概念 2、如何使用数字输出功能实现LED灯的点亮控制 3、如何使用数字输出功能实现LED灯的熄灭控制 4、实现LED灯每隔1秒进行闪烁
实验材料
Arduino UNO开发板 LED发光模块 配套USB数据线 配套杜邦线若干 Arduino IDE软件
内容
数字信号指幅度的取值是离散的,幅值表示被限制在有限个数值之内,二进制码就是一种数字信号,二进制码受噪声的影响小,易于有数字电路进行处理,所以得到了广泛的应用。
LED是发光二极管的简称,可以将电能转化为光能,发光二极管具有单向导通的特性,即只允许电流从正极流向负极,所以使用时主要正负极不要接反,熄灭与点亮为数字输出,分别有两种状态,低电平与高电平,数值为0或者1,LED灯的点亮需要将输出设置为高电平,熄灭则为低电平。
基础案例1
点亮LED灯,LED灯点亮为数字输出管脚3,需要将输出设置为高电平。
接线图
(Arduino UNO开发板与LED发光模块接线图)
接线方式
Arduino UNO开发板 <------> LED发光模块 3V3/5V <------> VCC GND <------> GND D3 <------> IN
程序实现代码
- void setup(){
- pinMode(3, OUTPUT);//定义3号数字管脚类型为输出
- }
- void loop(){
- digitalWrite(3,HIGH);//将3号数字管脚设置为高电平
- }
复制代码
基础案例2
LED灯熄灭,LED灯熄灭为数字输出管脚3,需要将输出设置为低电平。
程序实现代码
- void setup(){
- pinMode(3, OUTPUT);//定义3号数字管脚类型为输出
- }
- void loop(){
- digitalWrite(3,LOW);//将3号数字管脚设置为低电平
- }
复制代码
pinMode()
说明:通过pinMode()函数,你可以将Arduino的引脚配置为以下三种模式:
1、输出(OUTPUT)模式 2、输入(INPUT)模式 3、输入上拉(INPUT_PULLUP)模式 (仅支持Arduino 1.0.1以后版本) 在输入上拉(INPUT_PULLUP)模式中,Arduino将开启引脚的内部上拉电阻,实现上拉输入功能,一旦将引脚设置为输入(INPUT)模式,Arduino内部上拉电阻将被禁用。
设置Arduino引脚为输出(OUTPUT)模式
当引脚设置为输出(OUTPUT)模式时,引脚为低阻抗状态,这意味着Arduino可以向其它电路元器件提供电流,也就是说,Arduino引脚在输出(OUTPUT)模式下可以点亮LED或者驱动电机(如果被驱动的电机需要超过40mA的电流,Arduino将需要三极管或其它辅助元件来驱动他们)。
设置Arduino引脚为输入(INPUT)模式
当引脚设置为输入(INPUT)模式时,引脚为高阻抗状态(100兆欧),此时该引脚可用于读取传感器信号或开关信号。 注意:当Arduino引脚设置为输入(INPUT)模式或者输入上拉(INPUT_PULLUP)模式,请勿将该引脚与负压或者高于5V的电压相连,否则可能会损坏Arduino控制器。
设置Arduino引脚为输入上拉(INPUT_PULLUP)模式
在数字电路中,上拉电阻(英语:Pull-up resistors)是当某输入端口未连接设备或处于高阻抗的情况下,一种用于保证输入信号为预期逻辑电平的电阻元件。他们通常在不同的逻辑器件之间工作,提供一定的电压信号。 Arduino 微控制器自带内部上拉电阻,如果你需要使用该内部上拉电阻,可以通过pinMode()将引脚设置为输入上拉(INPUT_PULLUP)模式。 注意:当Arduino引脚设置为输入(INPUT)模式或者输入上拉(INPUT_PULLUP)模式,请勿将该引脚与负压或者高于5V的电压相连,否则可能会损坏Arduino控制器。
上拉电阻的作用
在上拉电阻所连接的导线上,如果外部组件未启用,上拉电阻将“微弱地”将输入电压信号“拉高”。当外部组件未连接时,对输入端来说,外部“看上去”就是高阻抗的,这时,通过上拉电阻可以将输入端口处的电压拉高到高电平,如果外部组件启用,它将取消上拉电阻所设置的高电平,通过这样,上拉电阻可以使引脚即使在未连接外部组件的时候也能保持确定的逻辑电平。
digitalWrite()
如果该引脚通过pinMode()设置为输出模式(OUTPUT),您可以通过digitalWrite()语句将该引脚设置为HIGH(5伏特)或LOW(0伏特/GND)。 如果该引脚通过pinMode()设置为输入模式(INPUT),当您通过digitalWrite()语句将该引脚设置为HIGH时,
这与将该引脚将被设置为输入上拉(INPUT_PULLUP)模式相同。 请注意: 比起其它数字引脚,数字引脚13由于内部串联了一个LED并焊接了一个限流电阻,所以该引脚比其他引脚更不易用来实现数字输入功能,如果将数字引脚13设置为输入上拉(INPUT_PULLUP)模式,该引脚将会悬在1.7 伏特而不是正常的高电平5伏特,如果必须使用引脚13做为数字输入,请将该引脚配合外部下拉电阻使用。
语法
digitalWrite(pin, value)
参数
pin:引脚号码
基础案例3
让LED灯点亮1秒,然后熄灭1秒,如此往复。
程序实现代码
- void setup(){
- pinMode(3, OUTPUT);//定义3号数字管脚类型为输出
- }
- void loop(){
- digitalWrite(3,HIGH);//将3号数字管脚设置为高电平
- delay(1000);//延迟1秒,在这1秒钟,LED灯状态保持不变,即点亮状态
- digitalWrite(3,LOW);//将3号数字管脚设置为低电平
- delay(1000);//延迟1秒,在这1秒钟,LED灯状态保持不变,即熄灭状态
- }
复制代码
delay()
delay()函数可用于暂停程序运行,暂停时间可以由delay()函数的参数进行控制,单位是毫秒(1秒钟=1000毫秒)
语法
delay(ms)
参数
ms: 暂停时间,该时间单位是毫秒( unsigned long型数据)
返回值
返回值:无 |