Kedjad humör-ljus med hjälp av hög effekt RGB lysdioder (9 / 11 steg)

Steg 9: Ansluta master lampan




Slav lyktorna inte arbetar utan master styrelsen. Det kan vara bra att först se master lampan fungerar, innan montering alla slavar, men jag bör ha berättat att tidigare should't I. Oh well, jag är säker du listat som ut själv.

Det enda som skiljer sig från master lampan till slav lampor är att det finns en annan mikrokontroller i den (eller du kan också använda arduinos i alla slav lampor och ladda upp koden (anpassad) slav till slav lampor). Det är också den enda lampan som har en USB-kontakt och en IR-mottagare.
Jag bort det ursprungliga mini-USB-uttaget från styrelsen och använde wire wrap kablar (några andra små kablar kommer att vara bra) att återknyta kontakten med 5cm kabel i mellan. Jag använde dremel verktyg för att göra ett hål i lampan som passar i USB-uttaget, så jag kan uppdatera master programmet utan att öppna lampan. På motsatt sida gjorde jag ett hål stort nog för IR-mottagaren men tillräckligt små för att utifrån det bara ser ut som en liten svart knopp. Det är en bra idé att placera IR-mottagaren om mitt mellan skarv av de två halvorna och botten av lampan.
Anslut IR-mottagaren till GND, 5V och utgångssignal till stift till arduino digital stift 8 (som är kopplad med timer1 input capture avbrottet).

Koppla in NFET transistorn till Arduino: Anslut grinden till digital stift 13 och källan till GND. Avloppet ansluts till den negativa ingången på fläkten. Anslut den positiva ingången på fläkten till den Arduino 5V stift. Ja, det är en 12V fläkt men på 5V det skapar tillräckligt luftflöde för att hålla lampan kyls och det skapar nästan ingen buller. Om din fan inte fungerar på 5V, ansluta den till 12V linjen (som också är sant för alla slav lampor förresten).

Använd två 1.5 k Ohm motstånd och ansluta dem som pullups: en från SDA (analog pinne 4) till 5V och en från SCL (analog pin 5) till 5V. Detta är pullups I2C kommunikation bussen. Om du glömmer dem, fungerar inte den seriell kommunikationen. Använd inte den Arduino inre pullups, de är för svag (ignorera denna mening om du inte vet om den inre pullups av Arduino, de aktiveras av programvara och det spelar ingen roll om de är aktiverade eller inte om du löda externa pullups).

PWM signaler genereras med hjälp av timer1 (röda och gröna) och timer2 (blå). Stiften kontrolleras är digital stift 9 (röd), digital stift 10 (grön) och digital stift 11 (blå).
Timer1 är en 16-bitars timer, vilket ger dig 65'536 färg steg, vilket är mer än tillräckligt (ovanför 12 bitar du kan inte se någon "färg hopp" när dimming) men timer1 är bara en 8-bitars timer. I början hade jag både köra i 8-bitars läge men som såg lite skit eftersom våra ögon är logaritmisk och lysdioden är linjär, vilket innebär att du uppfattar en förändring från 2 till 4 som en större förändring i ljusstyrka än en förändring från 200 till 255. I verkligheten 256 ljusstyrka steg, när det görs i en logaritmisk sätt bara ge dig om 12-13 färgvärden (i teorin, i verkligheten är det några fler) per kanal, vilket resulterar i totalt 13 ^ 3 = 2197 urskiljbara färger. Låter som ett mycket men det är inte.

Jag går en bit in på Detaljer om koden nu, om du inte är bekant med hårdvara timing och timer grejer, hoppa över den.
Jag har sökt på nätet för ett par timmar att försöka hitta en programvara metod att öka 8 bit timern, men alla av dem introducera jitter fel programvara fördröjning, vilket resulterar i täta flimra av en led som inte är acceptabelt. Jag sedan satte mig och skrev min egen kod för att få en högre upplösning. Fann jag att för de lägre värdena, programvara förseningar är för långsamma, också avbrott är inte tillräckligt snabbt (vi talar enkel cpu klocka precision här). Det kunde kanske ha gjorts i assembler men jag ville inte gå in på denna väg, sir.
Jag använde i stället ett trick (som jag upptäckte av en slump, och nu är ganska stolt över) som timers inte uppdateras omedelbart jämför matcha register men har en buffert på den, uppdatera den bara på nästa timer översvämningen. Med detta i åtanke jag använder timer2 översvämningen att synkronisera och kontrollera timers och kan göra en upp till 16-bitars timer av alla 8 bit timer, men kan också ha vara det 12bits eller 13bits. Detta tillför en hel del CPU belastning, men master lampa bara behöver lyssna till IR, skicka kommandon och generera PWM, som är alla oftast sker i hårdvara så det finns tillräckligt med tid göra färg beräkningar och grejer under tiden. Med en arduino CPU klocka 16 MHz och en timer prescaler 8 (med en prescaler 1 CPU-belastningen blir för högt på grund av avbrott varje 256 timer-signaler) PWM frekvensen är 2MHz/(2^13) = 244 Hz (för slav lampor är det bara 122 Hz eftersom de kör på 8 Mhz) vilket är bra (100 Hz är minimum för att få flimmer fri lampor).

