开源中文网

您的位置: 首页 > 树莓派 > 正文

RaspberryPi2树莓派USB转串口连接Arduino

来源: csdn博客  作者: win_lin

PI通过USB转串口连接Arduino

我用树莓派2连接Arduino,然后通过Arduino控制继电器和其他设备。 
树莓派连接Arduino大致有几种方法:

  1. TTL串口直接连接,有人说需要转电平,我没有试。
  2. I2C或SPI连接,我没有试。
  3. USB转TTL后,TTL连接Arduino,我用的这种方法。

下面是用到的各种物件:

  1. 树莓派2:http://item.jd.com/1646034971.html
  2. USB转TTL串口PL2303:http://item.jd.com/1647505472.html
  3. Arduino UNO r3:http://item.jd.com/1400590582.html
  4. 各种线:http://item.jd.com/1656731340.html

连接方法:

  1. 树莓派通过EDUP8505无线网卡连接到家里的WIFI路由器,就能作为家里各种传感器和单片机的网关了。连接方法参考Raspberrypi自动连接WIFI
  2. 树莓派通过PL2303,即USB口插树莓派上,TTL串口插Arduino上。同时树莓派(5V2A)可以给Arduino供电(5V30mA),树莓派的电源是通过插线板的USB供电的。
  3. Arduino可以连接其他的模块,譬如无线继电器,接收树莓派的指令,控制开关的开启和关闭,实现加热的功能。还可以有其他的。

Arduino程序

Arduino上可以写个简单的ECHO串口程序,即收到数据时亮LED灯,同时将收到的数据发送出来:
void setup() {
  pinMode(13, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  // now data from serial, turn off the LED.
  if (Serial.available() <= 0) {
    digitalWrite(13, LOW);
    delay(100);
    return;
  }

  // echo the serial data.
  Serial.print((char)Serial.read());
  digitalWrite(13, HIGH);
  delay(50);
}

注意:我们使用的是115200波特率,如果使用Arduino的串口窗口,记得改成这个波特率。这个是树莓派比较常用的波特率。 
备注:可以使用Arduino的串口调试窗口,将代码Upload,可以发送字符串给Arduino,如果能正常ECHO,那么就没有问题了。
 

Arduino连接PI2

PL2303的接口有五个:

  1. VCC5V: 这个是5V电源输出,这个接Arduino的VIN(即外接电源入口)。下图黄线。
  2. GND:这个接地,必须接Arduino的GND。下图灰线。
  3. RX:接Arduino的TX,即引脚1. 下图蓝线。
  4. TX:接Arduino的RX,即引脚0. 下图绿线。
  5. VCC3.3V:这个没有用到。

接完后如下图:

PL2303接线图

来张大图特写:

PL2303接线

PI2读USB串口

PL2303连接树莓派,即USB插上树莓派后,可以登录到树莓派查看设备:

winlin@raspberrypi:~$ lsusb
Bus 001 Device 013: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
  • 1
  • 2
  • 1
  • 2

可以看到这个PL2303的USB设备是有驱动的,可以直接用这个设备:

winlin@raspberrypi:~$ ll /dev/ttyUSB0 
crw-rw---- 1 root dialout 188, 0 Jan 19 16:00 /dev/ttyUSB0
  • 1
  • 2
  • 1
  • 2

备注:可以让树莓派自动汇报IP,用WIFI登录上去。

再树莓派上下载代码,和串口通信:

git clone https://github.com/winlinvip/raspi-tools.git &&
sudo python raspi-tools/raspi-pl2303.py
  • 1
  • 2
  • 1
  • 2

可以看到输出:

PI: Hello, Arduino, this is RaspberryPi 2.0~
. . . . . . . . . . . . . . . . . . . . . . .
Arduino: Hello, Arduino, this is RaspberryPi 2.0~
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

这个就是串口通信完成了,可以将这两个程序改成需要的方式,进行特定的控制了。

最后,来一张总图像: 
PI2-Arduino

接下来就可以做具体的控制了。

Tags:树莓 串口
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明