Stapelbed boomhut (5 / 5 stap)

Stap 5: De electonics


Kon ik niet weerstaan het toevoegen van een beetje tech aan het bed, zodat ik sommige strips van RGB installeerde led's en een twinking ster veld/glow-worms op de onderzijde van het stapelbed.

De led strips waren gemakkelijk. Ik koos voor een vaste controller van ebay, zoals wordt weergegeven in de pic, als ik wist dat een afstandsbediening zou verdwijnen na een paar dagen. Ik één strip in het bovenste stapelbed en een ander onder voor de lezing.

De star plafond nam een beetje moeite... Ik aangepast deze code (http://playground.arduino.cc/Main/AnalogAndDigital...) voor het gebruik van de 6 pwm-uitgangen van een arduino mini. Mijn code is hieronder (voel je vrij om het laat me weten dat als u suggesties hebt, ik ben nog steeds leren arduino).

Ik voegde een aan-/ uitschakelaar en een potentiometer de LED helderheid in een doosje van de controle onder het stapelbed. Ik bedraad samen clusters van 6 LEDs aan elke PWM-uitgang van de arduino en voegde een 1 k ohm weerstand aan elk leidde tot het houden van de huidige down (ze niet hoefde te worden dat alles helder) en zorgen voor alle de leds zou de arduino niet overbelasten. Ik verborg de rommelige bedrading door een vel zwart polyester die zich uitstrekt over de onderkant van het stapelbed en vastzetten in plaats met dunne stukken van pine molding. De glans van de LEDs door de stof mooi, je kunt soort zien in de bijgevoegde foto's.

#define MAX_FIREFLIES_ON 6
int PotPin = A0; ** analoog aangesloten op pot int vervagen = 0;

Verander deze waarden om te bepalen hoe lang de LED blijft uit en hoe lang blijft het ON voor de analoge vuurvliegjes. Deze waarden zijn in milliseconden tijden 10 (d.w.z. 27 = 270 milliseconden). #define ANALOG_MIN_OFF 41 #define ANALOG_MAX_OFF 300 #define ANALOG_MIN_ON 50 #define ANALOG_MAX_ON 200

Wijzig deze waarden om te bepalen hoe lang de LED blijft uit en hoe lang blijft het ON voor de digitale vuurvliegjes. Deze waarden zijn in milliseconden. #define DIGITAL_MIN_OFF 4410 #define DIGITAL_MAX_OFF 30000 #define DIGITAL_MIN_ON 210 #define DIGITAL_MAX_ON 2100

Het aantal niveaus van vervagen voordat de LED uitgeschakeld met een digitale PWM is. Best niet wijzigen deze #define DIGITAL_FADE_INTERVAL 20 #define DIGITAL_FADE_WAIT 20

Gebruikt om aan te geven van de 4-Staten kunnen wij in. typedef enum {FADEUP, ON, FADEDOWN, OFF} FireflyState;

typedef struct FireFlyStruct {byte pin; //PWM output pinnen zijn 3,5,6,9,10, en 11 FireflyState staat, en //used om te bepalen welke staat de LED, fading op/neer of aan/uit niet-ondertekende long-waarde; //used als de huidige waarde van de LED's

Analoge waarden int duur; Hier wordt aangegeven hoe lang het lampje aan/uit

Digitale waarden niet-ondertekende lange tijd; Gebruikt voor tijd berekeningen om te zien of het is tijd om te veranderen staat Booleaanse knevel; Gebruikt voor het schakelen van de LED op/af met PWM unsigned long vervagen; gebruikt om te berekenen hoe lang de led zal worden in-/ uitschakelen voor PWM tijdens een fade omhoog/omlaag unsigned long fadeWait; gebruikt om de tijd die nodig is om langzaam te verdwijnen, dus het duurt alleen ietsje langer. } Firefly;

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

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

Gebruikt om te bepalen of de huidige pin een analoge of een Digital Pin is. Booleaanse isAnalog (int pin) {int lengte = sizeof(analogPins)/sizeof(*analogPins); voor (int i = 0; ik

Aan het einde van deze functie zullen alle van de vuurvliegjes setup //with de gegevens die ze nodig hebben om te functioneren. Wij ook inschakelen MAX_FIREFLIES_ON vuurvliegjes te ons beginnen. VOID initialize() {voor (int i = 0; ik < (sizeof(fireflies)/sizeof(Firefly)); i ++) {//Why ben ik met behulp van deze aanwijzer notatie van het adres van het object //and nemen dan het dereferencing? Het was iemand leert om het te doen. Als het u stoort, vervangt elk exemplaar van het "ff ->" met "vuurvliegjes [i]." en hetzelfde zal worden uitgevoerd door de //it. Firefly * ff = & vuurvliegjes [i]; FF -> pin = allPins [i]; Als (ik < MAX_FIREFLIES_ON) ff -> staat = ON; anders ff -> staat = OFF; FF -> waarde = 0;

Analoge waarden ff -> duur = 0;

Digitale waarden ff -> tijd = 0; FF -> toggle = true; FF -> vervagen = 0; FF -> fadeWait = 0;

Als (ik < MAX_FIREFLIES_ON) {als (isAnalog (ff -> pin) == true) ff -> duur = willekeurige (ANALOG_MIN_ON, ANALOG_MAX_ON); anders ff -> waarde = millis() + willekeurige (DIGITAL_MIN_ON, DIGITAL_MAX_ON);} anders {als (isAnalog (ff -> pin) == true) ff -> duur = willekeurige (ANALOG_MIN_OFF, ANALOG_MAX_OFF); anders ff-waarde > = ff -> tijd + willekeurige (DIGITAL_MIN_OFF DIGITAL_MAX_OFF); } } }

Bepalen hoeveel LED's zijn momenteel op en als die gelijk is aan MAX_FIREFLIES_ON, terug te keren waar. Booleaanse isMaxFireflies() {Boole retValue = false; int cnt = 0; voor (int ik = 0; ik < (sizeof(fireflies)/sizeof(Firefly)); i ++) {Firefly * ff = & vuurvliegjes [i]; als (ff -> staat! = OFF) cnt ++;} als (cnt > = MAX_FIREFLIES_ON) {retValue = true;} return retValue;}

Gebruikt voor onze vertraging van 10ms voor analoog. unsigned long analogDelayTime = 0;

/ * ANALOGE VUURVLIEGJES Opmerking: (er is een vertraging van 10ms op alle analoge vuurvliegjes).

Er zijn 4 landen die de vuurvliegjes in kunnen. ON = houdt de LED op totdat de teller op de duur instellen voor op. AF = houdt de LED af tot de teller op de duur instellen voor op. FADEUP = in de loop van 500ms, de helderheid wijzigen de LED's over 51 keer FADEDOWN = in de loop van 500ms, helderheid wijzigen de LED's ongeveer 51 keer

Als de firefly klaar is met zijn FADEUP, bepaalt het een willekeurige duur voor hoe lang de LED om op te houden. Evenzo bepaalt FADEDOWN een willekeurige duur voor hoe lang de LED om weg te houden.

Als een LED is klaar om te worden ingeschakeld (FADEUP) controleren we om te zien als we MAX_FIREFLIES_ON hebben bereikt. Als we hebben, dan wij dat LED weer instellen op de OFF-stand en vertellen het weer wachten zonder in te schakelen. * / analogFireflies() {} ongeldig

Zet een vertraging 10ms op alle van de analoge spullen. Als (millis ()-analogDelayTime < 50) keren; analogDelayTime = millis();

Alle van de analoge vuurvliegjes voor doorlopen (int i = 0; ik < (sizeof(fireflies)/sizeof(Firefly)); i ++) {Firefly * ff = & vuurvliegjes [i];

Als (isAnalog (ff -> pin) == false) blijven;

Als (ff -> staat == ON) {/ / Pin op analogWrite (ff -> pin, vervagen);

FF -> waarde += 1; Als (ff-waarde > == ff -> duur) {ff -> staat FADEDOWN; = ff -> waarde = vervagen;}} anders als (ff -> staat == OFF) {/ / Pin uit analogWrite (ff -> pin, 0);

FF -> waarde += 1; Als (ff-waarde > == ff -> duur) {als (isMaxFireflies()) {ff -> waarde = 0; ff -> staat = OFF; ff -> duur = willekeurige (ANALOG_MIN_OFF, ANALOG_MAX_OFF);} anders {ff -> staat FADEUP; = ff -> waarde = 0;}}} anders als (ff -> staat == FADEUP) {/ / Pin Fade Up ff-waarde > += 1; //previously 5 analogWrite (ff -> pin, ff -> waarde);

Als (ff-waarde > vervagen ==) {ff -> waarde = 0; ff -> staat = ON; ff -> duur = willekeurige (ANALOG_MIN_ON, ANALOG_MAX_ON);}} anders als (ff -> staat == FADEDOWN) {/ / Pin Fade neer ff-waarde >-=1; //previously 5 analogWrite (ff -> pin, ff -> waarde);

Als (ff-waarde > == 0) {ff -> waarde = 0; ff -> staat = OFF; ff -> duur = willekeurige (ANALOG_MIN_OFF, ANALOG_MAX_OFF);}} } }

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

