Lit superposé Tree House (5 / 5 étapes)

Étape 5: L’electonics

Je ne pouvais pas résister à ajouter un peu de tech au lit, j’ai donc installé des bandes de RVB de led et un twinking étoiles champ/glow-worms sur le dessous de la couchette.

Les bandes de led ont été faciles. J’ai opté pour un régulateur fixe hors ebay, comme le montre la photo, que j’ai su qu'une télécommande aurait disparaissent après quelques jours. J’ai mis une bande dans le lit du haut et en dessous un autre pour la lecture.

Le plafond d’étoile a pris un peu d’effort... J’ai adapté ce code (http://playground.arduino.cc/Main/AnalogAndDigital...) pour utiliser les 6 sorties pwm d’un arduino mini. Mon code est ci-dessous (n’hésitez pas à me faire savoir que si vous avez des suggestions, je suis encore à apprendre arduino).

J’ai ajouté un interrupteur et un potentiomètre pour régler la luminosité de la LED dans une petite boîte de contrôle sous la couchette. J’ai câblées ensemble des grappes de 6 LEDs pour chaque sortie PWM de l’arduino et ajouté une résistance d’ohm 1 k à chaque conduit à maintenir le courant vers le bas (ils n’a pas à être tout ce que lumineuse) et s’assurer que tous les voyants ne seraient pas surcharger l’arduino. Je me suis caché tout le désordre de câblage par qui s’étend d’une feuille de polyester noir sur le dessous de la couchette et fixez-la en place avec petits morceaux de moulure de pin. Les LEDs brillent bien à travers le tissu, vous pouvez le voir genre de dans les photos ci-joint.

#define MAX_FIREFLIES_ON 6
int PotPin = A0 ; ** analogique connecté à pot fondu d’int = 0 ;

Modifier ces valeurs pour déterminer combien de temps les séjours LED OFF et combien de temps il restera allumé pour les lucioles analogiques. Ces valeurs sont en millisecondes fois 10 (c'est-à-dire 27 = 270 millisecondes). #define ANALOG_MIN_OFF 41 #define ANALOG_MAX_OFF 300 #define ANALOG_MIN_ON 50 #define ANALOG_MAX_ON 200

Modifier ces valeurs pour déterminer combien de temps les séjours LED OFF et combien de temps il restera allumé pour les lucioles numérique. Ces valeurs sont en millisecondes. #define DIGITAL_MIN_OFF 4410 #define DIGITAL_MAX_OFF 30000 #define DIGITAL_MIN_ON 210 #define DIGITAL_MAX_ON 2100

Le nombre de niveaux de fondu avant que le voyant est éteint avec un PWM numérique. Meilleur à ne pas changer ces #define DIGITAL_FADE_INTERVAL 20 #define DIGITAL_FADE_WAIT 20

Utilisé pour indiquer les 4 États, nous pouvons être po typedef enum {FADEUP, ON, FADEDOWN, OFF} FireflyState ;

typedef struct FireFlyStruct {broche octet ; //PWM broches de sortie sont 3,5,6,9,10 et 11 FireflyState État ; //used pour déterminer ce que la LED d’État est dans, la décoloration jusqu'à/vers le bas ou actif/inactif valeur de type long non signé ; //used que la valeur actuelle de LED

Durée d’int des valeurs analogique ; spécifie combien de temps la led sera marche/arrêt

Numérique des valeurs non signées longtemps ; Utilisé pour les calculs de temps pour voir si il est temps de changer la bascule booléenne État ; Utilisé pour l’activation/désactivation de la LED sur/off avec PWM unsigned long fondu ; utilisé pour calculer combien de temps le voyant lumineux marche/arrêt pour PWM pendant un fondu vers le haut/bas unsigned long fadeWait ; utilisé pour augmenter le temps qu’il faut pour se faner donc ça dure juste un peu plus. } Firefly ;

UNO R3 - 14 broches int analogPins [] = {3, 5, 6, 9, 10, 11} ; int allPins [] = {3, 5, 6, 9, 10, 11} ;

Firefly fireflies[sizeof(allPins)/sizeof(*allPins)] ;

Utilisée pour déterminer si le NIP actuel est un analogue ou une broche numérique. Boolean isAnalog (int NIP) {int longueur = sizeof(analogPins)/sizeof(*analogPins) ; pour (int i = 0; j’ai

À la fin de cette fonction, tous les lucioles seront le programme d’installation //with les données dont ils ont besoin afin de fonctionner correctement. Nous passons également sur les lucioles MAX_FIREFLIES_ON d’abord à nous. void initialize() {pour (int i = 0; j’ai < (sizeof(fireflies)/sizeof(Firefly)); i ++) {//Why je suis en utilisant cette notation de pointeur de prendre l’adresse de l’objet //and puis la référence à elle ? C’était pour montrer à quelqu'un comment faire. Si cela vous dérange, remplacez toutes les occurrences de « ff ->"avec « les lucioles [i]. » et //it se déroulera le même. Firefly * ff = & lucioles [i] ; FF -> code pin = allPins [i] ; Si (j’ai < MAX_FIREFLIES_ON) ff -> état = ON ; sinon ff -> État = OFF ; FF -> valeur = 0 ;

Ff de valeurs analogique -> durée = 0 ;

Ff de valeurs numérique -> temps = 0 ; FF -> Activer/désactiver = true ; FF -> fondu = 0 ; FF -> fadeWait = 0 ;

Si (j’ai < MAX_FIREFLIES_ON) {si (isAnalog (ff -> code pin) == true) ff -> durée = random (ANALOG_MIN_ON, ANALOG_MAX_ON); sinon ff -> valeur = millis() + aléatoire (DIGITAL_MIN_ON, DIGITAL_MAX_ON);} else {si (isAnalog (ff -> code pin) == true) ff -> durée = random (ANALOG_MIN_OFF, ANALOG_MAX_OFF); sinon ff -> valeur = ff -> heure + aléatoire (DIGITAL_MIN_OFF DIGITAL_MAX_OFF) ; } } }

Déterminer combien de LED actuellement sur et si c’est égal à MAX_FIREFLIES_ON, retourner la valeur true. Boolean isMaxFireflies() {ValeurRet booléen = false ; int cnt = 0; pour (int j’ai = 0; j’ai < (sizeof(fireflies)/sizeof(Firefly)); i ++) {Firefly * ff = & lucioles [i]; if (ff -> État! = OFF) cnt ++;} si (cnt > = MAX_FIREFLIES_ON) {ValeurRet = true;} return ValeurRet;}

Utilisé pour notre retard de 10 ms pour analog. unsigned long analogDelayTime = 0 ;

/ * NOTE de lucioles analogique: (il y a un retard de 10 ms sur toutes les lucioles analogiques).

Il y a 4 États en que lucioles peuvent être. ON = garde la LED sur jusqu'à ce que le compteur atteigne la durée définie pour sur. OFF = garde la LED éteint jusqu'à ce que le compteur atteigne la durée définie pour sur. FADEUP = au cours de 500ms, changer les LED luminosité sur 51 fois FADEDOWN = au cours de 500ms, changer les LED luminosité environ 51 fois

Quand la luciole a fini c' est FADEUP, il déterminera une durée aléatoire pendant combien de temps garder le LED sur. De même, FADEDOWN détermine une durée aléatoire pendant combien de temps pour éloigner le LED.

Si une LED est prête à être mis en marche (FADEUP), nous vérifions pour voir si nous arrivons à MAX_FIREFLIES_ON. Si nous avons, alors nous définir si le LED à l’État OFF et lui dire d’attendre encore une fois sans allumer. * / void analogFireflies() {}

Mettre un retard de 10ms sur l’ensemble des commandes analogiques. Si (millis ()-analogDelayTime < 50) return ; analogDelayTime = millis() ;

Parcourir tous les lucioles analogiques pour (int i = 0; j’ai < (sizeof(fireflies)/sizeof(Firefly)); i ++) {Firefly * ff = & lucioles [i] ;

Si (isAnalog (ff -> code pin) == false) continuer ;

Si (ff -> état == ON) {/ / Pin sur analogWrite (ff -> broche, fondu) ;

FF -> valeur += 1 ; Si (ff -> value == ff -> durée) {ff -> Etat = FADEDOWN; ff -> value = fondu;}} ElseIf (ff -> État == OFF) {/ / Pin Off analogWrite (ff -> pin, 0) ;

FF -> valeur += 1 ; Si (ff -> valeur == ff -> durée) {si (isMaxFireflies()) {ff -> valeur = 0; ff -> État = OFF; ff -> durée = random (ANALOG_MIN_OFF, ANALOG_MAX_OFF);} else {ff -> Etat = FADEUP; ff -> valeur = 0;}}} ElseIf (ff -> État == FADEUP) {/ / Pin Fade Up ff -> valeur += 1; //previously 5 analogWrite (ff -> broche, ff -> valeur) ;

Si (ff -> value == fondu) {ff -> valeur = 0; ff -> état = ON; ff -> durée = random (ANALOG_MIN_ON, ANALOG_MAX_ON);}} ElseIf (ff -> État == FADEDOWN) {/ / Pin Fade Down ff -> valeur-=1 ; //previously 5 analogWrite (ff -> broche, ff -> valeur) ;

Si (ff -> value == 0) {ff -> valeur = 0; ff -> État = OFF; ff -> durée = random (ANALOG_MIN_OFF, ANALOG_MAX_OFF);}} } }

//----------------------------------------------------------------------------------------------------

void turnLedOn (int NIP) {}

Si (isAnalog(pin) == true) analogWrite (broches, 255) ; } void turnLedOff (int NIP) {}

