Här kommer lite info om ett projekt som har varit pausat ett tag. Men nu ska det plockas upp igen...
Kortfattat så ska jag utöka min ljusväckarklocka med extra belysning, men även kunna styra belysningen separat. Det bör bli klart innan hösten sätter in, så jag har gott om tid på mig.
Mål
Mitt mål är en spänningsomvandlare 0-24 V för dimmning av glödlampor och lysdioder. Vidare så vill jag kunna följa en annan ljuskälla, samt fungera som wake-up-light med långsam ramp. Jag tänker mig inte själva väckarklockan i denna enheten, då måste jag ju ha användarinterface, realtidsklocka och sånt. Det får bli att den triggas externt.
Plan
Jag har ett ägg, alltså clas ohlsons wake-up-light med thyristordimmad halogenlampa.
Jag provade att slänga in en fotodiod i den, och tittade på utsignalen (ingen bias på fotodioden). Det var en hel del störningar på 50 Hz, och DC-värdet verkade inte pålitligt med tanke på extern belysning. Däremot verkade 100 Hz-signalen ha potential att visa vilken inställning lampan var på.
Jag vill kunna dimma både glödlampor och lysdioder. Det är risk att det bli långa kablar, så jag har bestämt mig för att jag vill ha DC ut. För glödlampornas skull vill jag återkoppla på spänning. Alltså får det bli 0-24 V DC, och lysdioder i kedjor med motstånd.
Jag vill ju ha en viss intelligens i det hela, med rampningar och triggning, så det blir en AVR för styrningen. När jag ändå har denna vill jag ju utnyttja den så mycket som möjligt. Alltså kör jag digitala filter för insignalen samt återkoppling av spänningsutgången i AVR:en. ADC:n påstås ju kunna ge upp till 15 kSPS, vilket borde vara mer än nog. Det gör ju inte så mycket om svarstiden gentemot insignalen eller lastvariationer blir lång.
Nuvarande status
Hårdvara är till stor del ordnat. Det blev en buck-omvandlare, uppdelad på två kanaler för runt 1,5 A stycket (får se exakt senare när jag vet hur mättnad och effektförlust blir i drosseln). Inspänning går bra upp till sisådär 40 V, men jag kommer nog köra 24 V så att jag inte kör sönder några lampor vid mjukvarufel.
CPU:n blir en ATmega8, för jag har ett par över.
Aluminiumlåda kändes lämpligt för kylningens skull, plus att det ska ganska mycket till om man ska elda upp något utanför lådan vid ett fel. Jag var onödigt optimistisk med storleken när jag köpte lådan (wtf, inte första gången). Kretskortet fick därför bli en dubbelmacka. Hoppas bara att jag inte kommer på något som kräver fler kretsar, för det är relativt fullt som det är. Användarinterfacet blir fyra knappar: på/av, följ/trigga, upp och ner. Några lysdioder tillkommer för att visa tillstånd.
PWM:erna från AVR:en går direkt till en dubbel low-side gate driver. Jag kommer alltså att ha utgångarna plusjordade. Fördelen är att jag slipper high-side-switchning, nackdelen är att jag behöver diffförstärkare för att återkoppla spänningen.
Signalen från fotodioden går till två olika ADC-kanaler genom olika filter: Ett enkelt lågpassfilter för DC-värdena samt ett bandpassfilter för mellan c:a 75 och 1000 Hz för AC-värdena.
ADC:n gick visst inte att skrämma upp i 15 kSPS utan extern kristall m.m. Detta var knappast oväntat, och inget större problem. Med samplingen på 7200 Hz verkar det mesta fungera. Jag samplar kontinuerligt 1-2-DC-1-2-AC, där 1/2 är spänningen på utkanalerna och AC/DC är indata från fotodioden. DC-datat medelvärdesbildas på enklast möjliga sätt. AC-värdet körs genom ett digitalt filter på 100 Hz. Filtret bygger på koefficienter +1,-1,+1,-1 osv. Det lär ju släppa igenom udda övertoner också, men det gör ju sitt jobb mot 50 Hz iaf, och signalen består i princip bara av DC, 50 och 100 Hz.
Jag samplade lite värden för att kolla hur bra den står emot extern belysning. Det visade sig att temeraturberoendet blev signifikant. Jag vet inte om det är fotodioden eller halogenlampan som gör mest. Det kanske går att mäta tempen genom att periodiskt framspänna dioden och mäta spänningsfall. Eftersom värdena blev rätt bra ändå så struntar jag i det.
Delar man istället upp området efter inställning på lampan (0-18) så får man en figur för varje inställning. Hade jag haft matlab hade det blivit areor utsträckta till alla extremvärden. Nu blev det polygoner istället, men jag tror man kan dra följande slutsatser:
* Det går att avgöra med stor säkerhet om lampan är av eller på med minst nivå tre. Detta räcker för väckning.
* Det går att avgöra inställningen +/- 1 nivå upp till krönet. Runt och efter krönet är det små förändringar av upplevd ljusstyrka, så jag kommer nog att anse att krönet är max.
Nu är det bara att vrida rätt på alla koordinater och föra in detta i AVR:en, fortsättning följer...
Klar: Ljusdimmer (digital kraft med ATmega8) (nu med film)
Klar: Ljusdimmer (digital kraft med ATmega8) (nu med film)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Jonas L 13 september 2011, 22:35:14, redigerad totalt 1 gång.
Re: Ljusdimmer (digital kraft med ATmega8)
Jo...det har hänt grejer på sistone. Jag hade ett misstänkt hårdvarufel, men det visade sig vara mjukvara ändå. Jag hade visst inte märkt upp att en viss konstant skulle vara en jämn tvåpotens. Timingen fick problem när den skulle klämma in några extra 32-bits divisioner här och var.
Färdigihopsatt låda: En glutt under skalet: Testkör med mitt oltronix-agg: Nu har den fått en egen klump: Video på demonstration. Inte så välregisserad, men den visar alla lägena. Jag visar på/av till max ljus, därefter följer jag ägget (blått), går över i manuellt läge (grönt), joxar upp och ner och stänger av (rött). Jag sätter den i triggläge (gult), och när lampan tänds går den över i rampläge (gult+grönt). Rampningen är ställd på 20 min, så den visar jag inte i videon.
Färdigihopsatt låda: En glutt under skalet: Testkör med mitt oltronix-agg: Nu har den fått en egen klump: Video på demonstration. Inte så välregisserad, men den visar alla lägena. Jag visar på/av till max ljus, därefter följer jag ägget (blått), går över i manuellt läge (grönt), joxar upp och ner och stänger av (rött). Jag sätter den i triggläge (gult), och när lampan tänds går den över i rampläge (gult+grönt). Rampningen är ställd på 20 min, så den visar jag inte i videon.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Klar: Ljusdimmer (digital kraft med ATmega8) (nu med fil
Om jag förstått konstruktionen korrekt så känner en fotodiod av ljuset från en uppvakningslampa dvs, sådan som går igång på ett visst klockslag. Denna signal används via AVR och switchsteg för att driva andra lampor med 24 V DC ..?
Re: Klar: Ljusdimmer (digital kraft med ATmega8) (nu med fil
Japp, men också med möjlighet att köra oberoende av uppvakningslampan samt att trigga en egen rampning.
Re: Klar: Ljusdimmer (digital kraft med ATmega8) (nu med fil
Borde vara enklare att låta AVR styra hela härligheten direkt? ..men det kanske bara jag som känner så 
Många färdiga produkter är rätt stelbenta. Bara en sådan enkel sak som olika väckningstider beroende på veckodag är svårhittat.
Användarinterface kan man ordna genom att köpa en billig klockradio på Jula eller Biltema. Som man därefter byter "kontrollerkort" på.

Många färdiga produkter är rätt stelbenta. Bara en sådan enkel sak som olika väckningstider beroende på veckodag är svårhittat.
Användarinterface kan man ordna genom att köpa en billig klockradio på Jula eller Biltema. Som man därefter byter "kontrollerkort" på.
Re: Klar: Ljusdimmer (digital kraft med ATmega8) (nu med fil
Japp, jag hade såna funderingar från början. Att få en AVR att styra hela härligheten är lätt, men det ställer till det på ett antal punkter:
* Användargränssnitt. Det är ju sällsynt tråkigt att programmera användargränssnitt. Då skulle man hitta ett väldokumenterat opensource-projekt att jobba vidare på.
* Tillräckligt med ljus. Köpelamporna löser detta med en 230 V halogenlampa. Att dimma en sån är inga problem, men att mecka in den mekaniskt snyggt är svårt. Och den blir ju varm också. Man skulle kunna lösa det med lysdioder, men det är ett helt annat mekaniskt bygge då. Nu kan jag använda det befintliga ljuset, plus en egen källa.
Till saken hörde att jag köpte lampan när jag verkligen behövde den för att komma upp förra hösten/vintern. Då fanns det ingen tid att göra något eget....speciellt inte när jag sov bort halva dagarna.
* Användargränssnitt. Det är ju sällsynt tråkigt att programmera användargränssnitt. Då skulle man hitta ett väldokumenterat opensource-projekt att jobba vidare på.
* Tillräckligt med ljus. Köpelamporna löser detta med en 230 V halogenlampa. Att dimma en sån är inga problem, men att mecka in den mekaniskt snyggt är svårt. Och den blir ju varm också. Man skulle kunna lösa det med lysdioder, men det är ett helt annat mekaniskt bygge då. Nu kan jag använda det befintliga ljuset, plus en egen källa.
Till saken hörde att jag köpte lampan när jag verkligen behövde den för att komma upp förra hösten/vintern. Då fanns det ingen tid att göra något eget....speciellt inte när jag sov bort halva dagarna.
