Soul110 发表于 2016-2-24 15:56:14

OCROBOT进阶教程03——串口分别监听三个按键状态

本帖最后由 Soul110 于 2016-3-6 17:47 编辑

本教程说明了如何通过串口助手,监视三个按键(微动开关)状态。

硬件准备:
1、 ALPHA 并行扩展板
2、 ALPHA MEGA328-U
3、 ALPHA 微动开关模块

搭建电路
[*] ALPHA 8F328D-U模块插入并行扩展版1号槽位。
[*] ALPHA 微动开关模块插入并行扩展板2号槽位。
[*] USB线连接计算机与ALPHA 8F328D-U。
如图:



/*
DigitalReadSerial
读取数字接口D15、D16、D17的输入,并将结果显示在串口监视器
*/


int Button1 = 15;   //初始化按键,根据三个按键的引脚15、16、17,分别设置为1、2、3.
int Button2 = 16;
int Button3 = 17;

int buttonState1=LOW;    //初设定三个按键状态
int buttonState2=LOW;
int buttonState3=LOW;

void setup() {
Serial.begin(9600);// 初始化串口通讯为9600波特率

pinMode(Button1, INPUT); //初始化按键为输入模式
pinMode(Button2, INPUT);
pinMode(Button3, INPUT);
}

void loop() {
   if (digitalRead(Button1)!=buttonState1)      //读取按键1的状态,与设定的按键状态比较。若不相等,则进入下一步
    {   buttonState1 = digitalRead(Button1);   //把现在读取到的状态赋给设定的按键状态,
   if(buttonState1==HIGH)                     //如果现在的按键状态为高电平
      { Serial.println(Button1);             // 则将按下的按键引脚显示到串口:
         }
   }
   if (digitalRead(Button2)!=buttonState2)   //若读取到按键2的状态,则与设定的按键状态比较
   { buttonState2 = digitalRead(Button2);
       if(buttonState2==HIGH)
      { Serial.println(Button2);            
         }
   }
   if (digitalRead(Button3)!=buttonState3)   //若读取到按键3的状态,则与设定的按键状态比较
   { buttonState3 = digitalRead(Button3);
       if(buttonState3==HIGH)
      { Serial.println(Button3);            
       }
   }
}

效果如图:



当有按键按下的时候,串口助手会显示哪个按键按下了,以它的引脚来说明。


页: [1]
查看完整版本: OCROBOT进阶教程03——串口分别监听三个按键状态