Πέμπτη 4 Φεβρουαρίου 2010

Take control of 12 LEDs.. v2

..το πρόβλημα με τη σειρά λύθηκε..
..το θέμα τώρα είναι μια μικρή καθυστέρηση που νομίζω οτι υπάρχει κατά την εναλλαγή των LEDs..


arduino code:

int ledPin2 = 2;
int ledPin3 = 3;
int ledPin4 = 4;
int ledPin5 = 5;
int ledPin6 = 6;
int ledPin7 = 7;
int ledPin8 = 8;
int ledPin9 = 9;
int ledPin10 = 10;
int ledPin11 = 11;
int ledPin12 = 12;
int ledPin13 = 13;

int procByte[11]; //incoming byte

void setup(){
// initialize the serial communication:
// Serial.begin(9600);
Serial.begin(115200);

pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(ledPin7, OUTPUT);
pinMode(ledPin8, OUTPUT);
pinMode(ledPin9, OUTPUT);
pinMode(ledPin10, OUTPUT);
pinMode(ledPin11, OUTPUT);
pinMode(ledPin12, OUTPUT);
pinMode(ledPin13, OUTPUT);
}

void loop() {
// check if data has been sent from the computer:
if (Serial.available()>12) {
for (int i=0; i<12; i++) {
// read each byte
procByte[i] = Serial.read();

if (procByte[i] == 'A'){
digitalWrite(ledPin2, HIGH);
}
else if (procByte[i] == 'a'){
digitalWrite(ledPin2, LOW);
}
if (procByte[i] == 'B'){
digitalWrite(ledPin3, HIGH);
}
else if (procByte[i] == 'b'){
digitalWrite(ledPin3, LOW);
}
if (procByte[i] == 'C'){
digitalWrite(ledPin4, HIGH);
}
else if (procByte[i] == 'c'){
digitalWrite(ledPin4, LOW);
}
if (procByte[i] == 'D'){
digitalWrite(ledPin5, HIGH);
}
else if (procByte[i] == 'd'){
digitalWrite(ledPin5, LOW);
}
if (procByte[i] == 'E'){
digitalWrite(ledPin6, HIGH);
}
else if (procByte[i] == 'e'){
digitalWrite(ledPin6, LOW);
}
if (procByte[i] == 'F'){
digitalWrite(ledPin7, HIGH);
}
else if (procByte[i] == 'f'){
digitalWrite(ledPin7, LOW);
}
if (procByte[i] == 'G'){
digitalWrite(ledPin8, HIGH);
}
else if (procByte[i] == 'g'){
digitalWrite(ledPin8, LOW);
}
if (procByte[i] == 'H'){
digitalWrite(ledPin9, HIGH);
}
else if (procByte[i] == 'h'){
digitalWrite(ledPin9, LOW);
}
if (procByte[i] == 'I'){
digitalWrite(ledPin10, HIGH);
}
else if (procByte[i] == 'i'){
digitalWrite(ledPin10, LOW);
}
if (procByte[i] == 'J'){
digitalWrite(ledPin11, HIGH);
}
else if (procByte[i] == 'j'){
digitalWrite(ledPin11, LOW);
}
if (procByte[i] == 'K'){
digitalWrite(ledPin12, HIGH);
}
else if (procByte[i] == 'k'){
digitalWrite(ledPin12, LOW);
}
if (procByte[i] == 'L'){
digitalWrite(ledPin13, HIGH);
}
else if (procByte[i] == 'l'){
digitalWrite(ledPin13, LOW);
}
}
}
}



processing code:

import processing.serial.*;
Serial port;

void setup() {
size(300, 150);
// port = new Serial(this, "COM15", 9600);
port = new Serial(this, "COM15", 115200);
background(255);
stroke (0);
line (150, 0, 150, 150);
}

void draw() {
if (mouseX <150 ) {
port.write('A'); //first led on
port.write('b'); //this led off
port.write('c');
port.write('d');
port.write('e');
port.write('F');
port.write('g');
port.write('H');
port.write('i');
port.write('j');
port.write('K');
port.write('l');
}
else if (mouseX >150 && mouseX < 300 ) {
port.write('a'); //first led off
port.write('B'); //this led on
port.write('c');
port.write('d');
port.write('e');
port.write('f');
port.write('G');
port.write('h');
port.write('I');
port.write('j');
port.write('k');
port.write('L');
}
}

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου