Arduino如何使用串行监视器

串行监视器在调试Adduino程序的时候非常有用,这个教程中我们会一步一步地学会如何使用这个利器。

这个教程非常简单,但是如果你是一个Arduino新手,可能在开始的时候会有些困惑,不用担心,耐心读完你就会明白了。

为了更直观一些,我们会构建一个简单的电路来演示串行监视器的输入和输出。

Arduino串行监视器设备列表

我们使用的元器件非常简单,列在下面。

  •  Arduino Uno
  •  100欧姆电阻
  •  一个红色的LED
  •  面包板
  •  一些面包板线

Arduino串行监视器电路连接图

我们的电路是超级简单,只包含一个LED,我们从串行监视器中输入和输出数据来控制这个LED灯的闪灭。

通过下面的步骤可以轻松连接电路,如果有任何困难,可以参考电路图。

1、 将红色LED的正极引线连接到第2针

2、将一个100欧姆的电阻从负极引线连到Arduino的地线上

Arduino串行监视器代码

Arduino串行监视器实验的代码非常简单,目的是展示怎么用串行监视器显示数据和输入数据。

我将解释每一行代码,这样你就会知道在之后怎么用这些方法调试arduino.

首先,我们为LED初始化一个整数变量,这是连接LED的引脚号。我们还初始化了一个名为count的变量,这将存储LED的开启或关闭时间。

int redLedPin = 2;
int count = 0;

在setup函数中,我们首先设置redLedPin作为输出,以便我们可以关闭和打开它。

接下来我们调用serial.begin函数,参数值为9600,我们要设置的值被称为比特率。

波特率可以设置为很多不同的速率,但我们用9600,因为这是默认值,并且可以在大多数设备上使用,不会出现任何问题。调用这个函数非常重要,否则你无法与Arduino通信。

接下来,我们等待串行接口初始化并连接到计算机。然后我们调用一个名为Serial.println()的函数。我们可以用这个函数打印一行字到Arduino的串行显示器上。这将打印文本,然后开始新的一行,用于下一个输入或输出。

void setup() {
  pinMode(redLedPin, OUTPUT);
  Serial.begin(9600);
  while (! Serial);
  Serial.println("Enter Y to turn on the LED:");
}

最后,我们设置loop函数,这个函数会不断的循环,直到有新的程序上传或者Arduino被关闭。

在loop函数里面,我们写一个if语句,检查是否有数据在串行缓冲区中等待;Serial.available。简单来说,我们是在检查是否向它发送了数据,如果有数据,我们就执行if语句。

接下来,我们创建一个名为ch的变量,并调用Serial.read(),我们通过它获取在串行缓冲区中的数据。请记住,这个函数只会让我们得到Arduino传入的数据的第一个字节,如果你想得到整个字符串,需要使用类似Serial.readString函数。

如果数据的字节是y或n,我们就执行相关的if语句,在这里,你会看到我们改变了LED引脚的输出为High或Low,然后打印出一系列的语句。

这里有两点需要注意。Serial.println打印数据并转到新的行,而Serial.print打印数据,但输出时会在同一行。

你还会注意到你可以打印变量,比如下面代码中的count例子,这样可以在数据处理的时候调试数据的值。

最后,延迟一秒,并在count上加1,这段代码向你展示了一个向变量添加数据然后通过串行输出打印的例子。

void loop(){
  if (Serial.available()){
    char ch = Serial.read();
    if (ch == 'y' ||	ch == 'Y'){
      digitalWrite(redLedPin, HIGH);
      Serial.println("You have turned on the LED!!");
      Serial.print("The LED was off for ");
      Serial.print(count);
      Serial.println(" seconds");
      Serial.println("If you want to switch it off, simply enter N or n!");
      count = 0;
    }
    if (ch == 'n' ||	ch == 'N'){
      digitalWrite(redLedPin, LOW);
      Serial.println("You have turned off the LED!!");
      Serial.print("The LED was on for ");
      Serial.print(count);
      Serial.println(" seconds");
      Serial.println("If you want to switch it on, simply enter Y or y!");
      count = 0;
    }
  }
    delay(1000);
    count += 1;
}

在下一部分,我将向你展示如何连接、接收和发送数据到Arduino。

连接、接收和发送数据到Arduino

现在代码已经上传到了Arduino,我们打开Arduino的串行监视器。这很简单,只有几个步骤需要解释。

要打开串口监视器,点击Tools,然后选择serial monitor。另外,CTRL+SHIFT+M快捷键也会弹出同样的窗口。单需要确保已经连接到Arduino,否则窗口无法打开。

 

打开后的窗口是这样的

 

在这个屏幕的顶部,有一个输入区域。在这里您可以输入并发送文本到Arduino。要发送你输入的文本,只需按发送按钮即可。

下面是输出窗口,所有Arduino发送给我们的数据都会显示在这里。如果你使用的是上面的示例代码,能够看到Serial.println函数中的文本。

在屏幕的底部,有三个不同的选项。

  • 第一个是非常明了,禁用自动滚动。
  • 第二个是行结束选项,可以设置显示器在你输入/发送到Arduino的内容后自动附加一个行结束符号。
  • 第三个是我们上面提到过的波特率,确保这里设置的和程序里设置的是一致的,如果设置的不一致会出现乱码。

现在,你应该完全理解了Ardunio串行监视器是怎么使用的了,如果有不明白的地方欢迎留言讨论。

 

 

 

平均: 4.5 / 5. votes: 6

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » Arduino如何使用串行监视器

赞 (4)

2 评论

5+7=

  1. 匿名

    就是必须连接上板子才能用监视器对吧

    回复