python和arduino串口通信_Arduino 和 Python 之间的第一次串行通信

在第一个例子中,从 Arduino 设备开始基本的串行写操作。

void setup() {

// put your setup code here, to run once:

Serial.begin(9600);

}

void loop() {

// put your main code here, to run repeatedly:

Serial.println("Hello World!");

delay(100);

}

在 setup() 中,函数 Serial.begin(9600) 设置串行数据通信的波特率。在此示例中,使用 9600 的波特率。其他值可以在这里阅读: Arduino Serial.begin() 函数

在 loop() 中,我们要发送的第一条消息是 Hello World!。此消息通过 Serial.println("Hello World!") 传输,因为它将以 ASCII 格式将此字符串发送到串行端口。在消息的末尾,有 Carriage Return (CR, \r) 和 Newline character (\n)。此外,每次程序打印到串行端口时都会使用 100 毫秒的延迟。

接下来,通过 COM 端口上传此 Arduino 草图(请记住此 COM 端口号,因为它将在 Python 程序中使用)。

读取 Arduino 设备发送的串行数据的 Python 程序如下所示:

import serial

import time

ser = serial.Serial('COM8', 9600)

while (1):

print ser.readline()

time.sleep(0.1)

首先,应该导入 pyserial 包。有关在 Windows 环境中安装 pyserial 的更多信息,请查看以下说明: 安装 Python 和 pyserial 。然后,我们用 COM 端口号和波特率初始化串口。波特率需要与 Arduino 草图中使用的波特率相同。

接收的消息将使用 readline() 函数在 while 循环中打印。这里也使用 100 毫秒的延迟,与 Arduino 草图相同。请注意,pyserial readline() 函数在打开串口时需要超时(pyserial documentation: PySerial ReadLine )。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值