Si (isAnalog(pin) == true) analogWrite (broches, 0) ; }

Parcourt toutes les broches (analogiques et numériques) et eux se met en marche (jusqu'à MAX_FIREFLIES_ON). Nous permet une chance de s’assurer que toutes les LED sont connectées et réinitialisation de travail avant que le programme démarre //and lorsque nous sommes sur l’arduino. void caterpillar() {int allcount = (sizeof(allPins)/sizeof(*allPins)) ;

pour (int i = allcount-1; j’ai > = 0; i--) {si (j’ai < allcount-MAX_FIREFLIES_ON) turnLedOff(allPins[MAX_FIREFLIES_ON+i]) ; turnLedOn(allPins[i]) ; delay(250);}

pour (int i = MAX_FIREFLIES_ON-1; i > = 0; i--) {turnLedOff(allPins[i]) ; delay(250);}}

void setup() {//Set toutes les broches numériques de sortie pinMode (entrée, PotPin) ; Serial.Begin(9600) ; pour (int i = 0; j’ai < (sizeof(allPins)/sizeof(*allPins)); i ++) {/ / if (isAnalog(i) == false) / / pinMode (i, sortie); / /}

Caterpillar() ; Initialize() ; }

void loop() {fondu = map(analogRead(PotPin), 0, 1023, 1, 255); / / fade = 255 ; Serial.println(fade) ; analogFireflies() ; }

