스위치를 누르면 pc에 키보드가 입력되는 회로입니다.
아두이노는 우노보드입니다.
https://kocoafab.cc/make/view/638 이 코드를 가지고 수정해서 만들었습니다.
에러가 나지는 않는데 작동이 안됩니다.
아두이노 코드
byte buffer[1024];
int bufferPosition;
int sw = 2;
int led = 13;
void setup(){
Serial.begin(9600);
pinMode(sw,INPUT_PULLUP);
pinMode(led, OUTPUT);
}
void loop(){
if (digitalRead(sw) == LOW) {
Serial.write('a');
digitalWrite(led, HIGH);
}
else{
Serial.write('b');
digitalWrite(led, LOW);
delay(100);
}
}
프로세싱 코드
import processing.serial.*;
import java.awt.*;
import java.awt.event.KeyEvent;
Serial myPort;
boolean temp;
boolean flagX = false;
boolean flagY = false;
void setup() {
println(Serial.list());
println(Serial.list()[0]);
String portName = Serial.list()[0];
myPort = new Serial(this, portName, 9600);
myPort.bufferUntil('\n');
}
void draw() {
serialEvent(myPort);
}
void serialEvent(Serial myPort) {
String inputString = myPort.readStringUntil('\n');
try{
inputString = trim(inputString);
RobotTest(inputString);
}
catch(NullPointerException ne){
inputString = "0";
}
}
void RobotTest(String temp) {
try{
Robot robot = new Robot();
robot.setAutoDelay(10);
if(temp.equals("a")) {
robot.keyPress(KeyEvent.VK_S);
robot.delay(5);
robot.keyRelease(KeyEvent.VK_S);
}
if(temp.equals("b")) {
robot.keyPress(KeyEvent.VK_D);
robot.delay(5);
robot.keyRelease(KeyEvent.VK_D);
}
}
catch(Exception e){
}
}
계산대로라면 스위치를 눌렀을때 S가 출력되야하고, 땠을때 D가 출력되야하는데 아무것도 나오질 않네요
아두이노 led는 정상적으로 작동하는 걸 봐서는 회로문제는 아닌거같고
포트 번호도 맞게 입력했는데 어디에 틀린부분이 있는걸까요ㅠㅠ
|