Leuchtturmfeuer

Fragen zu Schaltungen, Elektronik, Elektrik usw.

Moderator: T.Hoffmann

Antworten
Benutzeravatar
ravedave83
Mega-User
Mega-User
Beiträge: 270
Registriert: Mi, 19.07.06, 14:14
Wohnort: Bermbach/Thüringen
Kontaktdaten:

Mi, 16.11.11, 13:26

Hallo!

Ich bin gerade dabei einen Leuchturm für unseren Garten zu bauen und sitz gerade an der Beleuchtung!
Eigentlich wollte ich das mit nem Rundumlicht auf Basis eines Attiny13 machen, allerdings bin ich bei der Suche auf ein Youtube Video gestossen bei dem mir der Effekt besser gefällt.

Leider scheitert es jetzt bei der Umsetzung bzw. der Programmierung. Was PWM angeht bin ich noch quasi in den Kinderschuhen.
Also erst mal das Video
http://www.youtube.com/watch?v=77GAiAuQ ... re=related

und das was ich bis jetzt mit Hilfe von Google zusammen hab

Code: Alles auswählen

               $regfile = "attiny13.dat"
$crystal = 128000
$hwstack = 12
$swstack = 8
$framesize = 8

Config Portb = Output



Config Timer0 = Pwm , Prescale = 8 , Compare A Pwm = Clear Down
Dim Aufab As Byte

Aufab = 0

Do
  If Aufab = 1 Then
   Pwm0a = Pwm0a + 1
   If Pwm0a > 254 Then
      Aufab = 0
   End If
  Else
   Pwm0a = Pwm0a - 1
   If Pwm0a < 2 Then Aufab = 1
  End If

Waitms 10
Loop
Nun ja, bei "meinem" Code geht das ganze zu schnell und an diesem "Endblitz" beiss ich mir schon Stunden die Zähne aus.

Wie bekomme ich das ganze langsamer und wie bekomm ich diese abstufung bis zur vollen helligkeit hin?


mfg Dave


Edit: Hat sich erledigt! Hab das Bascom Forum durchpflügt und was brauchbares gefunden!
http://bascom-forum.de/showthread.php?2 ... leuchtturm
O.Mueller
Moderator
Beiträge: 4089
Registriert: Do, 23.02.06, 15:08
Wohnort: Südbaden
Kontaktdaten:

Fr, 18.11.11, 09:46

Hallo Dave, gibt es denn mal ein Foto vom Projekt, oder ist es noch nicht "fotoreif" ?
Benutzeravatar
ravedave83
Mega-User
Mega-User
Beiträge: 270
Registriert: Mi, 19.07.06, 14:14
Wohnort: Bermbach/Thüringen
Kontaktdaten:

Sa, 19.11.11, 17:42

Ist noch in arbeit! Da meine Werkstadt nicht beheizt iss wird's dieses Jahr wohl nicht mehr fertig.
Aber meine Gartenlaterne kann ich schon mal posten!
Bild

http://www.youtube.com/watch?v=pjDvOyVBXAc

Kleine Info dazu: Die Kerze ist Nachtaktiv, Der Attiny geht Tagsüber in den Sleepmodus und gemessen wird über die obere Led. Mit 2AA Batterien hält das ca 8Wochen.

Schaltplan und Hexfile gibt es hier!
http://www.instructables.com/id/Flicker ... your-chip/
Ob's genau wie meine ist weiss ich nicht mehr genau da in meinem Schaltplan ein Taster zum einstellen der Einschalthelligkeit integriert ist.
Benutzeravatar
Beatbuzzer
Auserwählter
Auserwählter
Beiträge: 3177
Registriert: Fr, 17.08.07, 11:02
Wohnort: Alfeld / Niedersachsen
Kontaktdaten:

Sa, 19.11.11, 19:18

Mensch, ganz übersehen das Ding hier.
Zum Problem oben:

Ich würde von 0 bis 50% faden, dann schlagartig auf 100% schalten, dann wieder schlagartig auf 50% runter schalten und dann wieder faden bis auf 0%. Die Pausenzeiten dazwischen kannst du dann ja anpassen. Vielleicht hilft dir das ja schon weiter, falls nicht, mache ich dir auch gerne einen Beispielcode.
Benutzeravatar
ravedave83
Mega-User
Mega-User
Beiträge: 270
Registriert: Mi, 19.07.06, 14:14
Wohnort: Bermbach/Thüringen
Kontaktdaten:

Sa, 19.11.11, 23:01

Danke Beatbuzzer, hab aber wie oben erwähnt nen Quelltext gefunden der brauchbar war. Ist für modellflieger aber mit etwas Anpassung siehts fast genau so wie im geposteten Video aus.
Wen's interessiert:

Code: Alles auswählen

'=====================================================================
'Anti Collision Light für Modellflugzeuge
'Auch verwendbar für Leuchtturm
'Wenn "Clear Down" --> LED an Pin 5 (PB0) über Vorwiderstand an GND
'Wenn "Clear Up" --> LED an Pin 5 (PB0) über Vorwiderstand an VCC
'=====================================================================

$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 12
$swstack = 8
$framesize = 8


Dim I As Byte
Dim D As Integer

Config Portb = Output

Config Timer0 = Pwm , Prescale = 8 , Compare A Pwm = Clear Down


Do
  For I = 10 To 70                                          'Hochfaden der LED ...
    D = I                                                   '... bis der Wert 56 (60*60/64) erreicht ist
    D = D * D
   D = D / 64
   Pwm0a = D
   Waitms 50                                                'Zeiteinstellung pro Durchlauf für das Hochfaden
  Next I

  Pwm0a = 254                                               'LED auf volle Helligkeit setzen (Blitz)
  Waitms 150                                                'Blitzdauer
  Pwm0a = 70                                                'zurücksetzen Der Helligkeit Nach Dem Blitz

  For I = 70 To 10 Step -1                                  'Runterfaden der LED ...
    D = I                                                   '... bis der Wert <1 (5*5/64) erreicht ist
    D = D * D
   D = D / 64
   Pwm0a = D
   Waitms 50                                                'Zeiteinstellung pro Durchlauf für des Runterfaden
  Next I

  Waitms 150                                                'Pause nach dem Runterfaden
Loop
End
Benutzeravatar
Beatbuzzer
Auserwählter
Auserwählter
Beiträge: 3177
Registriert: Fr, 17.08.07, 11:02
Wohnort: Alfeld / Niedersachsen
Kontaktdaten:

So, 20.11.11, 08:06

ravedave83 hat geschrieben:Danke Beatbuzzer, hab aber wie oben erwähnt nen Quelltext gefunden der brauchbar war.
Ah hatte ich übersehen :oops: .

Allerdings verstehe ich nicht so ganz, was die Rechnerei mit D as integer da soll. Man kann doch direkt I in Pwm0a laden, dann ist der Code halb so aufwändig. Aber wenn es für deinen Zweck funktioniert, warum dann ändern :wink:
Antworten