欢迎光临
我们一直在努力

数字部分-数字上拉通信

这个示例用到了pinMode()里面的INPUT_PULLUP,它通过电脑和主控板之前的串口通信监控开关的状态。

此外,当输入状态是HIGH的时候,13号引脚的板载LED会点亮;当LOW的时候,板载LED会关闭。

硬件需求

—Arduino控制板

—按键开关

—杜邦线或面保线

—面包板

电路

clip_image002

用两根面包线连接主控板和面包板,黑色面包线连接控制板GND和按键一脚,另一根连接2号引脚和按键另一个脚。

当你按下按键的时候,这两个脚就会连起来。当你松开按键的时候,这两个脚就会断开。因为2号引脚的内部上拉被激活且连接着5V,当按键松开时候,我们读取到HIGH。当按键关闭时候,我们读取到哦LOW,因为电路接地了。

原理图

clip_image004

代码

在下面的代码中,最先需要的是设置你控制板和电脑通信之间串口通信频率。

Serial.begin(9600);

第二步,定义数字引脚2的模式,internal pull-up。

pinMode(2,INPUT_PULLUP);

现在你的设置过程已经结束了,我们进入循环环节。当开关没按下的时候,上拉电阻连接着5V,这个使得Arduino读取到1或者HIGH。当你按下按键的时候,arduino的引脚拉到地,导致Arduino读取到0或者LOW。

在loop函数里面你要做的第一件事就是准备一个变量来存储你开关的状态。因为读取到的信息不是1就是0,所以可以用整形int来做为数据格式。我们叫这个变量叫sensorValue,然后无论2号引脚读取到什么都赋值给它,我们用一行代码就可以完成。

int sensorValue = digitalRead(2);

一旦Arduino读取到这个输入,就把它以十进制的方式输出在电脑的串口监视器上。你可以在最后的代码里用到Serial.println()函数。

Serial.println(sensorValue, DEC);

现在,当你打开Arduino的串口监视器的时候,就可以看到一长串的-,如果你按下开关,就能看到1。

连接13号引脚的LED会在1的时候点亮,0 的时候关闭。

void setup() {
//设置串口通信频率

Serial.begin(9600);
//设置2号引脚为输入模式并且激活内部上拉功能

pinMode(2, INPUT_PULLUP);

pinMode(13, OUTPUT);

}

void loop() {

//读取2号引脚的值

int sensorVal = digitalRead(2);

//输出值

Serial.println(sensorVal);

// 记住内部上拉是的按键状态在逻辑上是相反的,当

// 没有按下的时候是HIGH, 被按下的时候是LOW 设置LED的状态的时候也需要相反。

if (sensorVal == HIGH) {

digitalWrite(13, LOW);

} else {

digitalWrite(13, HIGH);

}

}

未经允许不得转载:Arduino-Maker » 数字部分-数字上拉通信

支付宝扫码打赏 微信打赏

原创文章,若帮到您,欢迎打赏

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

线上商城

中贝斯特创客空间蘑菇云创客教育