Sida 1 av 2
Färgglatt tak?
Postat: 13 oktober 2007, 21:10:05
av Korken
Godagens!
Satt och funderade lite här hemma om hur jag skulle kunna använda alla mina RGB LEDs.
Då kom jag in på en liten rolig idé.
Tänk er att man tar 5mm plexiplattor på 0,5x0,5m (frostade och silver/vita på baksidan) som man har kanske 20st RGB LEDs i.
Sedan har man 9st sådana plattor som man sedan styr.
Skulle bli ett roligt/grymt färgspel i taket för fest och man skulle kunna använda det som en lampa för vanliga dagar.
Någon som testat detta? Skulle va riktigt kul att testa men ekonomin tillåter det inte för stunden.
//Emil
Edit: Man sätter plattorna i en 4-kant på 3x3 plattor.
Postat: 13 oktober 2007, 22:18:58
av colliman
Låter lysande.
Men tänk att du döljer LEDen i en smal list vid takkanten och låter dom lysa jäms
med taket för att få en läcker struktur.
Förutsatt att det inte är spänntak av vev.
Kallas släpljus bland bel.tek.
Hittade lite uppslag från en svensk sida.
http://www.w-tech.se/e459a41d-1cf1-4480 ... 3e-29.html
Jag tror inte att du behöver silver-vit bakgrund, såvida du inte vill få mjukare
indirekt ljus. Genom att rikta ljuset mot botten som reflekterat mot plexin.
Det räcker med opal plexi och 60 grader spridning på LEDarna så ser det jämt å fint ut.
Köp inte smalstrålande, dom bildar oftas en oregelbunden ljusfläck mot plexin.
Jag har provat i samband med min LED 400 regnbåge....
Lycka till, å bilder vore kul (på taket). he he....
C-man
Postat: 13 oktober 2007, 23:09:33
av Korken
Hehe, jo tänkte så jag också.
Sätta typ en list mellan varje 4-kant på kanske 1cm så man får platts med LEDs och kablage, samt att det utmärker varje platta mer.
När det gäller LEDsen så är det
dessa jag har.
65 graders betraktningsvinkel borde räcka.
Fast det är här skon klämmer också, då jag behöver köpa ca 150st till.
Skulle sååå gärna testa detta!

Måste dock vänta lite. Hoppas på studiebidraget. 12 dagar kvar.
Och tack för sidan!
Skulle ha tag på listen där.
//Emil
Postat: 13 oktober 2007, 23:29:04
av colliman
Flura på den här sida.
På tal om RGB LED.
Har en del gosaker till fina priser..
http://www.leds.de/shop_content.php?coID=23
c-man
Postat: 14 oktober 2007, 14:03:40
av Korken
Tack för sidan!
Med RBG LEDs är lika billiga på
www.upplyst.se
Men tack ändå! Ska nog köpa vanliga där ifrån i lite större kvantiteter.
//Emil
Postat: 14 oktober 2007, 15:35:37
av Korken
Hum, satt och räknade lite på PWMerna, om man använder Software PWMer.
Antag att cycla igenom de 27PWMerna (9 plattor med 3PWMer var) 1 gång tar 1024 klockcykler och att vi sedan måste göra det 256 ggr för att få 24-bitars RGB (3x 8-bit).
Antag då att vi använder en AVR ATMega 32 (har nog med portar) som vi kör vid 16MHz (maxfart, 16 MIPS).
Då kommer PWMen få en dutycycle på 16.000.000/(256*1024) ≈ 61Hz.
Man skulle behöva det dubbla eller mer.
Jaha, blir tillbaks till ritbordet...
Hmm, en 32-bitars µC skulle ju kunna göra jobbet. *blåser av dammet på AVR32ans utväcklings kit*
Antag nu att vi använder en AT32 UC3B064 (har 44 I/O pins, minsta som har 27 pins + extra pinns för kommunikation) som vi kör vid 60MHz (maxfart, 72 MIPS).
Då kommer PWMen få en dutycycle på 72.000.000/(256*1024) ≈ 275Hz.
Hum, det kan fungera med den! Haha!
Ska sätta mig och testa programmera med AVR32an och se vad jag kommer fram till. Men de skulle va kul att testa den i en riktig grej.
//Emil
Postat: 14 oktober 2007, 15:51:57
av maha
Det måste nog gå att optimera själva kontrollen om de 27 utgångarna ska vara höga eller låga till bra mycket mindre än 1024 klockcykler. Det är ju mer eller mindre bara 27st (jämförelse + portsättning) + lite lullull. 256 klockcykler kanske? Då är du ju uppe i 244Hz. Jag skulle rekommendera att du kikar på det exakta antalet klockcykler innan du använder en CNC-fräs för att skala en kopplingstråd.

