Arduino-"Stimmungslicht"
Ist nur 'ne simple Bastelei. Hatte Tea gefragt, was ich mit dem Arduino basteln sollte, und hab' den Kram hier hochgeladen, um felge mal Fritzing zu demonstrieren.
- Fritzing-Datei: stimmungslicht.fzz
- Arduino-Code: stimmungslicht.ino
Der „rote“, „grüne“ und „blaue“ Taster werden benutzt, um die entsprechende Farbkomponente zu wählen, die beiden Taster dazwischen („minus“ und „plus“) vermindern bzw. erhöhen die Leuchtkraft der gewählten Farbkomponente. Der letzte Taster („weiß“) setzt alle Farbkomponenten auf 50% Leuchtkraft zurück.
- stimmungslicht.ino
// Define Pins #define BlueLED 3 #define GreenLED 5 #define RedLED 6 #define RedButton 8 #define GreenButton 9 #define BlueButton 10 #define MinusButton 11 #define PlusButton 12 #define WhiteButton 13 int RGBLEDValue[7]={0, 0, 0, 128, 0, 128, 128}; int RGBLEDMode=RedLED; void setup() { // put your setup code here, to run once: pinMode(RedLED, OUTPUT); pinMode(GreenLED, OUTPUT); pinMode(BlueLED, OUTPUT); pinMode(RedButton, INPUT_PULLUP); pinMode(GreenButton, INPUT_PULLUP); pinMode(BlueButton, INPUT_PULLUP); pinMode(MinusButton, INPUT_PULLUP); pinMode(PlusButton, INPUT_PULLUP); pinMode(WhiteButton, INPUT_PULLUP); analogWrite(RedLED, RGBLEDValue[RedLED]); analogWrite(GreenLED, RGBLEDValue[GreenLED]); analogWrite(BlueLED, RGBLEDValue[BlueLED]); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: #define delayTime 0 if (digitalRead(RedButton) == LOW) { RGBLEDMode = RedLED; Serial.println("RED selected: " + String(RGBLEDValue[RedLED])); } else if (digitalRead(GreenButton) == LOW) { RGBLEDMode = GreenLED; Serial.println("GREEN selected: " + String(RGBLEDValue[GreenLED])); } else if (digitalRead(BlueButton) == LOW) { RGBLEDMode = BlueLED; Serial.println("BLUE selected: " + String(RGBLEDValue[BlueLED])); } else if (digitalRead(MinusButton) == LOW) { Serial.println("Minus: " + String(RGBLEDValue[RGBLEDMode])); Serial.println("R: " + String(RGBLEDValue[RedLED]) + " G: " + String(RGBLEDValue[GreenLED]) + " B: " + String(RGBLEDValue[BlueLED])); RGBLEDValue[RGBLEDMode] -= 1; if (RGBLEDValue[RGBLEDMode] < 0) { RGBLEDValue[RGBLEDMode] = 0; } //delay(100); } else if (digitalRead(PlusButton) == LOW) { Serial.println("Plus: " + String(RGBLEDValue[RGBLEDMode])); Serial.println("R: " + String(RGBLEDValue[RedLED]) + " G: " + String(RGBLEDValue[GreenLED]) + " B: " + String(RGBLEDValue[BlueLED])); RGBLEDValue[RGBLEDMode] += 1; if (RGBLEDValue[RGBLEDMode] > 255) { RGBLEDValue[RGBLEDMode] = 255; } //delay(100); } else if (digitalRead(WhiteButton) == LOW) { Serial.println("RESET"); RGBLEDValue[RedLED] = 128; RGBLEDValue[GreenLED] = 128; RGBLEDValue[BlueLED] = 128; } analogWrite(RedLED, RGBLEDValue[RedLED]); analogWrite(GreenLED, RGBLEDValue[GreenLED]); analogWrite(BlueLED, RGBLEDValue[BlueLED]); }