Trädkoja våningssäng (5 / 5 steg)

Steg 5: Electonics



Jag kunde inte motstå att lägga lite av tech till sängen, så jag installerade några remsor av RGB ledde och en twinking stjärna fält/glow-worms på undersidan av britsen.

De ledda remsorna var lätt. Jag valde en fast styrenhet på ebay, som visas i bilden, som jag visste att en fjärrkontroll skulle försvinner efter några dagar. Jag lägger en remsa i överslafen och en annan på undersidan för läsning.

Stjärna taket tog lite ansträngning... Jag anpassade här koden (http://playground.arduino.cc/Main/AnalogAndDigital...) för att använda de 6 pwm utgångarna för en arduino mini. Min kod är nedan (gärna låta mig veta om du har några förslag, jag är fortfarande lärande arduino).

Jag la en strömbrytare och en potentiometer att justera LED ljusstyrka i en liten kontroll låda under britsen. Jag trådbundna tillsammans kluster av 6 lysdioder till varje PWM utgången arduino och lagt till en 1 k ohm motstånd till varje ledde till hålla nuvarande down (de inte behöver vara så ljusa) och se till att alla lampor inte skulle överbelasta arduino. Jag gömde det stökigt ledningar av sig ett ark svart polyester längs undersidan av britsen och säkra den på plats med tunna bitar av tall formblåsning. Lysdioder lyser fint igenom tyget, du kan slags se det i bifogade bilder.

#define MAX_FIREFLIES_ON 6
int PotPin = A0; ** analog ansluten till potten int fade = 0;

Ändra dessa värden för att avgöra hur långa LED vistelser utanför och hur länge det stannar ON för analoga eldflugor. Dessa värden är i millisekunder gånger 10 (dvs 27 = 270 millisekunder). #define ANALOG_MIN_OFF 41 #define ANALOG_MAX_OFF 300 #define ANALOG_MIN_ON 50 #define ANALOG_MAX_ON 200

Ändra dessa värden för att avgöra hur långa LED vistelser utanför och hur länge den stannar ON Digital eldflugor. Dessa värden är i millisekunder. #define DIGITAL_MIN_OFF 4410 #define DIGITAL_MAX_OFF 30000 #define DIGITAL_MIN_ON 210 #define DIGITAL_MAX_ON 2100

Antalet nivåer transparensen innan lampan är avstängd med en digital PWM. Bästa för att inte ändra dessa #define DIGITAL_FADE_INTERVAL 20 #define DIGITAL_FADE_WAIT 20

Används för att ange de 4 staterna kan vi vara i. typedef fasttexttypen {FADEUP, ON, FADEDOWN, OFF} FireflyState;

TypeDef struct FireFlyStruct {byte pin; //PWM utgångsstift är 3,5,6,9,10, och 11 FireflyState stat; //used att avgöra vad staten LED är i, bleknande upp/ner eller på/av osignerade långa värde; //used som leds nuvarande värde

Analoga värden int varaktighet; Anger hur länge led kommer att vara på/av

Digitala värden osignerade länge; Används för tidsberäkningar för att se om det är dags att byta stat booleska växla; Används för att växla LED på/off med PWM osignerade långa tona; används för att beräkna hur lång led kommer att vara på/av för PWM under en tona upp/osignerade långa fadeWait; används för att öka den tid det tar för att blekna så räcker det bara lite längre. } Firefly;

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

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

För att fastställa om nuvarande PIN-koden är en Analog och en Digital Pin. booleska isAnalog (int pin) {int längd = sizeof(analogPins)/sizeof(*analogPins); för (int jag = 0; jag

I slutet av denna funktion blir alla eldflugor setup //with den information de behöver för att fungera korrekt. Vi vänder också på MAX_FIREFLIES_ON eldflugor att börja oss. void initialize() {för (int jag = 0; jag < (sizeof(fireflies)/sizeof(Firefly)); i ++) {//Why jag med denna pekaren notation av ta adressen till objektet //and då avrefereringen det? Det var att visa någon hur man gör. Om det stör dig, ersätta varje förekomst av "ff ->" med "eldflugor [i]." och //it kommer att köra samma. Firefly * ff = & eldflugor [i]; FF -> pin = allPins [i]; om (jag < MAX_FIREFLIES_ON) ff -> state = ON; annars ff -> state = OFF; FF -> värde = 0;

Analoga värden ff -> längd = 0;

Digitala värden ff -> tid = 0; FF -> Växla = sant; FF -> tona = 0; FF -> fadeWait = 0;

om (jag < MAX_FIREFLIES_ON) {om (isAnalog (ff -> pin) == true) ff -> längd = random (ANALOG_MIN_ON, ANALOG_MAX_ON); annars ff -> värde = millis() + random (DIGITAL_MIN_ON, DIGITAL_MAX_ON);} annat {om (isAnalog (ff -> pin) == true) ff -> längd = random (ANALOG_MIN_OFF, ANALOG_MAX_OFF); annars ff -> värde = ff -> tid + random (DIGITAL_MIN_OFF DIGITAL_MAX_OFF); } } }

Bestäm hur många LED är för närvarande och om det är lika med MAX_FIREFLIES_ON, returnerar sant. booleska isMaxFireflies() {boolean retValue = false; int cnt = 0; för (int jag = 0; jag < (sizeof(fireflies)/sizeof(Firefly)); i ++) {Firefly * ff = & eldflugor [i]; om (ff -> staten! = OFF) cnt ++;} om (cnt > = MAX_FIREFLIES_ON) {retValue = sant;} återvända retValue;}

Används för vår försening av 10ms för analog. osignerade långa analogDelayTime = 0;

/ * ANALOG ELDFLUGOR Obs: (det finns en 10 ms fördröjning på alla analoga eldflugor).

Det finns 4 stater eldflugor kan vara i. PÅ = håller LED på tills räknaren når den tid som angetts för på. OFF = håller LED av tills räknaren når den tid som angetts för på. FADEUP = under loppet av 500ms, ändra lysdioder ljusstyrka om 51 gånger FADEDOWN = under loppet av 500ms, ändra lysdioder ljusstyrka ca 51 gånger

När firefly är färdigt det är FADEUP, avgör det en slumpmässig tid hur länge att hålla lampan på. På samma sätt bestämmer FADEDOWN en slumpmässig tid hur länge att hålla LED av.

Om en LED är redo för (FADEUP) att kontrollera vi om vi har nått MAX_FIREFLIES_ON. Om vi har, sedan vi satte det LED tillbaka till OFF staten och berätta den till vänta igen utan att slå på. * / void analogFireflies() {

Sätta en 10 ms fördröjning på alla analoga saker. om (millis ()-analogDelayTime < 50) återvända; analogDelayTime = millis();

Iterera genom alla analoga eldflugor för (int jag = 0; jag < (sizeof(fireflies)/sizeof(Firefly)); i ++) {Firefly * ff = & eldflugor [i];

om (isAnalog (ff -> pin) == false) fortsätta;

om (ff -> staten == ON) {/ / Pin på analogWrite (ff -> pin, fade);

FF -> värde + = 1; om (ff -> värde == ff -> varaktighet) {ff -> state = FADEDOWN; ff -> värde = fade;}} annars om (ff -> staten == OFF) {/ / Pin av analogWrite (ff -> pin, 0);

FF -> värde + = 1; om (ff -> värde == ff -> varaktighet) {om (isMaxFireflies()) {ff -> värde = 0; ff -> state = OFF; ff -> längd = random (ANALOG_MIN_OFF, ANALOG_MAX_OFF);} annat {ff -> state = FADEUP; ff -> värde = 0;}}} annars om (ff -> staten == FADEUP) {/ / Pin tona upp ff -> värde + = 1, //previously 5 analogWrite (ff -> pin, ff -> värde);

om (ff -> värde == fade) {ff -> värde = 0; ff -> state = ON, ff -> längd = random (ANALOG_MIN_ON, ANALOG_MAX_ON);}} annars om (ff -> staten == FADEDOWN) {/ / Pin tona ner ff -> värde-=1; //previously 5 analogWrite (ff -> pin, ff -> värde);

om (ff -> värde == 0) {ff -> värde = 0; ff -> state = OFF, ff -> längd = random (ANALOG_MIN_OFF, ANALOG_MAX_OFF);}} } }

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

void turnLedOn (int pin) {

om (isAnalog(pin) == true) analogWrite (pin, 255); } void turnLedOff (int pin) {

om (isAnalog(pin) == true) analogWrite (pin, 0); }

Itererar igenom alla stiften (digital och analog) och visar dem på (upp till MAX_FIREFLIES_ON). Ger oss en chans att se till att alla lysdioder är ansluten och arbeta innan programmet börjar //and när vi träffar återställa på arduino. void caterpillar() {int allcount = (sizeof(allPins)/sizeof(*allPins));

för (int jag = allcount-1; jag > = 0; i--) {om (jag < allcount-MAX_FIREFLIES_ON) turnLedOff(allPins[MAX_FIREFLIES_ON+i]); turnLedOn(allPins[i]); delay(250);}

för (int jag = MAX_FIREFLIES_ON-1; jag > = 0; i--) {turnLedOff(allPins[i]); delay(250);}}

