import processing.core.*; import cc.arduino.*; class LEDControl { final int comRate = 57600; Arduino arduino; boolean[] state = {false, false, false, false}; LEDControl(PApplet applet, int whichArduino) { // Arduino - initialize correct arduino String[] arduinos = Arduino.list(); if (arduinos.length == 0) { PApplet.println("There are no arduinos available for use."); applet.exit(); } else { PApplet.println("Available arduinos:"); for(int i = 0; i < arduinos.length; i++) { PApplet.println(arduinos[i]); } PApplet.print("Using arduino "); PApplet.println(arduinos[whichArduino]); this.arduino = new Arduino(applet, arduinos[whichArduino], comRate); for (Direction dir : Direction.values()) { this.arduino.pinMode(dir.pin, Arduino.OUTPUT); } } } boolean isActive(Direction dir) { return this.state[dir.index]; } public void turnOff(Direction dir) { this.arduino.digitalWrite(dir.pin, Arduino.LOW); this.state[dir.index] = false; } public void turnOn(Direction dir) { this.arduino.digitalWrite(dir.pin, Arduino.HIGH); this.state[dir.index] = true; } public void toggle(Direction dir) { if (isActive(dir)) { turnOff(dir); } else { turnOn(dir); } } public void allOn() { for (Direction dir : Direction.values()) { turnOn(dir); } } public void allOff() { for (Direction dir : Direction.values()) { turnOff(dir); } } enum Direction { LEFT (0, 10), RIGHT (1, 5), UP (2, 6), DOWN (3, 9); final int index, pin; Direction(int index, int pin) { this.index = index; this.pin = pin; } } }