/* We managed to control three leds with keyboard by using the function Serial.read(). The commands are sent to arduino through USB serial port. */ // pins used int ledpin1 = 9; int ledpin2 = 10; int ledpin3 = 11; // value of Serial.read() int val; // Store the value of Serial.read() separately for each Pin int val1; int val2; int val3; // brightness value for fadeToOn int i = 255; // brightness values for blink int j = 0; int k= 255; // for producing the delay long previousMillis = 0; // will store the value last time LED was updated long interval = 40; // the interval of blinking (milliseconds) /////////////////////////////////////////// SETUP //////////////////////////////////////////// void setup() { Serial.begin(9600); pinMode(ledpin1, OUTPUT); pinMode(ledpin2, OUTPUT); pinMode(ledpin3, OUTPUT); } /////////////////////////////////////////// LOOP //////////////////////////////////////////// void loop() { if (Serial.available()){ val = Serial.read(); // ledPin1 if (val == 'r'){ fadeToOn(ledpin1); val1 =val; } if (val == 'f'){ blink(ledpin1); val1 =val; } if (val == 'v'){ turnOff(ledpin1); val1 =val; } // ledPin2 if (val == 't'){ fadeToOn(ledpin2); val2 =val; } if (val == 'g'){ blink(ledpin2); val2 =val; } if (val == 'b'){ turnOff(ledpin2); val2 =val; } // ledPin3 if (val == 'y'){ fadeToOn(ledpin3); val3 =val; } if (val == 'h'){ blink(ledpin3); val3 =val; } if (val == 'n'){ turnOff(ledpin3); val3 =val; } } if (val1 == 'f'){ blink(ledpin1); } if (val2 == 'g'){ blink(ledpin2); } if (val3 == 'h'){ blink(ledpin3); } } ///////////////////////////////////// function: fade to on /////////////////////////////////////// void fadeToOn(int ledpin){ while(j<255){ if ((millis() - previousMillis) > interval) { analogWrite(ledpin, j); // sets the value (range from 0 to 255) j+=5; previousMillis = millis(); } } if (j=255){ analogWrite(ledpin,255); } j=0; } ///////////////////////////////////// function: blink with fade /////////////////////////////////////// void blink(int ledpin){ while(i<25){ //fade to on if ((millis() - previousMillis) > interval) { analogWrite(ledpin, i); // sets the value (range from 0 to 255) i+=5; previousMillis = millis(); } } while(i>=25 && i<255){ if ((millis() - previousMillis) > interval) { analogWrite(ledpin, i); // sets the value (range from 0 to 255) i+=5; previousMillis = millis(); } } i=25; while(k>25){ if ((millis() - previousMillis) > interval) { analogWrite(ledpin, k); // sets the value (range from 0 to 255) k-=5; previousMillis = millis(); } } k=255; } ///////////////////////////////////// function: turn off the led /////////////////////////////////////// void turnOff(int ledpin){ analogWrite (ledpin, 0); }