13号引脚的LED控制就属于数字I/O输出控制,本节介绍数字I/O输入的使用。
1.实验原理
本节实例是在2号引脚加一个按键开关,当按下按键时,13号引脚的LED点亮,同时通过串口发送合计的按键次数,当松开按键时,LED熄灭。
2.硬件连接
将按键的一端接2号引脚,另一端接地,同时为保持2号引脚输入状态的稳定,加1个5.1kΩ的上位电阻在2号引脚。另外不要忘了把 Arduino 连接在计算机上,实例电路如图1-58所示。
图1-58 数字I/O口实例电路
3.程序代码
/***********************************************
数字I/O口实例程序
按键在2号引脚
按下按键时,13号引脚的LED点亮,同时通过串口发送合计的按键次数,当松开按键时,LED熄灭。
This example code is in the public domain.
***************************************************/
int keysum=0; //按键次数
/***************************************************
初始化部分——Setup()函数
***************************************************/
void setup()
{
//设置串口波特率为9600bps;
serial.begin(9600);
//设置13号引脚为输出
pinmode(13,OUTPUT);
//设置2号引脚为输入
pinmode(2,INPUT);
}
/*************************************************
执行部分——loop()函数
****************************************************/
void loop()
{
//判断按键是否被按下
if(LOW==digitalRead(2))
{
//延时去抖
delay(50);
if(LOW==digitalRead(2))
{
//点亮LED
digitalwrite(13,HIGH)
keySum++;
//发送按键次数
serial.pront(keySum,DEC);
while(1)
{
//判断是否松开按键
if(HIGH==digitalRead(2))
{
//延时去抖
delay(50);
if(HIGH==digitalRead(2))
break;
}
//熄灭LED
digitalWrite(13,LOW);
}
}
}