Articles Liés

Le lit superposé Micro-Bus et Playhouse.

Le lit superposé Micro-Bus et Playhouse.

Mon frère est récemment d'avoir une nouvelle maison construite pour mieux convenir à sa famille.  J'ai pensé qu'un cadeau maison appropriée serait un lit superposé pour son fils âgé de 3 ans.  Étant donné que mon frère est une Volkswagen énorme fan,
Lit superposé double/lits jumeaux ensemble, Style Montana !

Lit superposé double/lits jumeaux ensemble, Style Montana !

J'ai des amis qui utiliser un magnifique Ranch dans le Montana, et ils ont récemment m'a demandé de faire une triple mur-unité de lits superposés, y compris les escaliers et les tiroirs du capitaine pour leur principal guest house. Je me préparais ju
Lits superposés bricolage chien

Lits superposés bricolage chien

Créez votre propre toutou lits superposés !J'ai acheté deux d'entre eux : American Kennel Club solide Suede gousset Pet Bed avec fourrure Top et les dimensions sont 36" de large x 27" c'est la taille de ces plans sont conçus pour s'adapter à des
Simple et solide lit superposé 2 x 4 & 2 x 6

Simple et solide lit superposé 2 x 4 & 2 x 6

J'ai construit un grand nombre de ces lits superposés dans le passé et récemment construit un pour ma propre maison. Il s'agit d'une version super facile car les matériaux sont tous communs pin qualité de construction et chaque coupe est un degré 90
Lits superposés modernes - Concept - Virtual conception - Fabrication

