Created
May 7, 2012 09:05
-
-
Save nmatsui/2626826 to your computer and use it in GitHub Desktop.
arduinoのソース
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define R_PIN 8 | |
#define G_PIN 3 | |
#define B_PIN 2 | |
#define F_R_PIN 11 | |
#define F_G_PIN 9 | |
#define F_B_PIN 10 | |
#define F_C_PIN 12 | |
#define F_R_TH 180 | |
#define F_G_TH 230 | |
#define F_B_TH 180 | |
const int R_MASK = 1; | |
const int G_MASK = 2; | |
const int B_MASK = 4; | |
const int F_R_MASK = 16; | |
const int F_G_MASK = 32; | |
const int F_B_MASK = 64; | |
int recv; | |
int toggleLED(int pin, int mask); | |
int toggleFullLED(int pin, int mask, int th); | |
void setup() { | |
Serial.begin(9600); | |
pinMode(R_PIN, OUTPUT); | |
pinMode(G_PIN, OUTPUT); | |
pinMode(B_PIN, OUTPUT); | |
pinMode(F_C_PIN, OUTPUT); | |
digitalWrite(R_PIN, LOW); | |
digitalWrite(G_PIN, LOW); | |
digitalWrite(B_PIN, LOW); | |
digitalWrite(F_C_PIN, HIGH); | |
Serial.println("arduino setup"); | |
} | |
void loop() { | |
if (Serial.available() > 0) { | |
recv = Serial.read(); | |
Serial.print("recv:");Serial.println(recv); | |
Serial.println((toggleLED(R_PIN, R_MASK))? " RED ON" : " RED OFF"); | |
Serial.println((toggleLED(G_PIN, G_MASK))? " GREEN ON" : " GREEN OFF"); | |
Serial.println((toggleLED(B_PIN, B_MASK))? " BLUE ON" : " BLUE OFF"); | |
Serial.println((toggleFullLED(F_R_PIN, F_R_MASK, F_R_TH))? " FULL(R) ON" : " FULL(R) OFF"); | |
Serial.println((toggleFullLED(F_G_PIN, F_G_MASK, F_G_TH))? " FULL(G) ON" : " FULL(G) OFF"); | |
Serial.println((toggleFullLED(F_B_PIN, F_B_MASK, F_B_TH))? " FULL(B) ON" : " FULL(B) OFF"); | |
} | |
} | |
int toggleLED(int pin, int mask) { | |
Serial.print(" pin:");Serial.print(pin); | |
Serial.print(" mask:");Serial.print(mask); | |
Serial.print(" recv&mask:");Serial.print(recv&mask); | |
if ((recv & mask) == mask) { | |
digitalWrite(pin, HIGH); | |
return 1; | |
} else { | |
digitalWrite(pin, LOW); | |
return 0; | |
} | |
} | |
int toggleFullLED(int pin, int mask, int th) { | |
Serial.print(" pin:");Serial.print(pin); | |
Serial.print(" mask:");Serial.print(mask); | |
Serial.print(" th:");Serial.print(th); | |
Serial.print(" recv&mask:");Serial.print(recv&mask); | |
if ((recv & mask) == mask) { | |
analogWrite(pin, th); | |
return 1; | |
} else { | |
analogWrite(pin, 255); | |
return 0; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment