Sida 1 av 2

Dörrkransbelysning - nu är julen slut!

Postat: 4 december 2006, 10:49:00
av PHermansson
Ännu ett nytt projekt, detta har en deadline så det kanske kan bli klart :)
Sambon köpte en krans att sätta på dörren, och sedan bad hon mig att fixa belysning i kransen. Kul projekt, blir ju lite speciella krav och det ska helst vara klart igår.
Tanken är batteridrift (svårt att dra kabel), låg vikt (ska sitta på en dörr som öppnas/stängs), och låg strömförbrukning.
Lysdioderna blir antagligen 6 st varmvita 5mm med 120 graders spridning från Molelectric (http://www.molectric.com/product_info.p ... cts_id=382.
Dessa styrs med en PIC12F675 (finns nära tillhands) och drivs av 3 st NiMH AA batterier.
Alltihop monteras sedan i en liten låda som monteras i/under kransen. Frågan är hur det blir med fukt?
En första version av schemat kommer strax...

Bild

Postat: 4 december 2006, 11:20:33
av MicaelKarlsson
Kan bli hur snyggt som helst.
Lycka till och glöm inte att ta ett kort på resultatet!!

Postat: 4 december 2006, 14:59:22
av Mindmapper
RGB vore också snyggt. Eller kombination av RGB och vita.
Ibland lite softa färgskiftningar och ibland lite vita punkter
som race'ar.

Postat: 8 december 2006, 12:30:07
av PHermansson
Projektet är nu i princip färdigbyggt, kan lägga upp lite bilder och kod senare.
Allt fungerar bra, även om ljussensorn kräver lite för mycket ljus för att släcka dioderna. Detta är dock inget större problem då strömförbrukningen blir låg ändå.
Med kortast möjliga på-tid i PWM'en drar kretsen 0,8mA, men då syns ljuset knappt.
50% påtid ger bra ljusstyrka, förbrukning 3,65mA.
22% påtid - 2mA. Med GP2500-batterier blir teoretisk drifttid 1250h eller 52 dygn. Bör räcka :)

Koden som används är skriven i mikroC, finns säkert saker att anmärka på :)

Kod: Markera allt

/*Led PWM
PHermansson 2006
For mikroC compiler for PIC, www.mikroelektronika.co.yu
*/

char counter;

void interrupt(){
   counter ++;                // increment counter
   TMR0   = 254;
   INTCON = 0x20;             // set T0IE, clear T0IF . h20=100000
}

void main() {
  OPTION_REG = 0x84;          // TMR0 prescaler
  TRISIO     =  0b00010000;  //GP4 in, GP5 out.
  GPIO       = 0xFF;               // initialize gpio
  counter     =   0;                 // set counter
  TMR0       =  254;              // set timer0
  INTCON     = 0xA0;  //TMRO interrupt enabled 80=10000000-> T0IE off
  ANSEL=0;

  do{                         // Loop
      if (counter > 200)       // Counts from 0 to 255 and then flips to 0
                         // Counter > x sets pwm period, lower value = brighter led.
      {
           if ( GPIO.GPIO4 == 1 )
           {
              GPIO.GPIO5 = 1;
           }
           else
           {
              GPIO.GPIO5 = 0;
           }
      }
      else
      {
           GPIO.GPIO5 = 0;
      }
   } while(1);
   
}

Postat: 8 december 2006, 13:14:31
av oJsan
Känns som att du har byggt en 555:a . GPIO4 kan motsvaras av resetbenet och med en 555:a så blir duty-cykeln lätt att ställa med en vridpot.
Men nu ska jag inte vara sån... :D Känner jag mig själv rätt hade jag också använt en uC eftersom det är mycket roligare och coolare! Fördelen med uC är ju dessutom att det är lätt att lägga till fler utan att behöva modifiera hårdvaran!

Postat: 8 december 2006, 18:31:32
av MicaelKarlsson
Varför göra något enkelt, när det går att göra svårt. :D

