Val av teknik för styra lysdiodsintensitet?
-
- Inlägg: 3
- Blev medlem: 26 november 2010, 09:37:14
Val av teknik för styra lysdiodsintensitet?
Jag är en programmerare som brukar fuska lite med elektronik. Nu har jag ett litet intressant projekt hemma.
I min trappa vill jag bygga en effektfull belysning med 3 LED per trappsteg. Jag har således 14 grupper med 3 LED i varje.
För att få de effekter jag vill ha vill jag kunna kontrollera ljusintensiteten på var grupp individuellt, och här börjar det bli besvärligt... Vilken teknik skall man välja för detta? Jag har tittat på ett par alternativa sätt, men inte kommit på 'best practice' än.
Förslag?
Någon??
De sätt jag tittat på är, i korthet, följande:
Använda PWM, men det finns ingen krets med 14 st PWM så denna lösning verkar bli besvärlig. Kan lösas genom att använda exemeplvis 5 PIC med 3 PWM vardera, men sen skall man få dessa att synkronisera sina signaler...
Använda 14 analoga utgångar som styr strömmen med hjälp var sin OP-amp.
Vem sitter inne med en bra lösning???
I min trappa vill jag bygga en effektfull belysning med 3 LED per trappsteg. Jag har således 14 grupper med 3 LED i varje.
För att få de effekter jag vill ha vill jag kunna kontrollera ljusintensiteten på var grupp individuellt, och här börjar det bli besvärligt... Vilken teknik skall man välja för detta? Jag har tittat på ett par alternativa sätt, men inte kommit på 'best practice' än.
Förslag?
Någon??
De sätt jag tittat på är, i korthet, följande:
Använda PWM, men det finns ingen krets med 14 st PWM så denna lösning verkar bli besvärlig. Kan lösas genom att använda exemeplvis 5 PIC med 3 PWM vardera, men sen skall man få dessa att synkronisera sina signaler...
Använda 14 analoga utgångar som styr strömmen med hjälp var sin OP-amp.
Vem sitter inne med en bra lösning???
Senast redigerad av blueint 22 december 2011, 16:40:11, redigerad totalt 2 gånger.
Anledning: caps ; vad det rör sig om
Anledning: caps ; vad det rör sig om
Re: VAL AV TEKNIK
Det går ju att göra PWM i mjukvara, då behöver du bara 14 digitala utgångar.
Re: VAL AV TEKNIK
En annan medlems färdiga bygge, lite inspiration kanske?lakritztrollet skrev:I min trappa vill jag bygga en effektfull belysning med 3 LED per trappsteg. Jag har således 14 grupper med 3 LED i varje.
http://elektronikforumet.com/forum/view ... =3&t=35963
-
- Inlägg: 3
- Blev medlem: 26 november 2010, 09:37:14
Re: VAL AV TEKNIK
Du har inget exempel? (Dumt att uppfinna hjulet igen liksom...)Kägglan skrev:PWM och shiftregister.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Val av teknik
Gillar du inte att uppfinna hjulet igen är Arduino en bra start. Många utgångar, går även enkelt att använda Shiftregister.
http://www.arduino.cc/en/Tutorial/ShiftOut
http://www.arduino.cc/en/Tutorial/ShiftOut
Re: Val av teknik
Det är inte så svårt faktisk!
Du ska styra 14 utgångar med PWM, det kan man göra med en timerinterrupt och lite fundering samr en µC med pinnar nog.
Hur många nivåer behöver du ljusstyrkan? När du vet det kan du välja hur snabbt interrupten ska komma.
Om vi antar att det är 16 nivåer och att PWM-frekvensen ska vara minst 70Hz för att undvika måste interruptfrekvensen vara 70Hz * 16 nivåer = 1120Hz eller snabbare.
För varje interrupt skickar du ut de två bytes som är uträknad, de nollas därefter och sedan räknar du ut de nya med ett antal:
if(PWM_Nivå_0 > Räknaren) Byte_0_Bit_0 = 1;
if(PWM_Nivå_1 > Räknaren) Byte_0_Bit_1 = 1;
if(PWM_Nivå_2 > Räknaren) Byte_0_Bit_2 = 1;
osv. osv.
Räknaren räknar 15-14-13-12-11...1-0-15-14-13... ett steg per interrupt.
Med shiftregister blir det skapligt jobbigt att dimma varje utgång oberoende av varandra.
Du ska styra 14 utgångar med PWM, det kan man göra med en timerinterrupt och lite fundering samr en µC med pinnar nog.
Hur många nivåer behöver du ljusstyrkan? När du vet det kan du välja hur snabbt interrupten ska komma.
Om vi antar att det är 16 nivåer och att PWM-frekvensen ska vara minst 70Hz för att undvika måste interruptfrekvensen vara 70Hz * 16 nivåer = 1120Hz eller snabbare.
För varje interrupt skickar du ut de två bytes som är uträknad, de nollas därefter och sedan räknar du ut de nya med ett antal:
if(PWM_Nivå_0 > Räknaren) Byte_0_Bit_0 = 1;
if(PWM_Nivå_1 > Räknaren) Byte_0_Bit_1 = 1;
if(PWM_Nivå_2 > Räknaren) Byte_0_Bit_2 = 1;
osv. osv.
Räknaren räknar 15-14-13-12-11...1-0-15-14-13... ett steg per interrupt.
Med shiftregister blir det skapligt jobbigt att dimma varje utgång oberoende av varandra.
-
- Inlägg: 81
- Blev medlem: 13 april 2010, 14:40:04
- Ort: Stockholm
Re: Val av teknik
köp två 74hct165 http://se.farnell.com/texas-instruments ... dp/1105982
så kan du skifta in mönstret och ladda ner samtliga utgångar parallelt.
Kanske (troligtvis) behöver du ett ytterligare drivsteg.
så kan du skifta in mönstret och ladda ner samtliga utgångar parallelt.
Kanske (troligtvis) behöver du ett ytterligare drivsteg.
Re: Val av teknik
Kan ni som rekommenderar shiftregister förklara för mig hur ni anser att kan kan PWM'a de utgångar oberoende av varandra?
Re: VAL AV TEKNIK
Kör PWM i en mirkokontroller och googla på shiftregister. Har inget exempel på shiftregister men kör du PWM i en mikrokontroller så är det bara att välja en binärkod och loopa den och skicka den på en utgång. Sedan använder du shiftregistret att byta grupp. Så loopar du igenom grupperna.lakritztrollet skrev:Du har inget exempel? (Dumt att uppfinna hjulet igen liksom...)Kägglan skrev:PWM och shiftregister.
Edit: Lampa byttes mot grupp.
Senast redigerad av Kägglan 1 december 2011, 15:41:14, redigerad totalt 1 gång.
-
- Inlägg: 81
- Blev medlem: 13 april 2010, 14:40:04
- Ort: Stockholm
Re: Val av teknik
Du skiftar in det nya mönstret seriellt och laddar sedan ner det med load ingången, detta skulle gå att göra ännu snyggare med en CPLD.Icecap skrev:Kan ni som rekommenderar shiftregister förklara för mig hur ni anser att kan kan PWM'a de utgångar oberoende av varandra?
Re: Val av teknik
Jag förstår inte vad problemet är.....Icecap skrev:Kan ni som rekommenderar shiftregister förklara för mig hur ni anser att kan kan PWM'a de utgångar oberoende av varandra?
Det är bara loopa en serie beroende på vilken ljusstyrka han vill ha, vill han ha en effekt som går t.ex. från ljusare till mörkare behöver han bara en "define" variabel som talar om vilken serie man vill loopa. Samma sak om man vill ha olika utgångar med olika PWM frekvenser, fast då med 2 "define" variabler.
Re: Val av teknik
Hade varit snyggt att kombinera det med lite sensorer så att att det trappsteg man befinner sig på ljuser starkare eller mörkare än övriga.
Re: Val av teknik
Det låter komplicerat. Hur reglerar man då ljusintensiteten?Du skiftar in det nya mönstret seriellt och laddar sedan ner det med load ingången, detta skulle gå att göra ännu snyggare med en CPLD.
Enligt Icecap förslag behöver man 14 utgångar och där finns det massor av olika mikrokontrollers som fixar den biffen. PWM-kodningen som jag förstår delar upp tiden i intervall mellan varje interrupt. Sedan får varje byte bestämma intensiteten, t.ex 0000 0000 blir helt släkt och 1111 1111 blir helt tänd per utgång.
-
- Inlägg: 3
- Blev medlem: 26 november 2010, 09:37:14
Re: Val av teknik
Nästan så jag tänkt det....Kägglan skrev:Hade varit snyggt att kombinera det med lite sensorer så att att det trappsteg man befinner sig på ljuser starkare eller mörkare än övriga.
Tanken är att samtliga trappsteg alltid skall lysa "svagt". När man närmar sig trappan (nerifrån) skall styrkan mjukt glida upp till full, i en rörelse nerifrån och upp. Efter en fördröjning (lagom för att man skall hinna lämna trappan) tonar alla ner igen.
Omvänt när man kommer uppifrån.
Jag skall använda en sorts IR-deckare (som en bekant ordnar fram, ingen aning vad dom heter eller hur dom ser ut) som man kan få att trigga på rörelse i en viss riktning, så att man inte slår på systemet när man lämnar trappan....