双向通信-Processing接收字符串
Posted 村头陈师傅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双向通信-Processing接收字符串相关的知识,希望对你有一定的参考价值。
双向通信-Processing接收字符串
公众号:STCode
1-效果
在Processing里面画一个矩形,当在矩形区域内单击时,向Arduino发送字符’a’,Arduino接收到后点亮板载的LED灯,同时向Processing发送”The light turn ON“,Processing接收到后显示在屏幕的左上角。当单击矩形框外时,Processing向Arduino发送字符‘b’,Arduino板载的LED灯熄灭,与此同时向Processing发送“The light turn OFF”,Processing接收到字符串后显示在屏幕的左上角。
2-源代码
Processing端:
import processing.serial.*;//导入serial库
Serial myPort;//实例化一个Serial对象
int lf = 10;//换行符号的ASCII码值
String myString = null;//定义一个字符串变量
void setup()
size(300,300);//设置画布大小
background(125);//设置画布背景颜色
myPort = new Serial(this, "COM10", 9600);//初始化myPort(根据Arduino分配的端口号填写)
myPort.clear();
void draw()
rect(100,100,50,50);//绘制矩形
while (myPort.available() > 0)//监听端口
myString = myPort.readStringUntil(lf); //读字符串,直到出现换行符号后,将字符串赋值给myString变量
if(myString!=null)
background(125);//每次清空屏幕
text(myString,10,30);//灯光开启、关闭提示显示在屏幕左上角
void mouseClicked()
if((mouseX>=100)&(mouseX<=150)&(mouseY>=100)&(mouseY<=150))//当鼠标在矩形区域内单击时
myPort.write("a");//往串口发送字母a
else
myPort.write("b");//当在矩形区域外单击时,往串口发送字母b
Arduino端:
int c=0;
void setup()
Serial.begin(9600);//比特率9600
pinMode(13,OUTPUT);//设置数字引脚第13脚为输出模式
digitalWrite(13,LOW);//设置该引脚的初始值为低电平
void loop()
if(Serial.available())
c=Serial.read();
if(c==97)//如果接收到字母a(ASCII码值为97 )
digitalWrite(13,HIGH);//第13引脚置高电平,LED灯亮
Serial.println("The light turn ON");
else if(c==98)//如果接收到字母b(ASCII码值为98)
digitalWrite(13,LOW);//第13引脚置低电平,LED灯灭
Serial.println("The light turn OFF");//向Processing发送灯已关闭的字符串,结尾处有换行符号
3-演示
观察Arduino控制器,当点击白色方块内部时,板载的LED灯将点亮,当点击白色方块外部时,板载的LED灯将熄灭。
以上是关于双向通信-Processing接收字符串的主要内容,如果未能解决你的问题,请参考以下文章