Lits superposés modernes - Concept - Virtual conception - Fabrication

Depuis ma femme et moi sommes regarder vers le bas de kid #3, j'ai pensé qu'il était temps de faire un lit superposé, ainsi nous pouvons faire le shuffle grande chambre avant l'arrivée de notre nouveau bébé. Vous avez peut-être remarqué ce lit superp
Lits superposés en pliage

Lits superposés en pliage

Dans ma chambre de fils plus jeune, j'ai un grand lit superposé ; Il y a un lit double en bas et une sur le dessus. Le lit est principalement utilisé pour les invités et il y a un lit supplémentaire dans la chambre qu'il utilise tout le temps. Comme
Facile, modulaire, lits superposés pin

Facile, modulaire, lits superposés pin

j'ai avez été des projets de construction de Instructables ans mais n'ont jamais vraiment eu le temps de poster mes propres projets. J'ai me suis retrouvé avec un peu plus de temps ces derniers temps mais et décidé qu'il était temps de commencer à re
Upcycled lit superposé Workbench

Upcycled lit superposé Workbench

cet ETABLI bois est idéal pour les débutants ou tout le monde qui cherchent à économiser de l'argent. Il est composé d'une armature de jetés de lits superposés et une vis supplémentaire, j'ai eu autour de la pose. Il ne nécessite pas d'outils de puis
Lit IKEA Kura converti en lit superposé

Lit IKEA Kura converti en lit superposé

j'ai 2 enfants, et quelque temps auparavant, chacun d'eux avait leur propre chambre. Le tout-petit eu ce pour son lit ancien tout-petit et le grand gars a obtenu un lit plate-forme/loft KURA d'Ikea. Tout était formidable pour environ 2 ans.Cependant,
Lit superposé bois la ferraille pour American Girl ou 18 pouces poupée

Lit superposé bois la ferraille pour American Girl ou 18 pouces poupée

Je suis tout au sujet de faire les choses pour les cadeaux et ma plus jeune fille a besoin d'un lit de poupée pour ses poupées de 18 pouces depuis un certain temps. Parce qu'elle est rusée comme moi ses poupées ont eu de nombreux lits en carton mais
Amputée de lit superposé

Amputée de lit superposé

lits superposés sont étonnamment coûteux si vous obtenez un robuste, et ceux à bas prix se sentent assez fragile. Celui-ci est très facile à construire à partir de bois standard et il est solide comme le roc. Eh bien, au moins aussi solide que votre
Lit superposé de pin

Lit superposé de pin

J'ai toujours voulu plonger dans un projet de construire quelque chose avec du bois, et cette année j'ai eu la chance quand nos enfants avait besoin d'un lit superposé ! J'ai trouvé cet autre projet instructable après une recherche et a décidé de plo
Construire un lit superposé d’une vieille porte en bois.

Construire un lit superposé d’une vieille porte en bois.

Quand je suis tombé sur cette porte blanche que mon voisin a serrage dehors, j'ai instantanément eu une idée en tête avec lui, alors il a transmis ma façon...Espace dans ma chambre est à une prime absolue, donc j'ai appliqué le même format que les ch
Lits superposés/gigogne des filles

Lits superposés/gigogne des filles

C'est près de l'extrémité sans la gigogne sous la couchette du bas... Je vais montrer quelques photos dans les étapes de comment nous avons commencé ce projet et pourquoi nous avons décidé de le construire nous-mêmes...Étape 1: La filles chambre avan