Ett foto skulle lyfta tråden till oanade höjder. :lol:

Postat: 8 december 2006, 20:12:49
av JimmyAndersson
En PIC-krets brukar inte vara lika känslig på temperaturvariationer som en 555-krets. Har provat att använda en 555a i PWM-sammanhang, men det har aldrig blivit riktigt bra.


Skulle man inte kunna göra såhär istället:
(Programmerar egentligen inte C, så jag är inte helt 100% på att man sätter ett sådant vilkor med AND i C. Tanken är iallafall att "om räknare är __ OCH port4 är __ så...")

Kod: Markera allt

  do{                        
      if (counter > 200) AND ( GPIO.GPIO4 == 1 )                           
         { 
          GPIO.GPIO5 = 1; 
          } 
           else 
              {
              GPIO.GPIO5 = 0; 
              }
         } while(1); 

Postat: 8 december 2006, 20:21:47
av Virr3
Jag tror man skriver något i denna stilen:

Kod: Markera allt

do
{
if (counter > 200 && GPIO.GPIO4 == 1 )                           
         {
             GPIO.GPIO5 = 1;
          }
else
         {
             GPIO.GPIO5 = 0;
          }
} while(1);

Postat: 8 december 2006, 23:21:01
av PHermansson
555a... ja man är väl lite 'picad' ibland :)
Detta blir coolare, sen får jag hålla med Jimmy om att det är ofta enklare att få det att funka med en PIC. Och det är ju inte alla som har en processorstyrd dörrkrans, eller hur? :)

Nu ska vi se om tråden lyfter högre än Discovery... här kommer bilder!

Bild
Kortet i all sin enkelhet. Ljussensorn sitter på baksidan.

Bild
Monterat i lådan. Hade bara en hållare för fyra batterier, löstes med en fastlödd trådstump.

Bild
Fin krans, men ljuset gör sig inte med blixt.

Bild
Bättre i mörker, fast nu syns kransen sämre. Fint är det i alla fall!

Bild
En närbild på en av lysdioderna.

Postat: 8 december 2006, 23:49:31
av JimmyAndersson
Snyggt och stilrent.

Får man vara lite petig? Det är kortare avstånd mellan de två lysdioderna längst ner. Det gör att det blir lite tomt på den högra sidan av kransen. :)

Men hur som helst, ett stiligt jul-projekt! Dessutom det första som blivit klart det här året. (Åtminstone om man tolkar projekt-delen här på forumet.)

Postat: 10 december 2006, 10:52:52
av Gimbal
PHermansson skrev: 22% påtid - 2mA. Med GP2500-batterier blir teoretisk drifttid 1250h eller 52 dygn. Bör räcka :)
Vill minnas at GP-batterierna är lite lustiga på så sätt att ex. GP2000 inte innehåller 2000 mAH, utan bara nästan. Dessutom så är självurladdningen betydande när vi pratar så här små strömmar.

Postat: 10 december 2006, 12:11:33
av PHermansson
Just det, det är sant. Står 'min 1900mAh' i det finstilta på ett 2000 batteri. Har i alla fall satt i nästan nya GP2500 nu, det bör räcka över nyår i alla fall.

Postat: 27 december 2006, 10:41:33
av G-man
Hmm detta borde vara en nyttig sak i solcellslampor? för att öka tiden menar jag...

Postat: 30 december 2006, 17:49:33
av PHermansson
Så sant, det sparar ju en hel del ström.
Kransen lyser fortfarande fint, spännande att se hur länge det varar :)

Postat: 4 januari 2007, 16:41:38
av PHermansson
Så var det slut på det roliga, julen är slut! Eller inte egentligen, men dörrkransen har slocknat. Exakt en månad höll den ut, 31 dagar istället för de teoretiska 52. Kan man anta att den påstämplade kapaciteten är optimistisk och beräknad i rumstemperatur? På batteriet står 'typical 2450mAh'.