首页 文章

用键盘处理到Arduino

提问于
浏览
1

我决定 Build 一个通过键盘(使用WASD)通过串口控制的远程呈现机器人 . 我一直在等待我的零件到达所以我开始做一些处理和使用WASD键来点亮LED的测试 .

import processing.serial.*;
import cc.arduino.*;
Serial myPort;
Arduino arduino;

void setup () {
  println(Arduino.list());
  arduino = new Arduino(this, Arduino.list() [1], 57600);
  arduino.pinMode(12, Arduino.OUTPUT);
  arduino.pinMode(11, Arduino.OUTPUT);
  arduino.pinMode(9, Arduino.OUTPUT);
  arduino.pinMode(10, Arduino.OUTPUT);
}

void draw() {
  if (keyPressed == true) {
    if (key == 'w' || key == 'W') {
      arduino.digitalWrite (12, Arduino.HIGH);
    }
    if (key == 's' || key == 'S') {
      arduino.digitalWrite (11, Arduino.HIGH);
    }
    if (key == 'a' || key == 'A') {
      arduino.digitalWrite (9, Arduino.HIGH);
    }
    if (key == 'd' || key == 'D') {
      arduino.digitalWrite (10, Arduino.HIGH);
    }
    else {
      arduino.digitalWrite (12, Arduino.LOW);
      arduino.digitalWrite (11, Arduino.LOW);
      arduino.digitalWrite (9, Arduino.LOW);
      arduino.digitalWrite (10, Arduino.LOW);
    }
  }
}

除非按下“D”键,否则一切正常 . 每当我按下它(或在最后一个中使用的任何其他字母)时,LED会亮起,但在我松开钥匙时不会关闭 . 我已经尝试更改LED引脚,“if”语句的顺序,但最后一个语句总是有同样的问题 . Arduino正在运行StandardFirmata草图 . 我使用的是Arduino Uno,Win 7 x64和Processing 1.5.1,因为2.0.2给了我一个错误 . 任何帮助都会很棒 .

谢谢

1 回答

  • 0

    您的'else'语句看起来像是错误的'if'块 . 根据你的目标,你应该拥有它,这样如果没有按下一个键,你就会把Arduino.LOW写到9-12针 . 基本上,只需移动一个支架:

    void draw() {
      if (keyPressed == true) {
        if (key == 'w' || key == 'W') {
          arduino.digitalWrite (12, Arduino.HIGH);
        }
        if (key == 's' || key == 'S') {
          arduino.digitalWrite (11, Arduino.HIGH);
        }
        if (key == 'a' || key == 'A') {
          arduino.digitalWrite (9, Arduino.HIGH);
        }
        if (key == 'd' || key == 'D') {
          arduino.digitalWrite (10, Arduino.HIGH);
        }
      }
      else {
          arduino.digitalWrite (12, Arduino.LOW);
          arduino.digitalWrite (11, Arduino.LOW);
          arduino.digitalWrite (9, Arduino.LOW);
          arduino.digitalWrite (10, Arduino.LOW);
        }
    }
    

相关问题