注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

沙粒的博客

 
 
 

日志

 
 

JoyStick shield V1.A板 按键测试  

2015-11-01 01:14:54|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、程序功能:

1、将JoyStick shield V1.A板,插接到arduino UNO板,操作各按键,读取数字端口数据,发送processing6个按键对应2~7脚;图片见相册 joystick

 

二、通信协议

1、开始字符s;数字端口名称字符串pin2~pin7,结束字符e;

2、发送数据格式:开始字符+端口名称+端口数据+结束字符;

 

三、程序

1arduino

 

int pin2 = 2;

int pin3 = 3;

int pin4 = 4;

int pin5 = 5;

int pin6 = 6;

int pin7 = 7;

 

 

void setup() {

  Serial.begin(9600);

  pinMode(pin2, INPUT);

  pinMode(pin3, INPUT);

  pinMode(pin4, INPUT);

  pinMode(pin5, INPUT);

  pinMode(pin6, INPUT);

  pinMode(pin7, INPUT);

}

 

void loop() {

  for (int i = 2; i <8; i++) {

    String senddata = "s";

    senddata += "pin";

    senddata += char(i);

    senddata += char(digitalRead(i));

    senddata += "e";

    Serial.println(senddata);

    delay(5);

  }

}

 

2processing端程序

import controlP5.*;

 

import processing.serial.*;

 

ControlP5 cp5;

 

 

 

 

color gray, red, green;

color lampcolor2, lampcolor3, lampcolor4, lampcolor5, lampcolor6, lampcolor7;

 

 

Serial myport;

String instring;

char  cstart, cend;

boolean flag, fget;

 

void setup() {

  size(950, 600);

  gray=color(100);

  red=color(250, 0, 0);

  green=color(0, 0, 250);

  lampcolor2=gray;

  lampcolor3=gray;

  lampcolor4=gray;

  lampcolor5=gray;

  lampcolor6=gray;

  lampcolor7=gray;

 

  cp5 = new ControlP5(this);

 

  cp5.setFont(createFont("ArialMT-20", 20)) ;

 

 

  cp5.addTextlabel("label2")

    .setText("pin2")

      .setPosition(80, 110) ; 

  cp5.addTextlabel("label3")

    .setText("pin3")

      .setPosition(230, 110) ;  

  cp5.addTextlabel("label4")

    .setText("pin4")

      .setPosition(380, 110) ;

  cp5.addTextlabel("label5")

    .setText("pin5")

      .setPosition(530, 110) ;

  cp5.addTextlabel("label6")

    .setText("pin6")

      .setPosition(680, 110) ;

  cp5.addTextlabel("label7")

    .setText("pin7")

      .setPosition(830, 110) ;

 

 

 

  println(Serial.list()); 

  myport = new Serial(this, Serial.list()[1], 9600);

  cstart='s';

  cend='e';

  flag=false;

  instring="";

  fget=false;

}

 

 

void draw() {

 

  fill(lampcolor2); 

  ellipse(100, 200, 100, 100);  

 

  fill(lampcolor3); 

  ellipse(250, 200, 100, 100);  

 

  fill(lampcolor4); 

  ellipse(400, 200, 100, 100);  

 

  fill(lampcolor5); 

  ellipse(550, 200, 100, 100); 

 

  fill(lampcolor6); 

  ellipse(700, 200, 100, 100);

 

  fill(lampcolor7); 

  ellipse(850, 200, 100, 100);

}

 

//串口事件接收字符串,解析字符串

void serialEvent(Serial port) {

  char  inchar = port.readChar();

 

 

  if (inchar==cstart && fget==false) {

    flag=true;

    return;

  }

 

  if (inchar==cend) {

    flag=false;

    fget=true;

    println("in string="+instring);

  }

 

  if (flag==true) {

    instring+=str(inchar);

  }

 

  //解析字符串

  if (fget==true) {

    fget=false;

    if (instring.startsWith("pin")) {     

      int pin=instring.charAt(3);

      state=instring.charAt(4);

      instring="";

 

      switch(pin) {

      case 2: 

        if (state==1) {

          lampcolor2=green;

        } else {

          lampcolor2=red;

        }

        break;

 

      case 3:   

        if (state==1) {

          lampcolor3=green;

        } else {

          lampcolor3=red;

        }

        break;

 

      case 4:   

        if (state==1) {

          lampcolor4=green;

        } else {

          lampcolor4=red;

        }

        break;

 

      case 5:   

        if (state==1) {

          lampcolor5=green;

        } else {

          lampcolor5=red;

        }

        break;

 

      case 6:   

        if (state==1) {

          lampcolor6=green;

        } else {

          lampcolor6=red;

        }

        break;

 

      case 7:   

        if (state==1) {

          lampcolor7=green;

        } else {

          lampcolor7=red;

        }

        break;

      }

    }

  }

}

 

  评论这张
 
阅读(230)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017