Lumière de personne à charge de Distance RGB (3 / 4 étapes)

Étape 3: programmation

La façon dont je suis allé sur la programmation de cet appareil était tout à fait un voyage. J’ai voulu que la led s à réagir sur le capteur à ultrasons et à changer de couleur en fonction de la distance du capteur à ultrasons renvoyé. Lorsque la distance entre l’objet et le capteur est faible, que l’objet est proche, la couleur est rouge. Plus loin l’objet va, le plus écologique du SEAOG de couleur. Evrithing entre les deux est un mélange de ces couleurs et évolue vers le haut, que la distance augmente. Cela se traduit par un spectre de couleurs entre le rouge et le vert.

Télécharger le code de l’arduino vous causer n’aura acces au port usb, une fois que l’arduino est inséré dans le boîtier.

/*
Cycle de RVB à l’aide d’un capteur à ultrason.

Auteur : Bryan Vermaat - 2016

Voir pour une utilisation de ce code.

Ce code est accessible au public et peut être édité/modifié *

/ Les trois LEDs de couleurs primaires, conduits comme analgue sorties (en fait de PWM, mais / / suffisamment proche pour nos yeux analogique).

const int ledPinRed = 11 ; LED rouge relié à analogique sur broche const int ledPinGrn = 10 ; LED vert relié à analogique sur broche const int ledPinBlu = 9 ; LED bleue connecté à analogique broche de sortie

const int trigPin = 13 ; const int echoPin = 12 ; const int modeSwitchPin = 12 ;

Le potentiomètre de teinte va sur une broche analogique, en tenant la tige de / / 0V à 5V.

const int potPinHue = 0 ;

Constantes pour définir les plages.

const int hueRedLow = 0 ; const int hueRedHigh = 255 ; const int hueBlue = 170 ;

La gamme minimale et maximale pour le capteur à ultrasons.

const int rangeMin = 0 ; const int rangeMax = 200 ;

const int brightMin = 0 ; const int sekou = 255 ;

Variables de travail.

La valeur du potentiomètre est mappée à la plage de 0 à 360 (degrés). int valueHue ;

La teinte est la gamme de 0 (rouge) à 170 (en bleu) dans l’arc en ciel / / mode ou 255 (rouge) en couleur mode roue. Les gammes de luminosité de 0 (noir) à 255 (intensité maximum)

int teinte, luminosité ;

La saturation est fixée à 255 (complet) pour supprimer blead-par le biais de différents / / couleurs. Il pourrait être lié à un autre potentiomètre si une démonstration de teinte / / est souhaitée.

const int saturation = 255 ;

Le brightess de chaque LED (de 0 à 255).

unsigned int r, g, b ;

void setup() {/ / toujours besoin de fixer un taux de baud, même pour l’USB. Serial.Begin(9600) ;

Réglez de façon strictement de LED pour la sortie. pinMode (ledPinRed, sortie) ; pinMode (ledPinGrn, sortie) ; pinMode (ledPinBlu, sortie) ;

Définissez les broches pour le capteur à ultrasons. pinMode (trigPin, sortie) ; pinMode (echoPin, entrée) ; }

void loop() {/ / Hue le potentiomètre valeur est mappée à degrés - 0 à 360 - pour plus de commodité. valueHue = map(MeasureDistance(), 0, 1023, 0, rangeMax) ;

Mode de roue de couleur (rouge avec rouge, enroulé autour d’un cycle).

teinte = carte (valueHue, rangeMin, rangeMax, hueRedLow, hueRedHigh) ;

La luminosité est fixée à plein pour la roue de couleur. Cela pourrait être / / lié à un autre poteniometer si c’est un concept que vous désirez / / démontrer. luminosité = 255 ;

Effectuer la conversion. HSBToRGB (teinte, saturation, luminosité, r, g, & b) ;

analogWrite (ledPinRed, r) ; analogWrite (ledPinGrn, g) ; analogWrite (ledPinBlu, b) ;

Serial.Print ("lumineux =") ; Serial.Print(Brightness) ; Serial.Print ("teinte =") ; Serial.Print(Hue) ; Serial.Print ("rouge =") ; Serial.Print(r) ; Serial.Print ("vert =") ; Serial.Print(g) ; Serial.Print ("bleu =") ; Serial.Print(b) ; Serial.println("") ; Delay(50) ; }

Cette fonction de cassure: / / http://eduardofv.com/2011/01/15/arduino-rgb-led-h...

void HSBToRGB (unsigned int inHue inSaturation unsigned int, unsigned int inBrightness, unsigned int * ou, unsigned int * oG, unsigned int * oB) {si (inSaturation == 0) {/ / achromatique (gris) * ou = * oG = * oB = inBrightness;} else {unsigned int scaledHue = (inHue * 6); unsigned int secteur = scaledHue >> 8; / / secteur 0 à 5 autour de la couleur roue unsigned int offsetInSector = scaledHue - (secteur << 8); / / position au sein du secteur unsigned int p = (inBrightness * (255 - inSaturation)) >> 8; unsigned int q = (inBrightness * (255 - ((inSaturation * offsetInSector) >> 8))) >> 8 ; unsigned int t = (inBrightness * (255 - ((inSaturation * (255 - offsetInSector)) >> 8))) >> 8 ;

commutateur (secteur) {case 0: * RC = inBrightness; * oG = t; * oB = p; break ; case 1: * RC = q; * oG = inBrightness; * oB = p; break ; case 2: * RC = p; * oG = inBrightness; * oB = t; break ; case 3: * RC = p; * oG = q; * oB = inBrightness ; break ; case 4: * RC = t; * oG = p; * oB = inBrightness ; break ; default: / / case 5: * RC = inBrightness; * oG = p; * oB = q; break;}} }

Fonction pour mesurer la distance à l’aide d’un capteur à ultrason HC-SR04 long MeasureDistance() {longue durée, la distance digitalWrite (trigPin, basse); delayMicroseconds(2) ; digitalWrite (trigPin, HIGH); delayMicroseconds(10) ; digitalWrite (trigPin, LOW); durée = pulseIn (echoPin, HIGH); distance = (durée/2) / 29,1 ; si (distance > = rangeMax || distance < = rangeMin) {Serial.println (« hors de l’intervalle défini. Retour à la Max.") ; retour rangeMax ; } else {Serial.print(distance) ; Serial.println ("cm") ; le sentier ; } }

Articles Liés

Personne à charge-pendentif (charme de silhouette)

Personne à charge-pendentif (charme de silhouette)

Pas de meilleure façon d'accessoiriser vous-même qu'avec l'accessoire de votre vie... child.significant other.pet. Quand vos contenants de peinture aquarelle sont épuisent ; les réutiliser comme un moule pour une personne à charge-pendentif inventif.
Lumière d’ambiance de crâne RGB

Lumière d’ambiance de crâne RGB

Couleur de votre Halloween avec de la lumière de cette humeur crâne. Utiliser comme un sceptre ou une lanterne.Pour ce projet, j'ai utilisé 3d coque imprimé et attiny2313 sur la carte de prototypage petite.Étape 1: coque d'impression 3dJ'ai utilisé l
Vers les années 1980 avec l’égaliseur graphique

Vers les années 1980 avec l’égaliseur graphique

Pour ceux d'entre vous qui se souviennent des années 80, cela va sans doute ramener bons souvenirs lors de chaque pièce d'équipement audio dans l'univers connu était à l'époque, équipé d'une multitude de LED.Plus précisément l'omniprésent égaliseur g
RGB LED lumière d’aquarium

RGB LED lumière d’aquarium

faire votre réservoir de poissons coloré et lumineux avec la puissance de l'Arduino et RGB LEDÉtape 1: Collecte matériel Vous aurez besoin :-Une LED RGB-A l'aquarium avec des poissons-Arduino-Résistances-Fils de raccordement-Ordinateur avec l'IDE Ard
Projet des Carlitos : RGB LED ambiance Cube

Projet des Carlitos : RGB LED ambiance Cube

c'est la première d'une série de projets de bricolage électroniques / robotiques. Ces projets sont accompagnés de vidéos pédagogiques qui vont aideront à vous creux les nombreuses étapes impliquées dans l'exécution de la tâche à accomplir. Pour cette
Bon marché et facile Dial contrôlée pilote de del haute puissance RGB

Bon marché et facile Dial contrôlée pilote de del haute puissance RGB

Il peut y avoir beaucoup de pilotes LED RGB là-bas, mais celui-ci est un peu différent, sa polyvalent, petit, bon marché et est simple à contrôler.Un potentiomètre avec interrupteur intégré est utilisé pour les contrôles. Une pression brève, bascule
Les frais de la baie de lumière

Les frais de la baie de lumière

il s'agit d'un tableau des boîtes de conserve vides chien, chacun avec un seul phare LED à l'intérieur et une lentille de couleur sur l'ouverture. Les LEDs sont contrôlées par des détecteurs de mouvement provoquées par l'interaction de l'observateur.
Lumières de garage peu coûteux de bandes de LED

Lumières de garage peu coûteux de bandes de LED

Bonjour à vous tous les gens heureux. Bienvenue sur mon premier instructable.Ce projet est que j'ai récemment reconstruit mon garage et me suis retrouvé besoin d'éclairage complet tout au long.J'ai eu deux objectifs principaux : je voulais lumineux/m
ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

Bienvenue à mes tutoriels de contrôleur de charge solaire série. J'ai posté deux version de mon régulateur de charge PWM. Si vous êtes nouveau à ce vous pouvez consulter mon tutoriel précédent pour comprendre les fondements du régulateur de charge.C'
Lumière d’ambiance fausse fenêtre

Lumière d’ambiance fausse fenêtre

Pour chacun d'entre vous qui vivent actuellement dans le sous-sol de tes parents ou remonte à vivre dans le sous-sol de tes parents, robe sur votre demeure sans fenêtre avec cette lumière d'ambiance soignée fausse fenêtre. BTW, votre chambre a déjà é
Lire le niveau de lumière sur l’Internet via Arduino avec Teleduino

Lire le niveau de lumière sur l’Internet via Arduino avec Teleduino

Nous l'avons tous fait. Vous quittez la maison pour travailler le matin et vous vous demandez si vous avez quitté le garage lumière sur. Vous décidez de ne pas s'inquiéter à ce sujet et ensuite avoir des ennuis avec votre femme/mari/petite amie/petit
Dans quelle mesure le champ magnétique varie-t-elle avec distance ?

Dans quelle mesure le champ magnétique varie-t-elle avec distance ?

Cette Instructabler est une étude scientifique pour déterminer comment le champ magnétique varie avec la distance. Deux méthodes sont présentées et raisonnables des conclusions formulées.L'aimant est un type de disque mince, pas un bar aimant.Outils
RGB LED éclairage sur rail de Tube carton

RGB LED éclairage sur rail de Tube carton

ce projet a été entièrement points j'ai eu portant autour, à l'exception de la 100 diffuse RGB LED que j'ai acheté sur ebay pour 9,84 $.  Même si vous devez acheter tous les composants, il serait difficile de dépenser plus de $30.  Les lumières sont
Mise en route avec Arduino - capteur de lumière

Mise en route avec Arduino - capteur de lumière

Dans ce tutoriel, nous allons utiliser une résistance de lumière de la personne à charge (LDR) pour construire un simple détecteur de lumière.Étape 1: Connectez votre Arduino La première étape consiste à relier votre Arduino.Pour cela, nous allons av