/*
Reading a serial ASCII-encoded string.
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.
Circuit: Common-Cathode RGB LED wired like so:
- red anode: digital pin 3 through 220 ohm resistor
- green anode: digital pin 5 through 220 ohm resistor
- blue anode: digital pin 6 through 220 ohm resistor
- cathode: GND
created 13 Apr 2012
by Tom Igoe
modified 14 Mar 2016
by Arturo Guadalupi
This example code is in the public domain.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/ReadASCIIString
*/// pins for the LEDs:
constintredPin=3;constintgreenPin=5;constintbluePin=6;
const int型の変数redPinとgreenPin、bluePinを定義し、初期化します。
setup()
29
30
31
32
33
34
35
36
37
38
voidsetup(){// initialize serial:
Serial.begin(9600);// make the pins outputs:
pinMode(redPin,OUTPUT);pinMode(greenPin,OUTPUT);pinMode(bluePin,OUTPUT);}
voidloop(){// if there's any serial available, read it:
while(Serial.available()>0){// look for the next valid integer in the incoming serial stream:
intred=Serial.parseInt();// do it again:
intgreen=Serial.parseInt();// do it again:
intblue=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);}}}