Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

Der Ursprung dieses Forum reicht bis in das Jahr 2008 zurück


Automatisches Ankerlicht mit Schalter-LED Dimming Funktion

#1 von Joe Patroni , 28.01.2019 12:16

(eigener Beitrag aus dem alten Forum portiert)

Nutze die Picaxe gerne für individuelle Speziallösungen, wo es meist nichts Passendes zu kaufen gibt.
Neben Elektronik ist mein größtes Hobby ein kleines Böötchen, das gerade elektrisch viele Möglichkeiten für Verbesserungen bietet.
So lassen sich beide Hobbies perfekt miteinander verbinden.

So hatte ich mir in der Vergangenheit bereits, um Energie zu sparen, eine Automatik auf Basis eines NE555 gebaut, das selbstständig in den Dämmerungsphasen das Ankerlicht schaltet, was den Vorteil hat, daß man morgens nicht raus "muss" um diesen Batterie-Stromfresser auszuschalten.
Das Ankerlicht leuchtet also nie länger als unbedingt nötig.

Nun ist ja dadurch schon ein Helligkeitssensor vorhanden, den ich für eine weitere Idee nutzen wollte. Sämtliche Schalter im Cockpit sind mit LEDs zur Schaltzustandsanzeige bestückt, die ich aufgrund Ihrer Helligkeit per Vorwiderstand auf ein gesundes Mittelmaß Ihrer Leuchtkraft gezwungen habe.
Dennoch blendeten sie bei Dunkelheit, waren aber zu schwach im grellen Sonnenlicht.
Ich habe also eine Ankerlichtautomatik mit einer LED Helligkeitsregelung (PWM) kombiniert und einer Picaxe 08M2+ zur zentralen "Verwaltung" gegeben:



------------------------------------------------
Danke und Gruß
Joe

 
Joe Patroni
Beiträge: 86
Registriert am: 28.01.2019


RE: Automatisches Ankerlicht mit Schalter-LED Dimming Funktion

#2 von Joe Patroni , 28.01.2019 12:36

Zur Präsentation des Projektes hier noch Schaltplan, Layout und Code in feinstem Denglisch.
Schaltschwellen im Code müssen ggfls. für jeden neuen Aufbau etwas angepaßt werden.

Die Schalter dienen zur Überbrückung der Automatik. Damit kann bei Bedarf das Ankerlicht trotzdem dauerhaft eingeschaltet, bzw. die Schalterkontroll-LEDs auf maximale Helligkeit eingestellt werden.

Schaltplan

Layout

Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 
01   'Picaxe 08M2+
02 'Automatic Anchorlight and Switchlight dimming Module
03 'For HW Rev 1.0, 1.1, 1.2, 1.3
04 'AKO 2014
05 'Last changes: 181214
06
07 #picaxe 08M2 'definiert den gueltigen Picaxe-Typ
08
09 setfreq m8 'setzt Systemfrequenz auf 8MHz
10
11 let dirsc = %00000111 'konfiguriert C.0, C.1 und C.2 auf Ausgang
12 let pinsc = %00000101 'schaltet Ausgaenge C.0 und C.2 AUS
13
14 symbol LTSENSE = w0 'Helligkeitswert (Sensor) an ADC C.4
15 symbol SWDIM = w1 'Ausgabewert Switchlight-Helligkeit
16
17
18 symbol MINBRIGHT = w6 'Minimalwert Switchlight-Helligkeit
19 MINBRIGHT = 1 'LED Mindesthelligkeit @ SENSEMIN (min "1" und kleiner MAXBRIGHT)
20 symbol MAXBRIGHT = w7 'Maximalwert Switchlight-Helligkeit
21 MAXBRIGHT = 255 'LED Hoechsthelligkeit @ SENSEMAX (max "255" und groesser MINBRIGHT)
22
23 symbol SENSEMIN = w4 'Untergrenze Umgebungshelligkeit fuer MINBRIGHT
24 SENSEMIN = 20
25 symbol SENSEMAX = w5 'Obergrenze Umgebungshelligkeit fuer MAXBRIGHT
26 SENSEMAX = 500
27
28 symbol PITCH = w12 'fuer Zwischenberechung der Steigung
29 symbol TEMP1 = w13 'universell fuer Zwischenrechnungen
30
31 symbol ANCON = w9 'Schwellwertgrenze Ankerlicht ON
32 symbol ANCOFF = w10 'Schwellwertgrenze Ankerlicht OFF
33
34 ANCON = 365 'kleiner als ANCOFF, LDR = 15K = 365 (LTSENSE)
35 ANCOFF = 165 'groesser als ANCON, LDR = 51K = 165 (LTSENSE)
36
37 '-----------------------------------------------------------------------------------------------
38 MAIN:
39
40 readadc10 c.4, LTSENSE 'Helligkeit auslesen
41
42 LTSENSE = LTSENSE MIN 1
43
44 gosub SWITCHDIM
45
46 if pinC.3 = 1 then 'Ankerlichtschalter EIN?
47 gosub ANCHORLIGHT
48 else if pinC.3 = 0 then
49 low C.1
50 endif
53
54 goto MAIN
55
56 '-----------------------------------------------------------------------------------------------
57 ANCHORLIGHT: 'Ankerlicht in Abhaengigkeit vom Umgebungslicht
58 'ein bzw. abschalten
59 if LTSENSE <= ANCON then
60 high C.1
61 endif
62
63 if LTSENSE => ANCOFF then
64 low C.1
65 endif
66
67 return
 



