[Unity] unity arduino

查看:640 |回复:5 | 2016-11-22 11:02:47

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 大西几 于 2021-2-24 17:53 编辑

unity 结合串口通信链接arduino板子 通过Unity 控制输入输出,高低电平,随时通过Uniyt代码更改你要控制的信号口数据。
arduino代码如下:
(使用了常用的0-13信号口,没用模拟信号口)

#include<Servo.h>
int outputPin[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13};
char buffer1 [3];
char buffer2 [14];
int brightrness=0;
bool isShow=false;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  for(int thisPin=0;thisPin<15;thisPin++){
    pinMode(outputPin[thisPin],OUTPUT);
    }
}

void loop() {
  // put your main code here, to run repeatedly:



   if(isShow){
    if(Serial.available()>0){
    Serial.readBytes(buffer1,3);

    int erCiZhi1=0;
    if(buffer1[0]=='1')
    {erCiZhi1=10;}
    int erCiZhi2 =buffer1[1]-48;
    int erCiZhi = erCiZhi1+erCiZhi2;

    if(buffer1[2]=='1'){
//       Serial.println(erCiZhi);
           digitalWrite(erCiZhi,HIGH);
      }else if(buffer1[2]=='0'){
//       Serial.println(erCiZhi);
        digitalWrite(erCiZhi,LOW);
      }
while(Serial.read() >= 0){}
delay(10);
    }
   }

   if(isShow==false){
  if(Serial.available()>0){
    Serial.readBytes(buffer2,14);
    Serial.println(buffer2);
  for(int i=0;i<14;i++){
    if(buffer2=='1'){
      Serial.println('1');
      pinMode(outputPin,OUTPUT);
      }
      else if(buffer2=='2'){
        Serial.println('2');
        pinMode(outputPin,INPUT);
        }
    }
    isShow=true;
    while(Serial.read() >= 0){}
    delay(10);
  }
   }


}
image.png

评分

参与人数 2元素币 +10 活跃度 +1 展开 理由
幺九 + 1 【封面】或展示不规范,请尽快补充,否则会被移出资源区!
狼之独步 + 10

查看全部评分

2016-11-22 11:02:47  
 赞 赞 0

使用道具 登录

5个回答,把该问题分享到群,邀请大神一起回答。
2#
{:1_144:}有意思
回复 收起回复
2016-11-22 12:28:13   回复
 赞 赞 0

使用道具 登录

3#

学习了 支持了
回复 收起回复
2016-11-25 11:42:39   回复
 赞 赞 0

使用道具 登录

4#

感谢分享
回复 收起回复
2018-10-30 09:08:05   回复
 赞 赞 0

使用道具 登录

5#
元素那么大,我想来看看!
回复 收起回复
2018-10-30 09:09:32   回复
 赞 赞 0

使用道具 登录

6#
非常好的东西,谢谢分享
回复 收起回复
2018-10-30 11:09:45   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

Unity3D技术手机游戏引擎手游引擎
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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