void setup() {//Set alla digitala stift till utgång pinMode (PotPin, indata); Serial.BEGIN(9600); för (int jag = 0; jag < (sizeof(allPins)/sizeof(*allPins)); i ++) {/ / om (isAnalog(i) == false) / / pinMode (i, matas); / /}

Caterpillar(); Initialize(); }

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

Se Steg
Relaterade Ämnen

Twin/Twin våningssäng uppsättning, Montana stil!

Jag har några vänner som köras vid en underbar Ranch i Montana och de har nyligen bett mig att göra en trippel vägg-enhet av britssängar inklusive trappor och Captains lådor för deras huvudsakliga guest house. Jag var bara redo att starta projektet n...

Hur du planerar en trädkoja

Tree houses är en idyllisk barndom symboler. En speciell plats, från föräldrar och skolan, det är bara din egen. Det är inte svårt att se varför det är en idé som har pågått i generationer. Men faktiskt bygga trädkojan är inte barnens arbete. För att...

Våningssäng stege fixa

min dotter älskar sover på överslafen i hennes säng förutom för en sak... Det är en metall våningssäng och stegen gör ont hennes fötter när hon klättrar upp och ner. Efter lite funderande kom jag med en idé. Jag är säker på att inte jag är den första...

Våningssängar

Hej, idag jag kommer att visa dig hur man gör våningssängar.Steg 1: materialDu behöver:Sängar x 2Dörrar x 2Steg 2: Att göra våningssängarna Placera några block 2 x 1 på golvet. En säng på två block, bryta block under sängen, plats sängen där de två b...