Bra, så vi har en mjukvara-hårdvara kombination PWM-utgång med en 13 bit upplösning, vilket ger oss 8191 linjär färg steg för varje lykta, detta ger oss 254 logaritmisk steg (upplösningen är faktiskt alltför hög och de lägre värdena använder samma antal timer-signaler) resulterande i 16'387 ' 064 olika färger! Detta ger fin och smidig färgändringar.

OK, nog om den koden och färg teorin. Koppla in 12V strömförsörjning till arduino. Ta strömkabeln och uttrycka det genom en av de två mindre hål i botten av lampan. Anslut den till ingången på 12V strömförsörjning AC, se till att använda värme krympslang på lödde lederna av kabeln. Ordna all elektronik fint i två trä skålar och fixa det med lim, som beskrivs för slav lyktorna. Dubbelkolla att 230V raderna är säkrade och välisolerade. Nu kan du ansluta det (jag använder en förlängningssladd med en switch, också från IKEA). Var extra noga nu, lampan har fortfarande vissa ställen (på nätet) med exponerade 230V delar.

Det fungerar inte som förväntat? Gotcha. Du behöva kommentera ut alla updatelamp(x); kommandon från arduino koden (också från alla funktioner!), med x är 1 till 5 (endast uppdatering lampa 0, master). Kommandona updatelamp vänta på det rätta svaret från slav och försök skicka kommandon om det misslyckas, så programmet faller in i en oändlig loop. Du kan sätta i en timeout i kommandot updatelamp om du önskar, jag ville inte göra det så ingen lampa hoppar alla färger.
Oh och medan du arbetar på master lampan, sätta i tre pulldown (till GND) motstånd av kan säga om 2k ohm på varje PWM-signal stiften. Jag glömde att göra det och master lampan blinkar starkt vitt ljus i ca en halv sekund, som det under uppstart av arduino would't om jag inte hade glömt de pulldowns...

Om allt fungerar, är det nu dags att hookup slavar. Jag hoppas du markerat som ett du programmerat med adressen till slav nummer ett.

Obs: Jag vet att det finns fortfarande några buggar i koden, om du hittar en, vänligen rapportera det till mig (och om du vet hur man fixar det, berätta för mig). Också min kunskaper i programmering är måttlig i bästa och koden är en enda röra men jag försökte lägga till i kommentarer på de flesta av linjerna (kan vara på tyska i vissa delar, ledsen för det). Det är fortfarande ett pågående arbete (vilken kod inte?) och inte helt saneras.
Eventuella tillägg eller förslag till koden är välkomna.

Se Steg
Relaterade Ämnen

Fuzzy logic humör ljus med LED

i detta instructable kommer jag göra ett ljus av saker jag haft med saker jag hittade runt huset röda humör.Efter en särskilt lång, besvärlig natt underhållande företaget befann jag mig i behov av en låg wattage ljuskälla av den romantiska böjelsen....

Spark.IO väckarklocka med humör ljus

Spark.io väckarklocka kan vara användbart om du måste vakna upp vid sådana en tid som ditt rum är fortfarande mörkt. När du ställa alarmet ska betalas, den humör lampa bleknar till den färgen du valt och när det är fullt upplyst, spelas en låt på en...

Vår tid blomma humör lampa med färg förändras LED te ljus

detta är en mycket enkel humör ljus att fira början av våren! De kan göras för ~$1.50ea och tar bara några minuter att montera. Den har en 80 tim batteritid, 7 färger och 2 x CR2032 batterier.Produktstruktur:1. limpistol med varmt lim2. 3D tryckt lam...

Humör lampa med Arduino

Hej! I den här självstudiekursen lär du göra en humör lampa med arduino.Jag vet att du kanske har sett en hel del humör lamp projekt med arduino, men jag inte var mycket nöjda med dem eftersom de alla ändra färg mycket plötsligt. Så jag beslöt att gö...

Häftigt humör ljus

detta häftigt humör ljus ser bra och är lätt att göra det också använder återvunnet materiel.Steg 1: Steg 1 Hacking ljus-sabel jag hittade detta ljus-saber lögnaktig runt omkring och trodde det skulle göra ett bra humör ljus eftersom det hade alla de...

