ATTiny45 Led-Wechsellicht-Problem

OP #2944043
Lesenswert?
• ▲
▼
Hallo Forum!

Ih bin schon lange stiller Mitleser und versuche mich jetzt erstmals 
selbst an einigen Programmierungen.

Ich versiche mit 2 SMD LEDs eine Wechsellichtschaltung für einen 
Modellkrankenwagen zu erstellen.
Vieleicht hat das der Eine oder Andere schonmal in echt gesehen.
Es soll das normale Abblendlicht AN (ca 50% Helligkeit) simuliert werden 
welches dann zur "Lichthupe" verstärkt wird und dies auf und abdimment 
immer rechter / linker Scheinwerfer.

Also etwa so:

Linker / Rechter Scheinwerfer AN (50% LED Helligkeit)
Linker Scheinwerfer fadet (langsam) auf 100% / rechter noch auf 50%
Links 100% erreicht kurz halten dann / rechter fadet hoch auf 100%
links fadet herunter auf 50% / rechts erreicht 100%
und so weiterso dass immer ein gegenteiliger lauf des Lichts entsteht.

Ich habe das versucht auf einem ATTiny45 zu bewerkstelligen leider fadet 
die LED an PortB.0 langsam von 50% auf 100% und springt dann wieder 
zurück auf 50% anstatt runter zu faden.
Die LED an PortB.1 Beginnt mit 100% fadet dann auf 50% runter und 
springt dann aber wieder hoch anstatt hoch zu faden.

Ich steh irgendwie auf dem Schlauch. Vieleicht kann mir jemand den 
Fehler aufzeigen. Hier mal mein Code:
1
'=====================================================================
2
'Abblendfernlicht für Krankenwagen etc.
3
'Wenn "Clear Down" LED an Pin 5/6 (PB0/1) über Vorwiderstand an GND
4
'Wenn "Clear Up"  LED an Pin 5/6 (PB0/1) über Vorwiderstand an VCC
5
'=====================================================================
6

7
$regfile = "attiny45.dat"
8
$crystal = 1200000
9
Dim I As Byte
10
Dim D As Integer
11
Dim E As Integer
12

13
Config Portb.0 = Output
14
Config Portb.1 = Output
15

16

17
Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
18

19
'Pwm0a = 40                                                'Startwert auf 40
20
'Pwm0b = 40
21

22

23
Do
24

25
  For I = 40 To 120                                         'Hochfaden Der Led ...
26
      D = I                                                 'bis der Wert 225 (120*120/64) erreicht ist
27
      D = D * D
28
      D = D / 64
29
      E = 160 - I
30
      Pwm0a = D
31
      Pwm0b = E
32
   Waitms 17                                                'Zeiteinstellung pro Durchlauf für das Hochfaden
33
  Next I
34

35
  Pwm0a = 225
36
  Pwm0b = 25
37
  Waitms 1000                                               'Dauer Fernlicht
38

39

40
  For I = 120 To 40 Step -1                                 'Runterfaden der LED ...
41
     D = I
42
     D = D * D
43
    D = D / 64
44
    E = 160 - I
45
   Pwm0a = D
46
   Pwm0b = E
47
   Waitms 17
48
  Next I
49

50

51
  Waitms 100                                                'Pause nach dem Runterfaden
52
Loop
53

54
End                                                         'end program

Vielen Dank im Voraus

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.