Schade, der Code wird nach dem Einfügen leider "deformiert"...

------------------------------------------------
Danke und Gruß
Joe

 
Joe Patroni
Beiträge: 86
Registriert am: 28.01.2019


RE: Automatisches Ankerlicht mit Schalter-LED Dimming Funktion

#3 von Joe Patroni , 28.01.2019 13:54

Zwischenzeitlich hat die Schaltung noch ein neues Feature erhalten: Das Ankerlicht kann nun verwendet werden, ein SOS zu signalisieren:

http://www.goli-otok.com/temp/Ankerlicht.mp4





Schaltplan

Layout

Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
 
'Picaxe 08M2+
'Automatic Anchorlight and Switchlight dimming Module
'For HW Rev >1.3
'AKO 2015
'Last changes: 031115
 
'SOS-Funktion implentiert
 
#picaxe 08M2 'definiert den gueltigen Picaxe-Typ
 
disconnect 'schaltet SERIAL IN Abfrage ab, um Pin C.5 als Eingang nutzen
'zu koennen. Fuer Programmdownload Picaxe stromlos machen, PE download starten,
'nach 1-2 sec Picaxe powern. SOS-Switch mu? dafuer in OFF stehen!
 
setfreq m16 'setzt Systemfrequenz auf 16MHz
 
let dirsc = %00000111 'konfiguriert C.0, C.1 und C.2 auf Ausgang
let pinsc = %00000101 'schaltet Ausgaenge C.0 und C.2 AUS
 
symbol LTSENSE = w0 'Helligkeitswert (Sensor) an ADC C.4
symbol SWDIM = w1 'Ausgabewert Switchlight-Helligkeit
 
symbol MINBRIGHT = w6 'Minimalwert Switchlight-Helligkeit
MINBRIGHT = 2 'LED Mindesthelligkeit @ SENSEMIN (min "1" und kleiner MAXBRIGHT)
symbol MAXBRIGHT = w7 'Maximalwert Switchlight-Helligkeit
MAXBRIGHT = 255 'LED Hoechsthelligkeit @ SENSEMAX (max "255" und groesser MINBRIGHT)
 
symbol SENSEMIN = w4 'Untergrenze Umgebungshelligkeit fuer MINBRIGHT
SENSEMIN = 200
symbol SENSEMAX = w5 'Obergrenze Umgebungshelligkeit fuer MAXBRIGHT
SENSEMAX = 500
 
symbol PITCH = w12 'fuer Zwischenberechung der Steigung
symbol TEMP1 = w13 'universell fuer Zwischenrechnungen
 
symbol ANCON = w9 'Schwellwertgrenze Ankerlicht ON
symbol ANCOFF = w10 'Schwellwertgrenze Ankerlicht OFF
 
