Arduino + 按键开关实现简单的计数器

2018-11-252.1万
AI 快速预览详细 收起
本教程介绍了如何使用Arduino UNO和按键开关实现一个简单的计数器。所需材料包括Arduino UNO电路板、面包板、10k电阻、按键开关和面包线。通过连接电路并编写代码,可以统计按键被按下的次数,并在串口输出栏显示。适合零基础新手入门,无需复杂的编程知识。
Arduino + 按键开关实现简单的计数器
本实验用以下材料,简单实现一个按键次数的计数器,统计按键被按下的次数,现实在串口输出栏。
所用材料:
Arduino UNO电路板(1块)
面包板(1块)
10k电阻(1个)
按键开关(1个)
面包线(3根)
按照下图方式将元件和Arduino连接起来。
Arduino + 按键开关实现简单的计数器图1
在 Arduino IDE 中新建一个代码文件,输入下面的代码。代码的功能看注释就好了。
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

// 定义按键的针脚号为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,并打开串口调试窗口(放大镜图标)。
效果就是,当你每次按下或松开按键开关,都会打印相应的字符串,来显示当前的按键状态。而与此同时,Arduino UNO上的LED,也会在你每按四次按键更新一次状态。





创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
gada888
gada888
顶一个
- 没有更多了 -