Changement de RVB LED de couleurs + capteur de luminosité + LCD

ce projet incorporer une RGB led qui change de couleurs d’une manière continue, un écran LCD qui affiche la couleur actuelle et celle qui suit, ou, qu’il a mode différent, voir la vous l’intensité de la lumière sorounding, quand il n’y a enough.the puissance de la lumière maximale pour la LED ne pas de travailler pouvez être étalonné easaly à travers un changement d’un seul paramètre dans le code. (puissance)

Vous aurez besoin: 1. un Comité d’arduino uno
2. norme 16 * 2 LCD
3. common anode RGB LED
4. capteur de luminosité standard
Résistances de 5,10 K & 330 ohms

étape 1. connecter l’anode rgb a conduit à l’uno GND
2. Connectez les jambes verts & bleus rouges de la led à travers la résistance de 330 ohms à trois des ports PWM d’uno
3. Brancher le capteur de lumière du vcc au gnd à travers la résistance de 10K (de sorte que le capteur est « up »)
4. Brancher la deuxième jambe du capteur à A5 des entrées analogiques de l’ONU.
5. Branchez l’écran LCD (Regardez le code ou le changer pour le poste de connexions-voir file:///D:/My%20Documents/Arduino/arduino-1.0.1/reference/LiquidCrystalConstructor.html pour la référence)
6. après l’adjosments du code, compilez et gravez-le sur l’ONU et de votre fait:-)
Il y a beaucoup de créativité en remplaçant le détecteur de lumière par presque chaque capteur analogique... Profitez !
le code :

#include / / pour itoa() appel
#include
Innovente lcd (7, 6, 2, 3, 4, 5) ;

void setup() {}
LCD.Begin(16,2) ;              Démarrer la bibliothèque
lcd.setCursor(0,0) ;

}

void loop() {}
int puissance = 150 ;

Beg:analogWrite(11,0) ;
analogWrite(10,0) ;
analogWrite(9,0) ;

digitalWrite(8,HIGH); / / fournissant Réf V
int a ;
un = analogRead (A5); //read la valeur