ANCON = 165 'kleiner als ANCOFF, LDR = 15K (LTSENSE)
ANCOFF = 365 'groesser als ANCON, LDR = 51K (LTSENSE)
 
'-------------------------------------------------------------------------------------
 
MAIN:
 
readadc10 c.4, LTSENSE 'Helligkeit auslesen
 
LTSENSE = LTSENSE MIN 1
 
gosub SWITCHDIM
 
if pinC.3 = 1 and pinC.5 = 1 then 'Ankerlichtschalter EIN?
gosub SOSACTIVE

else if pinC.3 = 1 and pinC.5 = 0 then
gosub ANCHORLIGHT

else if pinC.3 = 0 then
low C.1
endif
 
goto MAIN
 
'-------------------------------------------------------------------------------------
ANCHORLIGHT: 'Ankerlicht in Abhaengigkeit vom Umgebungslicht
'ein bzw. abschalten
if LTSENSE <= ANCON then
high C.1
endif
 
if LTSENSE => ANCOFF then
low C.1
endif
 
return
 
'-------------------------------------------------------------------------------------
SWITCHDIM: 'LED-Helligkeit in Abhaengigkeit vom Umgebungslicht
'berechnen und innerhalb der Limits ausgeben
 
if LTSENSE <= SENSEMIN then
SWDIM = MINBRIGHT
elseif LTSENSE >= SENSEMAX then
SWDIM = MAXBRIGHT
elseif LTSENSE > SENSEMIN and LTSENSE < SENSEMAX then
 
PITCH = MAXBRIGHT - MINBRIGHT * 100
TEMP1 = SENSEMAX - SENSEMIN
PITCH = PITCH / TEMP1
TEMP1 = LTSENSE - SENSEMIN
SWDIM = PITCH * TEMP1 / 100 + MINBRIGHT

endif
 
if pinC.5 = 1 then 'wenn SOS "ON", dann Switchlights max bright
SWDIM = MAXBRIGHT
endif

pwmout c.2,99,SWDIM
return
 
'-------------------------------------------------------------------------------------
 
SOSACTIVE:
 
LOW C.1:pause 7000
 
'"S"
HIGH C.1:pause 2000
LOW C.1:pause 2000
if pinC.3 = 0 or pinC.5 = 0 then return
endif
 
HIGH C.1:pause 2000
LOW C.1:pause 2000
if pinC.3 = 0 or pinC.5 = 0 then return
endif
 
HIGH C.1:pause 2000
LOW C.1:pause 5000
if pinC.3 = 0 or pinC.5 = 0 then return
endif
 
'"O"
HIGH C.1:pause 4000
LOW C.1:pause 4000
if pinC.3 = 0 or pinC.5 = 0 then return
endif
 
HIGH C.1:pause 4000
LOW C.1:pause 4000
if pinC.3 = 0 or pinC.5 = 0 then return
endif
 
HIGH C.1:pause 4000
LOW C.1:pause 5000
if pinC.3 = 0 or pinC.5 = 0 then return
endif
 
'"S"
HIGH C.1:pause 2000
LOW C.1:pause 2000
if pinC.3 = 0 or pinC.5 = 0 then return
endif
 
HIGH C.1:pause 2000
LOW C.1:pause 2000
if pinC.3 = 0 or pinC.5 = 0 then return
endif
 
HIGH C.1:pause 2000
LOW C.1:pause 7000
 
return
 


------------------------------------------------
Danke und Gruß
Joe

 
Joe Patroni
Beiträge: 86
Registriert am: 28.01.2019

zuletzt bearbeitet 28.01.2019 | Top

   

Lauflicht für K.I.T.T.
Neigung messen mit MPU-6050

Picaxe Editor 5.5.5 Download
Update auf Picaxe Editor 5.5.6 Download
Picaxe Editor 6.x.x.x Download
Manual1.pdf        -      Grundwissen Download
Manual2.pdf        -      Befehle Download
Manual3.pdf        -      Beispiele Download


Press [Backspace] for back to Menu


Counter
Xobor Forum Software ©Xobor.de | Forum erstellen
Datenschutz