用户工具

站点工具


ocrobot:alpha:kitone:tutorial05

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
ocrobot:alpha:kitone:tutorial05 [2019/07/15 02:22] – [Digital Read Serial(读取数字口输入)] 董凯萍ocrobot:alpha:kitone:tutorial05 [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +~~NOTOC~~
 +====== Digital Read Serial(读取数字口输入) ======
  
 +<WRAP left round info 100%>
 +这个例子教你怎样用控制器的USB端口,通过串口监视开关状态。
 +</WRAP>
 +
 +<WRAP left round box 100%>
 +===== ALPHA MEGA328-U核心 =====
 +==== 硬件 ====
 +  * [[ocrobot:alpha:parallelexpansion:index|ALPHA 并行扩展板]]
 +  * [[ocrobot:alpha:mega328-u:main|ALPHA MEGA328-U]]
 +  * [[ocrobot:alpha:microswitch:index|ALPHA 微动开关模块]]
 +==== 搭建电路 ====
 +
 +  - ALPHA MEGA328-U模块插入并行扩展版1号槽位。
 +  - ALPHA 微动开关模块插入并行扩展板2号槽位。
 +  - USB线连接计算机与ALPHA MEGA328-U。
 +{{ocrobot:alpha:kitone:按键435.png?nolink|}}
 +==== 代码 ====
 +<code cpp>
 +    
 +/*
 +  DigitalReadSerial
 +  读取数字接口D15的输入,并将结果显示在串口监视器
 +*/
 +
 +int pushButton = 15;// 数字口15 连接一个按钮开关,给它命名.
 +
 +void setup() {
 +  Serial.begin(9600); // 初始化串口通讯为9600波特率
 +  pinMode(pushButton, INPUT); // 按键脚作为输入
 +}
 +
 +void loop() {
 +  int buttonState = digitalRead(pushButton); // 读取按钮状态:
 +  Serial.println(buttonState);  // 显示到串口:
 +  delay(1);        // 为了稳定输入状态,使两次读数之间延时1毫秒
 +}
 +</code>
 +</WRAP>
 +<WRAP left round tip 100%>
 +这个例子中我们使用了两个新的函数:[[reference:language:serial_begin|Serial.begin()]]、[[reference:language:serial_println|Serial.println()]]
 +\\ [[reference:language:serial_begin|Serial.begin()]]用于初始化串口,[[reference:language:serial_println|Serial.println()]]用来输出数据到串口,并且以换行符结尾。
 +输出数据如果结尾不需要换行符,可以使用[[reference:language:serial_print|Serial.print()]]
 +</WRAP>
 +
 +<WRAP left round help 100%>
 +微动开关模块中,接开关的3个引脚分别为D15,D16,D17。如何把三个按钮的状态,都通过串口输出?
 +</WRAP>
 +==== 练习题代码 ====
 +<code cpp>
 +/*
 +  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);            
 +       }
 +     }
 +}
 +</code>
 +[[ocrobot:alpha:kitone:main|返回上一级]]
ocrobot/alpha/kitone/tutorial05.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1