首先,当然还是老样子,先要对所学的内容做准备。
硬件方面
具体包括如下:
- Arduino UNO电路板(1块)
- 面包板(1块)
- 10k电阻(1个)
- 按键开关(1个)
- 面包线(3根)
软件方面Arduino官方提供的IDE。
嗯!电路连接还是之前碰到的电路连接!简单吧!就剩下最后一步拉!
添加几行代码首先,还是新建一个项目窗口。
下面就不能再一样了,哈哈!!不过,虽说不一样了,但也只是综合了前面所学的相关知识。
// 定义按键的针脚号为2的整型常量const int buttonPin = 2; // 定义LED输入针脚号为13号针脚 // 注:此处我们使用的LED神灯是Arduino UNO电路板自带, // 此神灯对应的针脚号默认为13,此数值不得随意更改, // 所以这里定义的数值13是为了和默认值相对应。 const int ledPin = 13; // 定义用来记录按键次数的整型变量 int buttonPushCounter = 0; // 记录当前按键的状态 int buttonState = 0; // 记录按键之前的状态 int lastButtonState = 0; // 对Arduino电路板或相关状态进行初始化方法 void setup() { // 设置按键的针脚为输入状态 pinMode(buttonPin, INPUT); // 设置电路板上LED神灯的针脚状态为输出状态 pinMode(ledPin, OUTPUT); // 开启串行通信,并设置其频率为9600。 // 如果没有特别要求,此数值一般都为9600。 Serial.begin(9600); } // 系统调用,无限循环方法 void loop() { // 读取按键的输入状态 buttonState = digitalRead(buttonPin); // 判断当前的按键状态是否和之前有所变化 if (buttonState != lastButtonState) { // 判断当前按键是否为按下状态, // 如果为按下状态,则记录按键次数的变量加一。 if (buttonState == HIGH) { // 将记录按键次数的变量加一 buttonPushCounter++; // 向串口调试终端打印字符串“on”, // 表示当前按键状态为按下接通状态, // 输出完成之后自动换行。 Serial.println("on"); // 向串口调试终端打印字符串 // “number of button pushes: ”,此处没有换行。 Serial.print("number of button pushes: "); // 接着上一行尾部,打印记录按键次数变量的数值。 Serial.println(buttonPushCounter); } else { // 向串口调试终端打印字符串“off”, // 表示当前按键状态为松开状态,也即断开状态。 Serial.println("off"); } // 为了避免信号互相干扰, // 此处将每次按键的变化时间间隔延迟50毫秒。 delay(50); } // 将每次loop结束时最新的按键状态进行更新 lastButtonState = buttonState; // 每点击4次,更新一次LED神灯状态。 // 这里的百分号是求余数的意思, // 每次除以四,余数等于零说明按键点击的 // 次数是四的整数倍,即此时更新LED神灯。 if (buttonPushCounter % 4 == 0) { // 点亮LED神灯 digitalWrite(ledPin, HIGH); } else { // 熄灭LED神灯 digitalWrite(ledPin, LOW); } }
复制代码图片来源:Arduino官方IDE的文件编辑菜单选项
好!点击一下上图中标有向右指向的箭头图标,将编写好的代码烧入Arduino UNO电路板。然后点击上图中最右侧的放大镜图标,打开串口调试窗口,如下图所示。
图片来源:Arduino串口调试窗口
此时,当你每次按下或松开按键开关,都会打印相应的字符串,来显示当前的按键状态。而与此同时,Arduino UNO电路上的LED神灯,也会在你每按四次按键更新一次状态。
总结通过此次练习,我们没有加入任何新知识,总体而言,是对前面几次的学习进行了一次综合运用。如果哪一部分看起来有点儿头晕,可以温习一下过去的几次所学。嗯,加油!
下期预告一连几次总是学习按键开关,是不是有点腻了?嗯,猜到了!下一次,我们将一起学习新内容。以前呢,Arduino UNO这块憨厚老实的电路板,总是默默无闻的任你使唤。接下来,我们要让她发出自己的声音。答对了!我们要听听她那令人陶醉的歌喉!