|
Arduino开发板上的数字输入和输出(数字I / O)可以连接传感器、执行器和其他IC。学习如何使用它们,可以让您使用Arduino开发板做一些非常有用的事情,例如读取开关输入、点亮指示器和控制继电器输出。
数字信号 与模拟信号不同,模拟信号可以是一段数值范围内的任意值,而数字信号只有两个不同的值:HIGH(1)或LOW(0)。在输入或输出具有这两个值之一的情况下,您可以使用数字信号。例如,您可以使用数字信号的一种情况是点亮或熄灭LED。
函数 在本篇文章中,我们将使用的与数字信号相关的Arduino函数包含:
● pinMode() ● digitalRead() ● digitalWrite()
pinMode(pin_number,mode)
由于Arduino数字I / O引脚可用于输入或输出,因此您应首先使用此函数配置要用于数字I / O的引脚。pin表示您要配置的引脚编号。 mode必须是以下三个值之一:INPUT、OUTPUT、INPUT_PULLUP。当模式设置为INPUT_PULLUP时,如果外部没有连接到引脚,则在引脚内部连接一个20kΩ的上拉电阻,强制输入为高电平。
digitalWrite(pin_number,value)
该功能将数字值写入引脚。 pin指定将数字值写入哪个Arduino引脚,value是引脚设置的数字值。value必须是HIGH或LOW。
digitalRead(pin_number)
该函数从引脚读取数字值。 pin是要读取的数字I / O引脚的编号。此函数返回两个值之一:HIGH或LOW。
实验1:使用延迟闪烁LED 在本实验中,我们将使用数字输出点亮和熄灭LED。
需要的硬件 ● LED指示灯 ● 220欧电阻 ● Arduino UNO开发板 ● 面包板 ● 连接导线
接线图
上图显示了如何将LED和220欧姆电阻连接到Arduino。如图所示,LED通过电阻连接到Arduino的数字I / O引脚8。电阻控制通过LED的电流。下面的程序首先将引脚8配置为OUTPUT,然后将数字I / O引脚设置为高电平1000 ms,然后再设置为低电平持续1000 ms。
实验1的程序 - const int led = 8; //use digital I/O pin 8
- void setup()
- {
- pinMode(led,OUTPUT); //set pin 8 to be an output output
- }
- void loop()
- {
- delay(1000); //delay 1000 milliseconds
- digitalWrite(led,HIGH); //set pin 8 HIGH, turning on LED
- delay(1000); //delay 1000 milliseconds
- digitalWrite(led,LOW); //set pin 8 LOW, turning off LED
- }
复制代码
运行实验1 1. 将LED的正极连接到电阻器的一端,将电阻器的另一端连接到Arduino板上的数字I / O引脚8。
2. 将Arduino GND引脚连接到LED的阴极。
3. 使用USB线将Arduino连接到PC,然后使用Arduino IDE软件将程序传输到Arduino。
4. 使用电源、电池或USB电缆为Arduino板供电。
5. LED应该开始闪烁。
实验2:使用按键闪烁LED 该实验不仅将演示如何使用数字输出,还将演示数字输入。按下连接到数字输入的按钮将打开或关闭LED。该程序使用digitalWrite()和digitalRead()函数。
需要的硬件 ● LED指示灯 ● 220欧电阻 ● 按键 ● Arduino UNO开发板 ● 面包板 ● 连接导线
接线图
从上图中可以看出,我们使用两个Arduino数字I / O引脚。 LED连接到引脚8,引脚8配置为OUTPUT。按钮连接到引脚9,引脚9配置为INPUT。当有人按下按钮开关时,引脚9设置为HIGH,然后程序将引脚8的输出设置为HIGH并点亮LED。松开按钮可将引脚9重置为LOW。然后程序将引脚8设置为LOW,从而熄灭LED。
代码 - const int led = 8; //name pin 8 as led
- const int button = 9; //name pin 9 as button
- void setup()
- {
- pinMode(led,OUTPUT); //set pin 8 as OUTPUT
- pinMode(button,INPUT) ; //set pin 9 as INPUT
- }
- void loop()
- {
- int reads = digitalRead(button); //read the digital value on pin 9
- digitalWrite(led,reads); //set the digital output value of pin 8 to that value
- }
复制代码
运行实验2 1. 如图所示连接电路。 2. 使用USB线缆连接Arduino,使用Arduino IDE软件将程序烧写到Arduino中。 3. 使用电源、电池或USB电缆为Arduino开发板供电。 4. 按下按钮点亮LED,松开按钮熄灭LED。 |