새로운 과정을 보려면 Processing과 Arduino 사이의 연결을 만들어야합니다. 나는 특정 스위치가 켜져 있으면 직사각형이 처리에서 그려지기를 원한다.그리기 직사각형
여기에는 3 개의 스위치와 하나의 버튼이 있습니다. 세 개의 스위치는 빨강, 초록, 파랑의 색상을 나타냅니다. 그래서 사용자는 먼저 색상을 선택한 다음 te 버튼을 눌러 해당 색상으로 직사각형을 그려야합니다.
그런 다음 사용자는 해당 색상의 스위치를 켜고 다른 색상의 스위치를 켜고 스위치를 눌러 두 번째 사각형을 그릴 수 있어야합니다. 불행히도 나를 위해 일하지 않습니다.
한 개의 직사각형이 그려지면 다른 직사각형을 그릴 수 없습니다. 나는이 코드에 익숙하지 않기 때문에 코드가 매우 나쁘다면 미안하다!
내 아두 이노 코드 :
int switchPinRed = 21;
int switchPinGreen = 22;
int switchPinBlue = 23;
int buttonPinRect = 20;
void setup() {
pinMode(switchPinRed, INPUT); // Set pin 0 as an input
pinMode(switchPinGreen, INPUT);
pinMode(switchPinBlue, INPUT);
pinMode(buttonPinRect, INPUT);
Serial.begin(9600); // Start serial communication at 9600 bps
}
void loop() {
if (digitalRead(buttonPinRect) == HIGH) {
Serial.print(1);
}
else if (digitalRead(switchPinRed) == HIGH) {
Serial.print(2);
}
else if (digitalRead(switchPinGreen) == HIGH) {
Serial.print(3);
}
else if (digitalRead(switchPinBlue) == HIGH) {
Serial.print(4);
}
}
그리고 내 처리 코드 :
import processing.serial.*;
Serial myPort;
int val;
int[] rects = new int [3];
void setup()
{
size(600, 200);
String portName = Serial.list()[0];
myPort = new Serial(this, "/dev/tty.usbmodem3330431", 9600);
for (int i=0; i < 3; i++) {
rects[i] = 0;
}
}
void draw()
{
if (myPort.available() > 0) {
val = myPort.read();
}
background(255);
for (int i =0; i < 3; i++) {
if (val == 1) {
if (val == 2) {
fill(255, 0, 0);
} else if (val == 3) {
fill(0, 255, 0);
} else if (val == 4) {
fill(0, 0, 255);
}
rect(random(50), random(50), 100, 100);
}
}
}
'val'은 동시에 '1'과 다른 값일 수 없습니다. –
오, 고마워! 그리고 다른 방법으로 작동시키는 방식으로 다른 밸브를 어떤 방법으로 변경할 수 있습니까? –