VOID turnLedOn (int pin) {}

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

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

Alle van de pinnen (digitaal en analoog) doorlopen en zet hen (tot MAX_FIREFLIES_ON). Geeft ons een kans om te controleren of alle van de LED's zijn aangesloten en werken voordat het programma //and wordt gestart wanneer we raken opnieuw instellen op de arduino. VOID caterpillar() {int. allcount = (sizeof(allPins)/sizeof(*allPins));

for (int i = allcount-1; ik > = 0; i--) {als (ik < allcount-MAX_FIREFLIES_ON) turnLedOff(allPins[MAX_FIREFLIES_ON+i]); turnLedOn(allPins[i]); delay(250);}

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

void setup {//Set alle de digitale pennen voor uitvoer pinMode (PotPin, INPUT); Serial.begin(9600); voor (int i = 0; ik < (sizeof(allPins)/sizeof(*allPins)); i ++) {/ / if (isAnalog(i) == false) / / pinMode (ik, uitgang); / /}

Caterpillar(); Initialize(); }

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

Gerelateerde Artikelen

Stapelbed Twin/Twin set, Montana stijl!

Stapelbed Twin/Twin set, Montana stijl!

Ik heb enkele vrienden die een prachtige Ranch in Montana werken en hebben onlangs vroegen ze mij om een drievoudige muur-eenheid van stapelbedden met inbegrip van trappen en Captain's laden van hun belangrijkste guest house. Ik was net klaar om te s
Het plannen van een boomhut

