Sie benötigen: 1. ein Arduino Uno Board
2. standard 16 * 2 LCD
3. gemeinsame Anode RGB LED
4. standard Lichtsensor
5,10 K & 330 Ohm Widerstände
Schritt 1. verbinden Sie die Rgb led Anode an die Uno GND
2. verbinden Sie die rote grüne und blaue Beine der led durch 330 Ohm Widerstand auf drei der PWM-Ports der Uno
3. Schließen Sie den Lichtsensor von Vcc GND durch 10K Widerstand (so, dass der Sensor "up")
4. Schließen Sie das zweite Bein des Sensors an A5 Analogeingang der Uno.
5. Schließen Sie das LCD-Display (Blick auf den Code oder ändern sie die Position der Anschlüsse siehe file:///D:/My%20Documents/Arduino/arduino-1.0.1/reference/LiquidCrystalConstructor.html als Referenz)
6. nach der Adjosments des Codes kompilieren Sie und brennen Sie es auf die UNO und fertig :-)
Es gibt eine Menge für Kreativität in der Lichtempfänger durch fast jeden analogen Sensor ersetzen... Viel Spaß!
der Code:
#include / / für itoa() Anruf
#include
LiquidCrystal lcd (7, 6, 2, 3, 4, 5);
void setup() {}
LCD.Begin(16,2); Starten Sie die Bibliothek
lcd.setCursor(0,0);
}
void loop() {}
Int macht = 150;
beg:analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
digitalWrite(8,HIGH); / / Bereitstellung Ref V
Int a;
ein = AnalogRead (A5); //read den Wert
Char Bufg [5];
Konvertieren einer Zeichenfolge [Buf]
ITOA (a, Bufg, 10);
LCD.Print (Itoa (a, Bufg, 10)); //print Wert
Verzögerung (1000); //delay
LCD.Clear(); / / clear LCD für die nächste Iteration
Wenn (ein > macht) {Goto betteln;} else {Goto nächsten;} Überprüfen Sie, ob Licht
nächste:
Int vec2[3]={random(255),random(130),random(30)}; //random vec2
Int vec1[3]={random(255),random(130),random(30)}; //random vec1
Int vec3 [3] = {234,100,20}; //reff Vektor-zufällige, aber konstant
Int vec4[3]={random(255),random(130),random(30)}; //random vec4
Int vec5[3]={random(255),random(130),random(30)}; //random vec5
Int vec6[3]={random(255),random(130),random(30)}; //random vec6
Int R = vec3 [0];
Int g = vec3 [1];
Int b = vec3 [2]; //initiation von RGB zu Reff Vec
während (1) {}
Char bufr1 [5];
String [Buf] 123 umwandeln
;
Char bufg1 [5];
String [Buf] 123 umwandeln
ITOA (vec1 [0], bufg1, 10);
Char bufb1 [5];
String [Buf] 123 umwandeln
ITOA (vec1 [1], bufb1, 10);
LCD.Clear();
lcd.setCursor(0,1);
LCD.Print ("R:");
LCD.Print (Itoa (vec1 [0], bufr1, 10));
LCD.Print ("G:");
LCD.Print (Itoa (vec1 [1], bufg1, 10));
LCD.Print ("B:");
LCD.Print (Itoa (vec1 [2], bufb1, 10)); / / Prins die Werte der Rgb led von Usinf "Itoa" Funktion
ITOA kann einen Integer-Wert in eine Zeichenfolge konvertieren.
Delay(10);
Wenn (R > vec1[0]) {R--;} else
Wenn (R
Wenn (g > vec1[1]) {g--;} else
Wenn (g
Wenn (b > vec1[2]) {b--;} else
Wenn (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
Char Bufr [5];
String [Buf] 123 umwandeln
;
Char Bufg [5];
String [Buf] 123 umwandeln
ITOA (g, Bufg, 10);
Char Bufb [5];
String [Buf] 123 umwandeln
ITOA (b, Bufb, 10);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("R:");
LCD.Print (Itoa (R, Bufr, 10));
LCD.Print ("G:");
LCD.Print (Itoa (g, Bufg, 10));
LCD.Print ("B:");
LCD.Print (Itoa (b, Bufb, 10)); / / Prins die Werte der Rgb led von Usinf "Itoa" Funktion
ITOA kann einen Integer-Wert in eine Zeichenfolge konvertieren.
Verzögerung (10);
Wenn (R == vec1 [0] & & g == vec1 [1] & & b==vec1[2]) Pause; //this Schleife zoomt die RGB-Zahlen zum Ziel Vektor & Ausgabe die Änderung mit Verzögerung
(wiederholt für alle Vektoren eins nach dem anderen)
digitalWrite(8,HIGH); / / Bereitstellung Ref V
ein = AnalogRead (A5); //read
Wenn (ein > macht) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
GOTO betteln;}
}
während (1) {}
Char bufr1 [5];
String [Buf] 123 umwandeln
;
Char bufg1 [5];
String [Buf] 123 umwandeln
ITOA (vec2 [0], bufg1, 10);
Char bufb1 [5];
String [Buf] 123 umwandeln
ITOA (vec2 [1], bufb1, 10);
LCD.Clear();
lcd.setCursor(0,1);
LCD.Print ("R:");
LCD.Print (Itoa (vec2 [0], bufr1, 10));
LCD.Print ("G:");
LCD.Print (Itoa (vec2 [1], bufg1, 10));
LCD.Print ("B:");
LCD.Print (Itoa (vec2 [2], bufb1, 10)); / / Prins die Werte der Rgb led von Usinf "Itoa" Funktion
ITOA kann einen Integer-Wert in eine Zeichenfolge konvertieren.
Delay(10);
Wenn (R > vec2[0]) {R--;} else
Wenn (R
Wenn (g > vec2[1]) {g--;} else
Wenn (g
Wenn (b > vec2[2]) {b--;} else
Wenn (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
Char Bufr [5];
String [Buf] 123 umwandeln
;
Char Bufg [5];
String [Buf] 123 umwandeln
ITOA (g, Bufg, 10);
Char Bufb [5];
String [Buf] 123 umwandeln
ITOA (b, Bufb, 10);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("R:");
LCD.Print (Itoa (R, Bufr, 10));
LCD.Print ("G:");
LCD.Print (Itoa (g, Bufg, 10));
LCD.Print ("B:");
LCD.Print (Itoa (b, Bufb, 10)); / / Prins die Werte der Rgb led von Usinf "Itoa" Funktion
ITOA kann Vlue eine ganze Zahl in eine Zeichenfolge konvertieren.
Verzögerung (10);
Wenn (R == vec2 [0] & & g == vec2 [1] & & b==vec2[2]) Pause;
digitalWrite(8,HIGH); / / Bereitstellung Ref V
ein = AnalogRead (A5); //read
Wenn (ein > macht) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
GOTO betteln;}
}
während (1) {}
Char bufr1 [5];
String [Buf] 123 umwandeln
;
Char bufg1 [5];
String [Buf] 123 umwandeln
ITOA (vec4 [0], bufg1, 10);
Char bufb1 [5];
String [Buf] 123 umwandeln
ITOA (vec4 [1], bufb1, 10);
LCD.Clear();
lcd.setCursor(0,1);
LCD.Print ("R:");
LCD.Print (Itoa (vec4 [0], bufr1, 10));
LCD.Print ("G:");
LCD.Print (Itoa (vec4 [1], bufg1, 10));
LCD.Print ("B:");
LCD.Print (Itoa (vec4 [2], bufb1, 10)); / / Prins die Werte der Rgb led von Usinf "Itoa" Funktion
ITOA kann einen Integer-Wert in eine Zeichenfolge konvertieren.
Delay(10);
Wenn (R > vec4[0]) {R--;} else
Wenn (R
Wenn (g > vec4[1]) {g--;} else
Wenn (g
Wenn (b > vec4[2]) {b--;} else
Wenn (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
Char Bufr [5];
String [Buf] 123 umwandeln
;
Char Bufg [5];
String [Buf] 123 umwandeln
ITOA (g, Bufg, 10);
Char Bufb [5];
String [Buf] 123 umwandeln
ITOA (b, Bufb, 10);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("R:");
LCD.Print (Itoa (R, Bufr, 10));
LCD.Print ("G:");
LCD.Print (Itoa (g, Bufg, 10));
LCD.Print ("B:");
LCD.Print (Itoa (b, Bufb, 10)); / / Prins die Werte der Rgb led von Usinf "Itoa" Funktion
ITOA kann Vlue eine ganze Zahl in eine Zeichenfolge konvertieren.
Verzögerung (10);
Wenn (R == vec4 [0] & & g == vec4 [1] & & b==vec4[2]) Pause;
digitalWrite(8,HIGH); / / Bereitstellung Ref V
ein = AnalogRead (A5); //read
Wenn (ein > macht) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
GOTO betteln;}
}
während (1) {}
Char bufr1 [5];
String [Buf] 123 umwandeln
;
Char bufg1 [5];
String [Buf] 123 umwandeln
ITOA (vec5 [0], bufg1, 10);
Char bufb1 [5];
String [Buf] 123 umwandeln
ITOA (vec5 [1], bufb1, 10);
LCD.Clear();
lcd.setCursor(0,1);
LCD.Print ("R:");
LCD.Print (Itoa (vec5 [0], bufr1, 10));
LCD.Print ("G:");
LCD.Print (Itoa (vec5 [1], bufg1, 10));
LCD.Print ("B:");
LCD.Print (Itoa (vec5 [2], bufb1, 10)); / / Prins die Werte der Rgb led von Usinf "Itoa" Funktion
ITOA kann einen Integer-Wert in eine Zeichenfolge konvertieren.
Delay(10);
Wenn (R > vec5[0]) {R--;} else
Wenn (R
Wenn (g > vec5[1]) {g--;} else
Wenn (g
Wenn (b > vec5[2]) {b--;} else
Wenn (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
Char Bufr [5];
String [Buf] 123 umwandeln
;
Char Bufg [5];
String [Buf] 123 umwandeln
ITOA (g, Bufg, 10);
Char Bufb [5];
String [Buf] 123 umwandeln
ITOA (b, Bufb, 10);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("R:");
LCD.Print (Itoa (R, Bufr, 10));
LCD.Print ("G:");
LCD.Print (Itoa (g, Bufg, 10));
LCD.Print ("B:");
LCD.Print (Itoa (b, Bufb, 10)); / / Prins die Werte der Rgb led von Usinf "Itoa" Funktion
ITOA kann Vlue eine ganze Zahl in eine Zeichenfolge konvertieren.
Verzögerung (10);
Wenn (R == vec5 [0] & & g == vec5 [1] & & b==vec5[2]) Pause;
digitalWrite(8,HIGH); / / Bereitstellung Ref V
ein = AnalogRead (A5); //read
Wenn (ein > macht) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
GOTO betteln;}
}
während (1) {}
Char bufr1 [5];
String [Buf] 123 umwandeln
;
Char bufg1 [5];
String [Buf] 123 umwandeln
ITOA (vec6 [0], bufg1, 10);
Char bufb1 [5];
String [Buf] 123 umwandeln
ITOA (vec6 [1], bufb1, 10);
LCD.Clear();
lcd.setCursor(0,1);
LCD.Print ("R:");
LCD.Print (Itoa (vec6 [0], bufr1, 10));
LCD.Print ("G:");
LCD.Print (Itoa (vec6 [1], bufg1, 10));
LCD.Print ("B:");
LCD.Print (Itoa (vec6 [2], bufb1, 10)); / / Prins die Werte der Rgb led von Usinf "Itoa" Funktion
ITOA kann einen Integer-Wert in eine Zeichenfolge konvertieren.
Delay(10);
Wenn (R > vec6[0]) {R--;} else
Wenn (R
Wenn (g > vec6[1]) {g--;} else
Wenn (g
Wenn (b > vec6[2]) {b--;} else
Wenn (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
Char Bufr [5];
String [Buf] 123 umwandeln
;
Char Bufg [5];
String [Buf] 123 umwandeln
ITOA (g, Bufg, 10);
Char Bufb [5];
String [Buf] 123 umwandeln
ITOA (b, Bufb, 10);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("R:");
LCD.Print (Itoa (R, Bufr, 10));
LCD.Print ("G:");
LCD.Print (Itoa (g, Bufg, 10));
LCD.Print ("B:");
LCD.Print (Itoa (b, Bufb, 10)); / / Prins die Werte der Rgb led von Usinf "Itoa" Funktion
ITOA kann Vlue eine ganze Zahl in eine Zeichenfolge konvertieren.
Verzögerung (10);
Wenn (R == vec6 [0] & & g == vec6 [1] & & b==vec6[2]) Pause;
digitalWrite(8,HIGH); / / Bereitstellung Ref V
ein = AnalogRead (A5); //read
Wenn (ein > macht) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
GOTO betteln;}
}
während (1) {}
Char bufr1 [5];
String [Buf] 123 umwandeln
;
Char bufg1 [5];
String [Buf] 123 umwandeln
ITOA (vec3 [0], bufg1, 10);
Char bufb1 [5];
String [Buf] 123 umwandeln
ITOA (vec3 [1], bufb1, 10);
LCD.Clear();
lcd.setCursor(0,1);
LCD.Print ("R:");
LCD.Print (Itoa (vec3 [0], bufr1, 10));
LCD.Print ("G:");
LCD.Print (Itoa (vec3 [1], bufg1, 10));
LCD.Print ("B:");
LCD.Print (Itoa (vec3 [2], bufb1, 10)); / / Prins die Werte der Rgb led von Usinf "Itoa" Funktion
ITOA kann einen Integer-Wert in eine Zeichenfolge konvertieren.
Delay(10);
Wenn (R > vec3[0]) {R--;} else
Wenn (R
Wenn (g > vec3[1]) {g--;} else
Wenn (g
Wenn (b > vec3[2]) {b--;} else
Wenn (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
Char Bufr [5];
String [Buf] 123 umwandeln
;
Char Bufg [5];
String [Buf] 123 umwandeln
ITOA (g, Bufg, 10);
Char Bufb [5];
String [Buf] 123 umwandeln
ITOA (b, Bufb, 10);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("R:");
LCD.Print (Itoa (R, Bufr, 10));
LCD.Print ("G:");
LCD.Print (Itoa (g, Bufg, 10));
LCD.Print ("B:");
LCD.Print (Itoa (b, Bufb, 10)); / / Prins die Werte der Rgb led von Usinf "Itoa" Funktion
ITOA kann Vlue eine ganze Zahl in eine Zeichenfolge konvertieren.
Verzögerung (10);
Wenn (R == vec3 [0] & & g == vec3 [1] & & b==vec3[2]) Pause; //the letzten Schleife kehrt die RGB-Zahlen bis Vektor-diese Referenz ist entscheidend
damit ihr keine "Sprünge" in Farben werden nicht
digitalWrite(8,HIGH); / / Bereitstellung Ref V
ein = AnalogRead (A5); //read
Wenn (ein > macht) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
GOTO betteln;}
}
GOTO nächsten;
}
Bitte beachten Sie, das der ursprüngliche Code für einen LCD-Schirm, die ist nicht verfügbar und wurde hier gekauft:
http://www.Dan-e.Co.il/Index.php?Route=Common/Home
auch beachten Sie, dass das Programm meine Uneeded Teile enthalten und ist erbaut "Patch über Patch", so gibt es einiges zu tun, wenn Sie den Code zu "reinigen", Sie meinen auch verschiedene Ports verwenden, bei der Uno, nur nicht vergessen, den Code für diese Änderungen anzupassen.
gut Glück :-)
Dekel Ziv