DIY hund våningssängar

Skapa din egen vovve våningssängar!Jag köpte två av dessa: American Kennel Club Solid mocka kil sällskapsdjur bädd med päls topp och mått är 36" bred x 27" djup så det är storleken på sängar dessa planer är utformade för att passa. Om du redan h...

Barnens våningssäng slott!

En fantastisk afton av aktivitet visade en vardagliga barntyger från detta roliga men mycket standard våningssäng... till detta slott, komplett med räcken, fönster, välvda dörröppningar, gardiner och hemliga gångar!Barn älskar det! : D...

Återerövra en trädkoja

Detta instructable visar dig hur till återvinna en treehouse in tunga hyllor och en arbetsbänk/toolstands. Detta bygga motiverades av behovet att ta bort min barndom treehouse som det hade blivit farligt från röta. Jag råkade vara att bygga en verkst...

Skrot trä våningssäng för amerikansk tjej eller 18 tum docka

Jag är allt om att göra saker för gåvor och min yngsta dotter har varit i behov av en docka säng för sin 18 tum dockor länge nu. Eftersom hon är listig som mig hennes dockor har haft många sängar gjort av kartong men jag tyckte det var dags för en me...

Våningssäng i på fällbara sängar

I min yngsta sons rum har jag en stor våningssäng; Det finns en dubbelsäng på botten och en på topp. Våningssäng används främst för gäster och det finns en extra säng i rummet som han använder hela tiden. Som ni kan föreställa er våningssäng tar upp...