Het plannen van een boomhut

boomhutten zijn één van de idyllische jeugd symbolen. Een bijzondere plaats, weg van ouders en school, dat is gewoon uw eigen. Het is niet moeilijk te zien waarom het is een idee dat heeft duurt al generaties. Maar eigenlijk de boomhut bouwen is niet
Stapelbed in te vouwen bedden

Stapelbed in te vouwen bedden

In mijn jongste zonen kamer heb ik een grote stapelbed; Er is een tweepersoonsbed op de bodem en één aan de bovenkant. Het stapelbed wordt vooral gebruikt voor gasten en er is een extra bed op de kamer die hij al van de tijd gebruikt. Aangezien u dat
Stapelbed-bed-desk

Stapelbed-bed-desk

dit ontwerp stapelbed-bed-desk groeide uit een behoefte aan grote hoeveelheden van Desktopruimte in een kleine 12m gekwadrateerde student tuin plat.Als een architecturale student, productieve ruimte was voorrang krijgen boven slaapgelegenheid en het
Afgraven van een boomhut

Afgraven van een boomhut

Dit instructable zal u tonen hoe om terug te vorderen van een boomhut in zware rekken en een werkbank/toolstands. Deze build was ingegeven door de noodzaak om te verwijderen van mijn kindertijd treehouse als het gevaarlijke van rot was geworden. Ik g
Hoe te bouwen een boomhut

