Seguindo os nossos planos de expansao e dominacao mundial abrimos um canal no youtube: http://www.youtube.com/ICExDuino Avisem seus colegas, parentes e ate seus inimigos.Este e o nosso primeiro video, o resultado da primeira tarefa. Quem fez este projeto foi o Daniel "Cayan" e o diferencial foi que ele adicionou um cronometro ao semaforo. Logo mais vamos colocar o projeto deste semaforo no blog. Bom, mais uma vez o Flavio Alvarenga fez o melhor trabalho. Quem sera capaz de fazer um projeto melhor que ele hein? Abaixo segue o diagrama do Fritzing que ele fez e os dois codigos (Arduino + Processing):Codigo Arduino int V[3] = {6,5,3}; // 6, 5 e 3 escolhidas por serem saidas PWM, capazes de emular um sina analogico. int PotRed = 0; // potenciometro que controla a cor vermelha int PotGre = 1; // potenciometro que controla a cor verde int PotBlu = 2; // potenciometro que controla a cor azul int redVal = 0; //acumula o valor da luz vermelha int greVal = 0; // acumula o valor da luz verde int bluVal = 0; //acumula o valor da luz azul void setup() { for (int i=0; i<3; i++){ //declara os pinos 9, 6 e 3 como saida pinMode(V[i], OUTPUT); } Serial.begin(9600); } void loop() { redVal = (analogRead(PotRed)/4); // como o valor do potenciometro varia de 0 a 1023 dividindo o valor por 4 obtem-se valores entre 0 e 255* (Pois a variavel e um inteiro). greVal = (analogRead(PotGre)/4); // Faz a leitura dos potenciometros e iguala ao acumulador da sua respectiva cor. bluVal = (analogRead(PotBlu)/4); redVal = map(redVal, 0, 1023, 0,255); //Ajusta o valor lido para ficar no intervalo [0,255] gredVal = map(greVal, 0, 1023, 0,255); bluVal = map(bluVal, 0, 1023, 0,255); RGB(redVal,greVal,bluVal); // chama a funcao RGB Serial.print("R"); Serial.println(analogRead(PotRed)/4); //importa para a porta Serial o valor lido na saida analogica 0 e atribui para a cor vermelha Serial.print("G"); Serial.println(analogRead(PotGre)/4); //importa para a porta Serial o valor lido na saida analogica 1 e atribui para a cor verde Serial.print("B"); Serial.println(analogRead(PotBlu)/4); //importa para a porta Serial o valor lido na saida analogica 2 e atribui para a cor azul delay(100); } void RGB(int redVal,int greenVal, int blueVal){ // Transmite o valor lido pelo potenciometro para a porta PWM responsavel pelas cores red, green, blue. analogWrite(V[0], redVal); // Escreve o valor do PWM do led vermelho analogWrite(V[1], greenVal); // Escreve o valor do PWM do led verde analogWrite(V[2], blueVal); // Escreve o valor do PWM do led azul }No codigo arduino ele definiu uma funcao chamada RGB() que define a cor do LED. Poderia ter feito uma funcao para mandar os dados para a porta serial. Codigo Processing: import processing.serial.*;String buff = "";int rval = 0, gval = 0, bval = 0;int NEWLINE = 10;Serial port;void setup(){ size(800, 800); // Imprima uma lista no caso de a COM1 nao funcionar println("Portas seriais disponiveis:"); println(Serial.list()); //port = new Serial(this, "COM1", 9600); // Use a primeira porta disponivel port = new Serial(this, Serial.list()[0], 9600);}void draw(){ while (port.available() > 0) { serialEvent(port.read()); } background(rval, gval, bval);}void serialEvent(int serial) { // Se