3D-skrivare glödtråden färg fjärranalys humör ljus

Detta är min första Instructable så om det är några frågor eller förslag kan du lämna en kommentar nedan.I detta Instructable kommer jag visa dig hur man gör en glödtråd färg upptäckt humör ljus för din 3D-skrivare. Färgsensor identifierar färgen glö...

1 watt LED ljus med kylfläkt med mobilladdare

I detta projekt jag bara gjorde en massa 10 ledde av 1 watt och gå med dem för att göra en perfekt ljus och det mest fantastiska är att det fungerar på normal laddare...Mitt arbete i dessa videorDel 1:Del 2:Steg 1: krävs jag ger steg för steg detalj...

Hur man gör hemmagjorda ljus med granulerad vax kristaller (sista instruktion)

Material:1 Ziploc väskaVaxad veke med veken flikar fästCandle doft (flytande)1 granulerad vax kristall väskaMurare burk (valfritt) band eller manila hantverk dekoration paketet** Det totala priset för att köpa material kommer att vara under $25 och d...

Hur man gör hemmagjorda ljus med strösocker vax kristaller

Material:1 Ziploc väskaVaxad veke med veken flikar fästCandle doft (flytande)1 granulerad vax kristall väskaMurare burk(VALFRITT) Band eller manila hantverk dekoration paketet** Det totala priset för att köpa material kommer att vara under $25 och du...

Skapa din egen smart ljus med hjälp av elektriska Imp

Skapa din egen smart ljus med hjälp av elektriska Imp. Lär dig att kontrollera och övervaka dina lampor från mobil, Tablet PC och skrivbordet i 15 minuter. $44 i hårdvara. Posten nivå.Steg 1: hårdvaraFör att slutföra denna tutorial behöver du följand...

Skapa din egen smart ljus med hjälp av TinyDuino

Skapa din egen smart ljus med hjälp av TinyDuino. Lär dig att kontrollera och övervaka dina lampor från mobil, Tablet PC och skrivbordet i 15 minuter. $101 i hårdvara. Posten nivå.Steg 1: hårdvaraFör att slutföra denna tutorial behöver du följande ko...

Hacka en $4 LED-ficklampa i ett dyk ljus med en laxerande!

jag trodde ärligt att detta inte skulle fungera eftersom det är alldeles för enkelt och lätt för mig att vara den första personen att tänka på det. (eller åtminstone den förste att publicera) En normal scuba ljus kommer att köra dig om att $100-$150,...

Hur man gör en cykel ljus med större visiblity

Vi älskar vår cykel lampor, men de sprida sådana små, intensivt ljus. Vi har utökat visiblity i en bakre bike ljus. Vi använder det genomskinliga materialet av en mjölkflaska för diffust ljus över ett större utrymme. Vi har kontrollerat för att se ti...

Strawbee humör ljus spaljé

Detta är andra Instructables FBRKN gör efter strawbees bygga natten hade vi ett par veckor sedan.Vi försökte hitta sätt att använda strawbees till något förutom spela och bygga fånig geometriska konstruktioner så vi kom upp med idén att göra en växt...

Enkel skåp ledde ljus med återvunnet

Alla har makt adaptrar som har ingen mer användning.Från gamla bärbara datorer, bärbara telefoner och alla typer av bärbara maskiner.Kasta dem inte bort!Leta efter 12 och 9 volt adaptrar.Vi kan använda dessa som nätadaptrar med 12 volt ledde ljus rem...

Gör ljus med en 3D-skrivare och återvunnet kritor

Möjligheterna för vad du kan göra med en 3D-skrivare är obegränsade, och i detta projekt du lär vidare att himlen är gränsen genom att göra återvunnet crayon ljus med en 3D-skrivare. Dessa är bra för akuta situationer, eftersom de inte kräver några s...

Jack-O-Lantern ljus med Arduino

detta visar hur du använder en Arduino kontroll och makt adresserbara lysdioder, WS2812, för att belysa en pumpa.Vi har testat lägen som ser ut som en ljus, en strobe och multi färg tona.Detta instructable visar detta med en RGB breakout ombord anslu...

Styra RGB ljus med dator färg palatte

Hej killar i detta instructable jag kommer att lära dig hur man styr en RGB ljus med dator färg palatte...Du kan producera nästan alla färger i RGB ljus så du önskan med hjälp av färg palatte...Steg 1: Komponenter som krävs Det material som krävs ärA...

Kosmiska ljus med lysdioder inbäddade i kåda

jag ville göra ett ljus av harts som används lysdioder men ingen lödning (jag vet en massa människor inte löda, och det finns nog några som mig som kan göra det men inte riktigt gillar att göra det). Den drivs av ett par mynt batterier så det är lätt...