char bufg [5] ;
convertir une chaîne [buf]
EGTI (a, bufg, 10) ;
LCD.Print (itoa (a, bufg, 10)); //print valeur
retard (1000); //delay
LCD.Clear(); / / clear LCD pour l’itération suivante
Si (une > puissance) {goto mendier;} else {goto prochaine;} vérifier s’il y a lumière
suivant :
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 vecteur aléatoire, mais constant
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 de la RGB vers reff vec
tandis que (1) {}
char bufr1 [5] ;
convertir 123 en chaîne [buf]
;
char bufg1 [5] ;
convertir 123 en chaîne [buf]
EGTI (vec1 [0], bufg1, 10) ;
char bufb1 [5] ;
convertir 123 en chaîne [buf]
EGTI (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 les valeurs de RVB led par usinf « itoa » fonction
EGTI peut convertir une valeur integer en string
Delay(10) ;


Si (r > vec1[0]) {r--;} else
Si (r

Si (g > vec1[1]) {g--;} else
Si (g

Si (b > vec1[2]) {b--;} else
Si (b
analogWrite(11,b) ;
analogWrite(10,g) ;
analogWrite(9,r) ;
bufr Char [5] ;
convertir 123 en chaîne [buf]
;
char bufg [5] ;
convertir 123 en chaîne [buf]
EGTI (g, bufg, 10) ;
char bufb [5] ;
convertir 123 en chaîne [buf]
EGTI (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 les valeurs de RVB led par usinf « itoa » fonction
EGTI peut convertir une valeur integer en string
retard (10) ;
Si (r == vec1 [0] & & g == vec1 [1] & & b==vec1[2]) Pause ; //this zooms de boucle les entiers de RVB vers la cible vector & le changement avec un retard de sortie
(se répète pour tous les vecteurs d’un après l’autre)
digitalWrite(8,HIGH); / / fournissant Réf V

un = analogRead (A5); //read
Si (une > puissance) {analogWrite(11,0) ;
analogWrite(10,0) ;
analogWrite(9,0) ;

Goto mendier;}
}

tandis que (1) {}

char bufr1 [5] ;
convertir 123 en chaîne [buf]
;
char bufg1 [5] ;
convertir 123 en chaîne [buf]
EGTI (vec2 [0], bufg1, 10) ;
char bufb1 [5] ;
convertir 123 en chaîne [buf]
EGTI (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 les valeurs de RVB led par usinf « itoa » fonction
EGTI peut convertir une valeur integer en string

Delay(10) ;
Si (r > vec2[0]) {r--;} else
Si (r

Si (g > vec2[1]) {g--;} else
Si (g

Si (b > vec2[2]) {b--;} else
Si (b
analogWrite(11,b) ;
analogWrite(10,g) ;
analogWrite(9,r) ;

bufr Char [5] ;
convertir 123 en chaîne [buf]
;
char bufg [5] ;
convertir 123 en chaîne [buf]
EGTI (g, bufg, 10) ;
char bufb [5] ;
convertir 123 en chaîne [buf]
EGTI (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 les valeurs de RVB led par usinf « itoa » fonction
ITOA peut convertir une vlue de nombre entier en chaîne

retard (10) ;
Si (r == vec2 [0] & & g == vec2 [1] & & b==vec2[2]) Pause ;
digitalWrite(8,HIGH); / / fournissant Réf V

un = analogRead (A5); //read
Si (une > puissance) {analogWrite(11,0) ;
analogWrite(10,0) ;
analogWrite(9,0) ;

Goto mendier;}

}


tandis que (1) {}

char bufr1 [5] ;
convertir 123 en chaîne [buf]
;
char bufg1 [5] ;
convertir 123 en chaîne [buf]
EGTI (vec4 [0], bufg1, 10) ;
char bufb1 [5] ;
convertir 123 en chaîne [buf]
EGTI (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 les valeurs de RVB led par usinf « itoa » fonction
EGTI peut convertir une valeur integer en string
Delay(10) ;

Si (r > vec4[0]) {r--;} else
Si (r

Si (g > vec4[1]) {g--;} else
Si (g

Si (b > vec4[2]) {b--;} else
Si (b
analogWrite(11,b) ;
analogWrite(10,g) ;
analogWrite(9,r) ;

bufr Char [5] ;
convertir 123 en chaîne [buf]
;
char bufg [5] ;
convertir 123 en chaîne [buf]
EGTI (g, bufg, 10) ;
char bufb [5] ;
convertir 123 en chaîne [buf]
EGTI (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 les valeurs de RVB led par usinf « itoa » fonction
ITOA peut convertir une vlue de nombre entier en chaîne

retard (10) ;
Si (r == vec4 [0] & & g == vec4 [1] & & b==vec4[2]) Pause ;
digitalWrite(8,HIGH); / / fournissant Réf V

un = analogRead (A5); //read
Si (une > puissance) {analogWrite(11,0) ;
analogWrite(10,0) ;
analogWrite(9,0) ;

Goto mendier;}

}


tandis que (1) {}

char bufr1 [5] ;
convertir 123 en chaîne [buf]
;
char bufg1 [5] ;
convertir 123 en chaîne [buf]
EGTI (vec5 [0], bufg1, 10) ;
char bufb1 [5] ;
convertir 123 en chaîne [buf]
EGTI (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 les valeurs de RVB led par usinf « itoa » fonction
EGTI peut convertir une valeur integer en string

Delay(10) ;
Si (r > vec5[0]) {r--;} else
Si (r

Si (g > vec5[1]) {g--;} else
Si (g

Si (b > vec5[2]) {b--;} else
Si (b
analogWrite(11,b) ;
analogWrite(10,g) ;
analogWrite(9,r) ;

bufr Char [5] ;
convertir 123 en chaîne [buf]
;
char bufg [5] ;
convertir 123 en chaîne [buf]
EGTI (g, bufg, 10) ;
char bufb [5] ;
convertir 123 en chaîne [buf]
EGTI (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 les valeurs de RVB led par usinf « itoa » fonction
ITOA peut convertir une vlue de nombre entier en chaîne

retard (10) ;
Si (r == vec5 [0] & & g == vec5 [1] & & b==vec5[2]) Pause ;
digitalWrite(8,HIGH); / / fournissant Réf V

un = analogRead (A5); //read
Si (une > puissance) {analogWrite(11,0) ;
analogWrite(10,0) ;
analogWrite(9,0) ;

Goto mendier;}

}

tandis que (1) {}

char bufr1 [5] ;
convertir 123 en chaîne [buf]
;
char bufg1 [5] ;
convertir 123 en chaîne [buf]
EGTI (vec6 [0], bufg1, 10) ;
char bufb1 [5] ;
convertir 123 en chaîne [buf]
EGTI (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 les valeurs de RVB led par usinf « itoa » fonction
EGTI peut convertir une valeur integer en string

Delay(10) ;
Si (r > vec6[0]) {r--;} else
Si (r

Si (g > vec6[1]) {g--;} else
Si (g

Si (b > vec6[2]) {b--;} else
Si (b
analogWrite(11,b) ;
analogWrite(10,g) ;
analogWrite(9,r) ;

bufr Char [5] ;
convertir 123 en chaîne [buf]
;
char bufg [5] ;
convertir 123 en chaîne [buf]
EGTI (g, bufg, 10) ;
char bufb [5] ;
convertir 123 en chaîne [buf]
EGTI (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 les valeurs de RVB led par usinf « itoa » fonction
ITOA peut convertir une vlue de nombre entier en chaîne

retard (10) ;
Si (r == vec6 [0] & & g == vec6 [1] & & b==vec6[2]) Pause ;
digitalWrite(8,HIGH); / / fournissant Réf V

un = analogRead (A5); //read
Si (une > puissance) {analogWrite(11,0) ;
analogWrite(10,0) ;
analogWrite(9,0) ;

Goto mendier;}

}

tandis que (1) {}

char bufr1 [5] ;
convertir 123 en chaîne [buf]
;
char bufg1 [5] ;
convertir 123 en chaîne [buf]
EGTI (vec3 [0], bufg1, 10) ;
char bufb1 [5] ;
convertir 123 en chaîne [buf]
EGTI (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 les valeurs de RVB led par usinf « itoa » fonction
EGTI peut convertir une valeur integer en string

Delay(10) ;
Si (r > vec3[0]) {r--;} else
Si (r

Si (g > vec3[1]) {g--;} else
Si (g

Si (b > vec3[2]) {b--;} else
Si (b
analogWrite(11,b) ;
analogWrite(10,g) ;
analogWrite(9,r) ;


bufr Char [5] ;
convertir 123 en chaîne [buf]
;
char bufg [5] ;
convertir 123 en chaîne [buf]
EGTI (g, bufg, 10) ;
char bufb [5] ;
convertir 123 en chaîne [buf]
EGTI (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 les valeurs de RVB led par usinf « itoa » fonction
ITOA peut convertir une vlue de nombre entier en chaîne
retard (10) ;
Si (r == vec3 [0] & & g == vec3 [1] & & b==vec3[2]) Pause ; //the dernière boucle renvoie les entiers de RVB à la référence, ce vecteur est critique
donc leur ne sera pas n’importe quel « sauts » en couleurs
digitalWrite(8,HIGH); / / fournissant Réf V

un = analogRead (A5); //read
Si (une > puissance) {analogWrite(11,0) ;
analogWrite(10,0) ;
analogWrite(9,0) ;

Goto mendier;}

}
Goto prochaine ;
}

Veuillez noter que le code original était pour un écran LCD qui n’est pas disponible et a été acheté ici :
http://www.Dan-e.co.il/index.php?route=Common/Home
Notez également, que le programme mon contiennent des parties uneeded et est builed « patch traversons » donc il y a du travail à faire si vous voulez que le code soit « propre » vous mon également utiliser des ports différents à l’ONU, mais n’oubliez pas d’ajuster le code pour ces changements.

bonne chance:-)
Dekel Ziv

Articles Liés

Changement de lampe à LED de couleur

Changement de lampe à LED de couleur

J'ai été inspiré par l'inclinaison du voyant, mais j'ai décidé de faire quelques changements.  Voici comment je l'ai construit.Choses dont vous avez besoin :1) projet Conseil (j'ai pris mine vers le haut à Radio Shack)2) color Changing LEDs (ce sont
Détection à l’aide de RVB LED de couleur

Détection à l’aide de RVB LED de couleur

avez-vous déjà souhaité un moyen automatisé pour détecter la couleur d'un objet ? Par la lumière d'une certaine couleur brillante sur l'objet et en regardant combien la lumière est réfléchie en retour, vous pouvez dire de quelle couleur l'objet sont.
Couleur de RVB LED ambiance simple potentiomètre sans microcontrôleur

Couleur de RVB LED ambiance simple potentiomètre sans microcontrôleur

afficher les combinaisons de couleur de couleur LED sans utiliser un microcontrôleurvous pouvez faire un Simple couleur Cycle affichage pour RVB (rouge, vert, bleu) LEDÉtape 1: Ce que vous devez Vous aurez besoin :1] potentiomètre 1 K x3Résistance de
Recyclé lampe matière arbre Musical avec changement de LEDs de couleur

Recyclé lampe matière arbre Musical avec changement de LEDs de couleur

Par Tara BowermanMatériaux2' Haute densité Bande Flexible lumineuse LED blanc chaud3' Bande flexible lumineuse LED blanc chaud2 x 2' bandes de lumière Flexible LED solide couleur pourpre et orangeBrouilleur de Apollo36 watts 12V adaptateurHaut-parleu
Une horloge de RVB LED 15 avec Arduino core

Une horloge de RVB LED 15 avec Arduino core

L'horloge de RVB utilise le modèle de composition de couleur RVB utilisé dans tous les écrans de couleur. Ce modèle utilise trois couleurs « de base », à savoir rouges, verts et bleus, pour construire n'importe quelle autre couleur « composite » du s
Mise à jour intelligente de RVB LED : WS2812B vs WS2812

Mise à jour intelligente de RVB LED : WS2812B vs WS2812

Le nombre de projets que nous avons vu l'utilisation de Smart LED RGB- que ce soit des bandes, les modules ou PCB personnalisé - au cours des 3 dernières années est tout à fait étonnante.  Cette flambée de l'utilisation de LED RVB est passé main dans
Art de RVB LED Aurora 9 x 18

Art de RVB LED Aurora 9 x 18

*** consulter mon blog pour la version mise à jour de ce projet et bien plus encore! ***Mon obsession de LED m'a conduit à cela. Aurora 9 x 18 est une chose de beauté (si je peux dire moi-même)-dispose de 162 RGB-LED dans une configuration circulaire
Changement de lampe bulle de couleur

Changement de lampe bulle de couleur

dans ce Instructable je vais vous montrer comment faire un Changement de couleur Bubble lampe comme celui ci-dessous.la couleur change toutes les 60 secondesOK donc permet de commencer à la page suivante pour savoir ce que vous aurez besoin.Étape 1:
Tests de LED et divers capteurs de lumière

Tests de LED et divers capteurs de lumière

Deux circuits que je faisais, un capteur de proximité et un tracker de soleil, n'étaient pas fonctionne comme prévu, et j'ai donc décidé de tester la sensibilité des capteurs lumineux ces circuits utilisés. Sur des recherches sur le sujet, j'ai été s
Plus petit 4 le monde x 4 x 4 de RVB LED Cube

Plus petit 4 le monde x 4 x 4 de RVB LED Cube

Je crois que c'est « actuellement » Tiniest 4 x 4 x 4 couleur LED Cube du monde. Il n'y a plus petit mais sont habituellement unicolores et composé de LEDs moins (3 x 3 x 3).Le cube LED réels est moins de 1 pouce carré. Il utilise 3.2mmx2.7mm de soix
Carte de Noël avec LEDs de couleur

Carte de Noël avec LEDs de couleur

Cet Instructable a été soumis au concours « Faire briller ». Si vous le souhaitez, j'apprécierais beaucoup votre voix.Je cherchais une carte de Noël décent, novateurs, mais je n'ai pas pu en trouver un qui convient à mon goût.Alors, j'ai moi-même blo
Un projet de Arduino débutant : Tri Colour par une LED de couleur Bi

Un projet de Arduino débutant : Tri Colour par une LED de couleur Bi

Salut et Bienvenue à mon 7ème instructable. Cette fois je joue avec mon nouveau duemilanove TRduino. En fait c'est un clone d'Arduino faite par Thinnkware et ATMega 328.Arduino est un très bon programmeur, et il est également open source (la chose qu
LED Flipbookit : plein contrôle de la couleur et la luminosité avec un Arduino

LED Flipbookit : plein contrôle de la couleur et la luminosité avec un Arduino

Étape 1: Rassembler les matériaux Matériaux :-bande de RVB LED adressable : J'ai utilisé une nouvelle variété de trois conducteurs WS2811 bandes.-un Arduino : J'ai utilisé un Arduino Leonardo. N'importe quel Arduino 5vdc devrait suffire.-4 piles AA e
Faire votre propre LEDs de couleur

Faire votre propre LEDs de couleur

il y a nombreux instructables pour faire « Throwies ».Pour cela d'avoir un joli effet vous devez charges de couleur différente LEDs.J'ai trouvé ça un peu frustrant de trouver des LEDs de couleur. Et quand je les ai trouvés ils coûtaient plus chers pu