Video:
Processing Code:
import processing.serial.*; Serial teensySerial; int val=0; int r = 0; int g=0; int b=0; int shapeX=0; int shapeY=0; int shapeSize=0; void setup() { frameRate(30); size(600, 600); printArray(Serial.list()); String portName= Serial.list()[12]; teensySerial= new Serial(this, portName, 9600); while (teensySerial. available() > 0) { teensySerial.read(); } } void draw() { if (teensySerial.available() > 0) { val = teensySerial.read(); if (val==0) { r = 200; g=0; b=0; } else if (val ==1) { r=200; g=200; b=0; } else if (val==2) { r=0; g=200; b=0; } else if (val==3) { r=0; g=200; b=200; } } noStroke(); fill(r, g, b); rect(0, 0, 600,600); }
Arduino Code:
int ledPins[4] = {29, 30, 31, 32};
int potPin = A18;
int potVal = 0;
int ledSpeed = 0;
void setup() {
Serial.begin(9600);
for (int i = 0; i < 4; i++) {
pinMode (ledPins[i], OUTPUT);
}
}
void loop() {
Serial.write(1);
potVal = analogRead(potPin);
ledSpeed = map(potVal, 0, 1023, 100, 700);
for (int i = 0; i < 4; i++) {
digitalWrite(ledPins[i], HIGH);
Serial.write(i);
delay(ledSpeed);
digitalWrite(ledPins[i], LOW);
}
}