极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13912|回复: 2

关于arduino和processing的串口通信···········

[复制链接]
发表于 2016-3-14 04:15:47 | 显示全部楼层 |阅读模式
我写了一个arduino和processing串口通信例子,鼠标在processing窗口移动会导致arduino的面包板上不同数量led发光,然后无论怎么修改都实现不了,求各位大神给点建议,谢谢
processing

import processing.serial.*;
Serial Port;        // The serial port

void setup()
{
  size(640,480);

Port = new Serial(this,"COM3",9600);
  

}

void draw()
{  
  char temp;

  background(255,255,255);
  if(mouseX<width/2 && mouseY<height/2){
    rect(0,0,320,240);
    fill(0,0,255);
    temp=1;
    Port.write(temp);
   
      
  }
  
  if(mouseX>width/2 && mouseY<height/2){
    rect(320,0,320,240);
    fill(255,0,0);
    temp=2;
    Port.write(temp);
  }
  
   if(mouseX<width/2 && mouseY>height/2){
    rect(0,240,320,240);
    fill(0,255,0);
    temp=3;
    Port.write(temp);
  }
   
   if(mouseX>width/2 && mouseY>height/2){
    rect(320,240,320,240);
    fill(255,0,255);
    temp=4;
    Port.write(temp);
  }

}



Arduino

int ledPin1 = 11;
int ledPin2 = 10;
int ledPin3 = 9;
int ledPin4 = 8;

void setup() {
  Serial.begin(9600);
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
}


void loop() {
   if(Serial.available()>0){
      char temp= Serial.read();
    if(temp=='1'){
       digitalWrite(ledPin1, HIGH);
       digitalWrite(ledPin2, LOW);
       digitalWrite(ledPin3, LOW);
       digitalWrite(ledPin4, LOW);
    }
   
      if(temp== '2'){
       digitalWrite(ledPin1, HIGH);
       digitalWrite(ledPin2, HIGH);
       digitalWrite(ledPin3, LOW);
       digitalWrite(ledPin4, LOW);
    }
   
      if(temp=='3'){
       digitalWrite(ledPin1, HIGH);
       digitalWrite(ledPin2, HIGH);
       digitalWrite(ledPin3, HIGH);
       digitalWrite(ledPin4, LOW);
    }
   
      if(temp=='4'){
       digitalWrite(ledPin1, HIGH);
       digitalWrite(ledPin2, HIGH);
       digitalWrite(ledPin3, HIGH);
       digitalWrite(ledPin4, HIGH);
    }
  delay(1000);
  }
}

回复

使用道具 举报

发表于 2016-3-14 08:34:29 | 显示全部楼层
你先测试直接用串口工具发送 1 2 3 4到arduino上能否控制
回复 支持 反对

使用道具 举报

发表于 2016-3-14 09:26:12 | 显示全部楼层
if(temp=='1'){
       digitalWrite(ledPin1, HIGH);
       digitalWrite(ledPin2, LOW);
       digitalWrite(ledPin3, LOW);
       digitalWrite(ledPin4, LOW);
    }
‘1’改成1,其他的也一样。你processing端发送的是数值1,‘1’的ascii码不是1。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 05:43 , Processed in 0.035651 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表