树莓派与Arduino串口通信
2015-02-06 14:53
274 查看
树莓派与Arduino之间的串口连接其实非常简单,条件允许的话就直接用树莓派的串口连接arduino的USB转串口。
在arduino端的程序
树莓派端的程序:
运行结果如图:
在arduino端的程序
String recv=""; int led=3; void setup() { pinMode(led,OUTPUT); Serial.begin(9600); Serial.println("Hello,Mr. Pi"); Serial.flush(); } void loop() { if(Serial.available()>0) { while(Serial.available()>0) { recv +=char(Serial.read()); //Serial.print("character receive: "); // Serial.println(number,DEC); digitalWrite(led,HIGH); delay(100); digitalWrite(led,LOW); delay(100); } if(recv.length()>0) { Serial.println("I received: "+recv); recv=""; } } else { digitalWrite(led,HIGH); delay(1000); digitalWrite(led,LOW); delay(1000); } Serial.flush(); }在树莓派端采用python的serial模块编程,如果没有安装改模块,可以使用pip install python-serial命令来安装该模块。
树莓派端的程序:
import serial import time data="" ser=serial.Serial("COM5",9600) ser.flushInput() ser.flushOutput() def recv(serial): while True: data=ser.read(1) if data=="": continue while 1: n=ser.inWaiting() #print n if n>0: data+=ser.read(n) time.sleep(0.1) else: break return data def main(): while True: try: data=recv(ser) print data ser.flushInput() send=raw_input("input your message to Mr. Arduino:") ser.write(send) #data=recv(ser) #print data except KeyboardInterrupt: ser.close() if __name__=="__main__": main()
运行结果如图:
相关文章推荐
- Java:arduino 串口通信,关键——有耐心
- Arduino 的串口通信
- 树莓派与arduino串行通信
- 开辟线程进行pc(ubuntu)和arduino串口通信的python程序
- Arduino-Stm32-树莓派-C-C++-Python-LabVIEW
- 最近业余研究arduino和树莓派
- 树莓派、 Arduino 、传统单片机开发板该如何选择?
- Arduino VS 树莓派:哪个才是你的菜?
- 使用串口连接Arduino与树莓派开发板
- 通过modbus协议实现arduino与电能表串口通信(仅03功能)
- 树莓派与Arduino Leonardo使用NRF24L01无线模块通信之基于RF24库 (三) 全双工通信
- 使用Win32 API函数实现vc和arduino简单串口通信 2
- Arduino与树莓派(RaspberryPi)有什么区别
- 树莓派(Arduino)仿真软件 —— Fritzing
- 树莓派与arduino结合控制舵机实现灵活监控
- 自动跟随机器人教程(一)(树莓派、Arduino教程)
- Visual Stdio 2010中新建WPF与Arduino进行串口通信
- 树莓派体验11 - 串口通信
- 容器和 Unikernel 能从树莓派和 Arduino 学到什么?
- Arduino应用笔记(三)这一篇和(二)方法不同:Matlab利用串口通信控制Arduino点亮LED