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