Postat: 14 oktober 2007, 17:03:18
av sodjan
> för att få 24-bitars RGB...
Finns knappast någon anledning alls. Ingen ser skillnad
på så många nyanser.
OCh menar du 1024 cykler bara för en enda genomgång av PWM räknarna ?
Det är väldigt mycket. Du behöver i princip en "decrement, en "cond jump"
och en "clear bit" för varje 27 kanaler. Säg 3 eller 4 instrulktioner per kanal,
alltså ca 80-120 instruktioner med lite marginal.
Detta körs med en frekvens som är lika med dutycycle för hela modulen
gånger antalet önskade nivår på varje RGB LED (32 eller 64 skulle jag
börja med).
Sen tillkommer lite extra kod, men den körs bara med samma frekvens
som dutycycle för hela rasket, säg 100 Hz eller däromkring.
Utöver ovanstående (d.v.s koden för själva PWM-motorn) så tillkommer
kod för att ändra de 27 PWM-variablerna för att få lämpliga effekter. Men
den koden körs ändå långsammare och det bör finnas nog med tid mellan
interrupten för PWM-motorn.
Postat: 14 oktober 2007, 18:24:00
av Korken
Blir det värkligen så lite cykler?
Ni brukar ju vet vad ni pratar om så det kan man nog lita på.

Jag är dock inte ASM programmerare när det gäller sånt här, då jag kör C.
Det är ju 1 if-sats för vare PWM sen set bit.
Hehe, kanske inte vart så mycket iaf, undra vad jag satt och tänkte på.
Varför 8-bitar? Tja, låter bra och finns det kraft över så kan man ju skäma bort ögonen lite. (på något man inte ser)
Ska skriva ihop en lite kodsnutt och räkna cyklerna i den nu.

Kan skriva om en stund vad de vart.
//Emil
Postat: 14 oktober 2007, 18:43:47
av sodjan
Jahaja, C...
Tja, du får väl labba lite och kolla ASM listningarna.
För att fixa detta så måste du ha 100% koll på cyklerna.
I alla fall om du vill pressa upp antal nivår och dutycycle
så högt som möjligt. Ärligt talat ser jag inte varför man ska
krångla till det med C för en sån här rellativt enkel (men
å andra sidan rellativt tidskritisk) rutin.
> Det är ju 1 if-sats för vare PWM sen set bit...
Och en "neräkning" av PWM-räknaren någonstans på samma ställe.
Med en bra C-kompilator så kanske den kan kompilera en IF
till en (PIC-språk !) DECFSZ ("Decrement file register and skip if zero").
Men om den börjar göra det med flera instruktioner så drar det snart iväg.
Men men, det kanske går att "skruva" på C koden så att man får en
effektiv assembler från kompilatorn. Prova får du se!
Postat: 14 oktober 2007, 19:24:38
av Korken
Okej, vart lite mer i C men inte så mycket.

De vart 7 cykler för att kolla en PWM.
Så ni hade väldigt rätt, vilket jag är väldigt glad över!
Det betyder att jag skulle kunna använda en Mega 32a.
En sak som jag kom att tänka på var hur man skulle göra stegningen mellan olika RGB värden så man inte får en hackig övergång.
Har en gammal kod för detta men den ligger i Interupten och har 1 if-sats för varje PWM kanal så tror inte att den skulle fungera så bra.
Nu är det bara pengarna som fattas.
Fast, då hinner jag skriva koden och köra kopplingsschemat innan jag har fått pengarna.
//Emil
Postat: 14 oktober 2007, 20:40:28
av maha
Känns som jag inte var helt off med min gissning på 256 cykler om det blir 7 * 27 + lullull.

Postat: 14 oktober 2007, 22:14:58
av sodjan
I ditt kod exempel, vad är "x", "y" respektive "z" ?
Hur ser C-koden ut om du lägger till ett par "PWM kanaler ?
Postat: 14 oktober 2007, 23:14:50
av Korken
sodjan:
Tänk såhär.
Kod: Markera allt
if (pwm_counter > rgb[platta(9st)][pwmkanal_i_varje_platta (3st/platta)])
PORTB |= z;
Alltså x står för plattan som är 9st. Sen äre 3 PWM kanaler per platta, det är y.
Och z är vilken pinne på porten man vill ha ut.
Sen blir det också PORTA, PORTC, PORTD beroende på vilken platta man är på.
Alltså 9plattor * 3 PWM kanaler => 27 PWM kanaler.
Hoppas du förstår.
//Emil
Postat: 14 oktober 2007, 23:31:39
av sodjan
OK, då är jag med.
Så t.ex platta 1's blå, grön och röda LED har sin "nivå" i rgb[1,1], rgb[1,2] och rgb[1,3].
pwm_counter räknas upp (eller ner) med 1 efter de 27 IF'arna (?).
OK, som sagt, då är jag med.
Men, personligen tycker jag ett 7 instruktioner är ett par st för många.

Spelar ingen roll om du hinner med i alla fall...