Hoe te bouwen een boomhut

Deze bijzondere ontwerp vereist twee of drie bomen (of takken) in de nabijheid. Het werd gemaakt in de loop van verscheidene weekend met behulp van nieuwe, druk behandeld hout voor de ondersteunende structuur en verdieping en een oude hek was gerecyc
Upcycled stapelbed Workbench

Upcycled stapelbed Workbench

deze massief houten werkbank is ideaal voor beginners of iemand op zoek om geld te besparen. Het is gemaakt van een afgedankte stapelbed frame en extra schroeven had ik tot rond. Het hoeft niet elke machtshulpmiddelen met uitzondering van een elektri
De Micro-Bus stapelbed en Playhouse.

De Micro-Bus stapelbed en Playhouse.

Mijn broer heeft onlangs een nieuw huis gebouwd om beter past bij zijn familie.  Ik dacht dat een passend huis cadeau zou een stapelbed voor 3-jarige zoon.  Sinds mijn broer een enorm Volkswagen is fan, wat beter dan een VW thema bed.  Na het wassen
Van kinderen stapelbed om tween-Loft Hangout

Van kinderen stapelbed om tween-Loft Hangout

mijn zoon stapelbed neemt veel ruimte in zijn kleine kamer. Hij houdt van slapen omhoog maar de rest was net verspilde ruimte met ongewenste en stof konijntjes onder. Het onderste bed gehouden alle zijn opgezette dieren toen hij klein was, maar nu da
IKEA Kura bed geconverteerd naar stapelbed

IKEA Kura bed geconverteerd naar stapelbed

ik heb 2 kinderen, en enige tijd geleden, had ze elk hun eigen kamer. Het kleintje kreeg deze voor zijn voormalige peuter-bed en de grote jongen kreeg een KURA platform/loft bed van Ikea. Alles was geweldig voor ongeveer 2 jaar.Echter, een paar jaar
Niet een boomhut, niet een klimmen Frame

Niet een boomhut, niet een klimmen Frame

ik wilde om iets voor mijn kinderen om te spelen in en op te bouwen. Iets als een klimmen frame (Jungle Jim?) of een boomhut.Maar geen van onze bomen zijn echt groot genoeg, maar voor een goede treehouse en veel klimmen de frames zijn een beetje moei
De boomhut van karton

De boomhut van karton

veel kinderen met actiefiguren, poppen, spelen of lego mensen, en in plaats van het kopen van hen een plaats om te leven (een poppenhuis), waarom maakt u niet uw eigen kartonnen treehouse compleet met deuren en schuifdeuren boards van niveau naar niv
Minimalistische stapelbed

Minimalistische stapelbed

Ik heb een familie die zich uitbreidt, en zoals de meeste mensen zijn we altijd op zoek naar betere manieren om onze ruimte te gebruiken.Mijn twee oudste jongens delen van een kamer, en wilde een stapelbed dus ze kon weinig verspreid, en ik was blij
Stapelbed Ladder Fix

Stapelbed Ladder Fix

mijn dochter houdt van slapen op het bovenste stapelbed van haar bed behalve voor een ding... Het is een metalen stapelbed en de ladder kwetst haar voeten wanneer ze omhoog en omlaag klimt. Na het doen van sommige nadenken kwam ik met een idee. Ik we