-/*
- Reading a serial ASCII-encoded string.
-
- Beware: set monitor to NL NewLine only
-
- This sketch demonstrates the Serial parseInt() function.
- It looks for an ASCII string of comma-separated values.
- It parses them into ints, and uses those to fade an RGB LED.
-
-
-
- Once you have programmed the Arduino, open your Serial minitor.
- Make sure you have chosen to send a newline character when sending a message.
- Enter values between 0-255 for the lights in the following format :
- Red,Green,Blue.
-
- Seriously: did you set the Newline setting in the monitor?
-
-
- Once you have sent the values to the Arduino,
- the attached LED will turn the color you specified,
- and you will receive the HEX values in the serial monitor.
-
- created 13 Apr 2012
- by Tom Igoe
-
- This example code is in the public domain.
-
-
-
- Schema: http://lab.piffa.net/schemi/rgb.jpg
-
- */
-
-// pins for the LEDs:
-const int redPin = 11;
-const int greenPin = 10;
-const int bluePin = 9;
-
-void setup() {
- // initialize serial:
- Serial.begin(9600);
- // make the pins outputs:
- pinMode(redPin, OUTPUT);
- pinMode(greenPin, OUTPUT);
- pinMode(bluePin, OUTPUT);
-
-}
-
-void loop() {
- // if there's any serial available, read it:
- while (Serial.available() > 0) {
-
- // look for the next valid integer in the incoming serial stream:
- int red = Serial.parseInt();
- // do it again:
- int green = Serial.parseInt();
- // do it again:
- int blue = Serial.parseInt();
-
- // look for the newline. That's the end of your
- // sentence:
- if (Serial.read() == '\n') {
- // constrain the values to 0 - 255 and invert
- // if you're using a common-cathode LED, just use "constrain(color, 0, 255);"
- red = 255 - constrain(red, 0, 255);
- green = 255 - constrain(green, 0, 255);
- blue = 255 - constrain(blue, 0, 255);
-
- // fade the red, green, and blue legs of the LED:
- analogWrite(redPin, red);
- analogWrite(greenPin, green);
- analogWrite(bluePin, blue);
-
- // print the three numbers in one string as hexadecimal:
- Serial.print(red, HEX);
- Serial.print(green, HEX);
- Serial.println(blue, HEX);
- }
- }
-}