RaspberryPi2树莓派USB转串口连接Arduino

来源:互联网 发布:mysql 错误日志路径 编辑:程序博客网 时间:2024/05/20 03:40

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:~$ lsusbBus 001 Device 013: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

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

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

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

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

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

可以看到输出:

PI: Hello, Arduino, this is RaspberryPi 2.0~. . . . . . . . . . . . . . . . . . . . . . .Arduino: Hello, Arduino, this is RaspberryPi 2.0~

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

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

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

1 0
原创粉丝点击