Trippel våningssäng

Behövs för att förvandla min dubbel våningssäng rummet till en trippel våningssäng rummet. Med hjälp av layouten på en Ikea våningssäng, lagt till en annan våningssäng och ersatt alla befintliga 1 "x 4" styrelser med 2 "x4" och 1 "...

DIY våningssäng som, med trappor, cubbie hyllor och naturligtvis... en bild!

jag tycker om att göra våningssängar som är gjorda för att hålla en livstid! Här är några som jag har gjort. En av dessa dagar, och om någon är även intresserad, jag kommer att göra en "utbildning" och gå igenom hur jag gör dem så du kan göra en...

Från barnen våningssäng till interpoleringen Loft Hangout

min sons våningssäng tar upp mycket utrymme i sitt lilla rum. Han älskar att sova högt upp men resten var bara slösat utrymme med skräp och damm bunnies under. Den nedre sängen höll alla hans uppstoppade djur när han var liten men nu när han är 12 ha...

IKEA Kura säng konverteras till våningssäng

jag har 2 barn, och för en tid sedan de var hade eget rum. Den lilla som fick detta för hans tidigare barn säng och den stora killen fick en KURA plattform/loft säng från Ikea. Allt var bra i ca 2 år.Dock ett par år sedan, den lilla och den stora en...

Enkel, modulär, Pine våningssängar

jag har byggt projekt från Instructables i år men har aldrig riktigt haft tid att lägga upp någon av mina egna projekt. Jag har grunda mig själv med lite extra tid på senare tid ändå och det var dags att börja ge tillbaka till gemenskapen. Så, för mi...

Våningssäng

Detta projekt är ett resultat av nödvändighet [jag var tvungen att få en säng som passar i begränsade utrymmen, men kunde inte hitta färdiga]Jag har valt den enklaste, snabbaste [och möjligt den billigaste] sätt att göra det.Steg 1: Material och verk...

Cat våningssängar med gamla resväskor

jag frågade min mormor om jag kunde ha en uppsättning av hennes 60 år gamla resväskor. De var två nyanser av brunt (som om de alla var). Jag bort locken, målade dem gröna, ersatt tyget inne, lagt benen, skära ner räcket spindlar, sätta ihop dem och s...

Lätt och stark 2 x 4 & 2 x 6 våningssäng

Jag har byggt en hel del dessa våningssängar i förflutnan och nyligen byggde en för mitt eget hem. Detta är en super lätt bygga som materialen är alla gemensamma konstruktion klass tall och varje klippa är en 90 graders klippa så det finns inga kompl...

Minimalistisk våningssäng

Jag har en växande familj och som de flesta människor vi letar alltid efter bättre sätt att använda vårt utrymme.Mina två äldsta pojkar dela rum och ville ha en våningssäng så de kunde sprida ut lite, och jag var glad att bygga dem en. Så började jag...

Enbenta våningssäng

våningssängar är förvånansvärt dyra om du få en robust, och de billiga som känner ganska tunn. Här är mycket lätt att bygga från off-the-shelf virke, och är bergfast. Tja, åtminstone lika solid som ditt hus. Denna säng bäddad för mina två små pojkar,...