Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Montag, 4. August 2008, 11:10

Voltage Monitor VMon

Hi at all.

Für das drohende Sommerloch hab ich mir ein kleines Projekt ausgedacht aus einem ATtiny25/45, 3 Widerständen, einem Kondenstaor und einer LED welches nix weiter zu tun hat als die Spannung meines 4S NiMH Akkus für meine DLGs zu monitoren.
Alles ist im Deadbug-Design gelötet, als Quarz wird der interne Oszillator mit einem Vorteiler von 8 verwendet und die Firmware ist im selbsterklärenden linearen BASCOM geschrieben.

Quellcode

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
'ATTiny 45 als Spannungsmonitor
'ADC-Test mit Signalisierung über gepulste LED und Piezosummer
'Chip=ATtiny45
'Onchiposzillator
'Minimalbeschaltung
'Full>=4.8V
'Normal>=4.4 <4.8V
'Leer= <4.4V
'
'
'Einschaltsignalisierung: Dauerblinken und anschliessend  Spannung als Pulse kodiert
'Normalbetrieb: keine Pulse
'Leer ab 4.5V:  Einzelpulse
'Panik ab 4.4V: Doppelpulse
'Panik ab 4.3V: Vierfachpulse
'Panik ab 4.2V: Pulse ohne Pause

$regfile = "atTiny45.dat"
$crystal = 1000000

Dim I As Byte
Dim C As Byte
Dim W As Word
Dim Wc As Word
Dim Ledon As Byte
Dim Ledoff As Word
Dim Einer As Word
Dim Zehner As Word

Ledon = 100
Ledoff = 600
Config Pinb.0 = Output

Config Adc = Single , Prescaler = Auto , Reference = 2
Start Adc

For I = 1 To 10
      Set Portb.0
      Waitms 70
      Reset Portb.0
      Waitms 50
      Set Portb.0
      Waitms 70
      Reset Portb.0
      Waitms 70
Next I

Waitms 1500


For I = 1 To 5

W = Getadc(1)
W = W * 121                                                 'eigentlich * weil ein Widerstandsvorteiler von 1:11 und noch mal mal 11 weil Vref=1.1V
W = W / 1024
Zehner = W / 10
Einer = Zehner * 10
Einer = W - Einer
   For C = 1 To Zehner
      Set Portb.0
      Waitms 70
      Reset Portb.0
      Waitms 50
      Set Portb.0
      Waitms 70
      Reset Portb.0
      Waitms Ledoff
   Next C
 Waitms Ledoff
   For C = 1 To Einer
      Set Portb.0
      Waitms 200
      Reset Portb.0
      Waitms Ledoff
   Next C
Waitms 1500
Next I


Do
W = Getadc(1)
W = W * 121              
W = W / 1024

Select Case W
   Case 44 : Set Portb.0
         Waitms 200
         Reset Portb.0
         Waitms 2000
   Case 43 : Set Portb.0
         Waitms 200
         Reset Portb.0
         Waitms 200
         Set Portb.0
         Waitms 200
         Reset Portb.0
         Waitms 2000
   Case 42 : Set Portb.0
         Waitms 200
         Reset Portb.0
         Waitms 200
         Set Portb.0
         Waitms 200
         Reset Portb.0
         Waitms 200
         Set Portb.0
         Waitms 200
         Reset Portb.0
         Waitms 200
         Set Portb.0
         Waitms 200
         Reset Portb.0
         Waitms 2000
   Case Is < 42 : Set Portb.0
         Waitms 200
         Reset Portb.0
         Waitms 200
   Case Else
End Select



Loop

End


Nicht benötigte Variablen könnt ihr selber killen und natürlich die Firmware auch selbst an eure Bedürfnisse anpassen.

So, jetzt seid ihr euch wieder selber überlassen. :D
"Die Deutsche Rechtschreibung ist Freeware, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."
Quelle: GBO

2

Dienstag, 7. Oktober 2008, 10:14

Anbei die Schaltung des VMon in der Urfassung.
»sidigonzales« hat folgendes Bild angehängt:
  • vmonv1.png
"Die Deutsche Rechtschreibung ist Freeware, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."
Quelle: GBO

3

Dienstag, 7. Oktober 2008, 11:35

Ein Kästchen ist 5mm groß
»sidigonzales« hat folgendes Bild angehängt:
  • VMon1.jpg
"Die Deutsche Rechtschreibung ist Freeware, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."
Quelle: GBO

4

Dienstag, 7. Oktober 2008, 11:36

und mal als Vergleich
»sidigonzales« hat folgendes Bild angehängt:
  • VMon2.jpg
"Die Deutsche Rechtschreibung ist Freeware, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."
Quelle: GBO

5

Freitag, 10. Oktober 2008, 10:29

Ein Bild vom "komplexen" Innenleben des VMonV1 allerdings mit LED LP5086A4UWC von Pollin:
»sidigonzales« hat folgendes Bild angehängt:
  • VMonV1 001.jpg
"Die Deutsche Rechtschreibung ist Freeware, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."
Quelle: GBO

6

Freitag, 10. Oktober 2008, 10:30

Das ganze hell erleuchtet:
»sidigonzales« hat folgendes Bild angehängt:
  • VMonV1 002.jpg
"Die Deutsche Rechtschreibung ist Freeware, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."
Quelle: GBO

7

Freitag, 10. Oktober 2008, 19:54

Hallo,

ein hübsches, kleines Projekt hast Du da zusammengebruzzelt! :ok:

Hast Du was dagegen, wenn ein Mod die Sachen zum Atmel-Einsteigerkurs rüberbeamt? Ich finde es gerade für Neueinsteiger interessant, weil es sehr einfach gehalten ist.

Viele Grüße

Torsten
[SIZE=4]www.zuendapp.net - die grösste Zündapp-Community im Internet! :ok:[/SIZE]

8

Samstag, 11. Oktober 2008, 21:51

Nö, könnt ihr gerne rüberbeamen.
Wäre natürlich nett wenn auch gleich noch das Restpotential des ATtinys genutzt wird. Die Löterei sollte niemanden vor unlösbare Probleme stellen. Selbst wenn man so klein baut.

sanfte Grüße
"Die Deutsche Rechtschreibung ist Freeware, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."
Quelle: GBO

9

Donnerstag, 16. Oktober 2008, 15:37

Ich hab den VMon ein wenig gepimpt. Er gibt jetzt LED und Piezopiepser getrennt aus auf b.0 und b.1 weil die Timings für eine sichere Erkennung bei beiden Medien doch sehr unterschiedlich ist und der Gesamtablauf wurde ein wenig optimiert bezüglich der Zeiten.


Quellcode

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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
' VMonV2 Spannungssignalisierung über gepulste LED und Piezosummer
'Chip=ATtiny45
'Onchiposzillator
'Minimalbeschaltung
'Full>=4.8V
'Normal>=4.4 <4.8V
'Leer= <4.4V
'
'
'Einschaltsignalisierung: 5xDoppelblinken oder Spannung als Pulse kodiert
'Normalbetrieb: keine Pulse
'Leer ab 4.5V:  Einzelpulse
'Panik ab 4.4V: Doppelpulse
'Panik ab 4.3V: Vierfachpulse
'Panik ab 4.2V: Pulse ohne Pause

$regfile = "atTiny45.dat"
$crystal = 1000000

Dim I As Byte
Dim C As Byte
Dim W As Word
Dim Wc As Word
Dim Ledon As Byte
Dim Ledoff As Word
Dim Einer As Word
Dim Zehner As Word

Ledon = 100
Ledoff = 600
Config Pinb.0 = Output
Config Pinb.1 = Output

Config Adc = Single , Prescaler = Auto , Reference = 2
Start Adc


For I = 1 To 10
      Set Portb.0
      Set Portb.1
      Waitms 20
      Reset Portb.1
      Waitms 10
      Set Portb.1
      Waitms 20
      Reset Portb.1
      Waitms 20
      '      Waitms 70
      Reset Portb.0
      Waitms 50
      Set Portb.0
      Waitms 70
      Reset Portb.0
      Waitms 70
Next I

Waitms 1500


For I = 1 To 3

W = Getadc(1)
W = W * 121                                                 'eigentlich * weil ein Widerstandsvorteiler von 1:11 und noch mal mal 11 weil Vref=1.1V
W = W / 1024
Zehner = W / 10
Einer = Zehner * 10
Einer = W - Einer
   For C = 1 To Zehner
      Set Portb.0
      Set Portb.1
      Waitms 30
      Reset Portb.1
      Waitms 40
      Set Portb.1
      Waitms 30
      Reset Portb.1
      Reset Portb.0
      Waitms 50
      Set Portb.0
      Waitms 70
      Reset Portb.0
      Waitms Ledoff
   Next C
 Waitms Ledoff
   For C = 1 To Einer
      Set Portb.0
      Set Portb.1
      Waitms 20
      Reset Portb.1
      Waitms 150
      Reset Portb.0
      Waitms Ledoff
   Next C
Waitms Ledoff
Next I


Do
W = Getadc(1)
W = W * 121                                                 'eigentlich * weil ein Widerstandsvorteiler von 1:11 und noch mal mal 11 weil Vref=1.1V
W = W / 1024

Select Case W
   Case 44 : Set Portb.0
                  Set Portb.1
                  Waitms 30
                  Reset Portb.1
                  Waitms 40
                  Set Portb.1
                  Waitms 30
                  Reset Portb.1
               Waitms 100
               Reset Portb.0
               Waitms 2000
   Case 43 : Set Portb.0
                  Set Portb.1
                  Waitms 30
                  Reset Portb.1
                  Waitms 40
                  Set Portb.1
                  Waitms 30
                  Reset Portb.1
               Waitms 100
               Reset Portb.0
               Waitms 200
              Set Portb.0
                  Set Portb.1
                  Waitms 30
                  Reset Portb.1
                  Waitms 40
                  Set Portb.1
                  Waitms 30
                  Reset Portb.1
               Waitms 100
               Reset Portb.0
               Waitms 2000
   Case 42 : Set Portb.0
      Set Portb.1
      Waitms 30
      Reset Portb.1
      Waitms 40
      Set Portb.1
      Waitms 30
      Reset Portb.1

         Waitms 100
         Reset Portb.0

         Waitms 200

         Set Portb.0
      Set Portb.1
      Waitms 30
      Reset Portb.1
      Waitms 40
      Set Portb.1
      Waitms 30
      Reset Portb.1

         Waitms 100
         Reset Portb.0

         Waitms 200

         Set Portb.0
      Set Portb.1
      Waitms 30
      Reset Portb.1
      Waitms 40
      Set Portb.1
      Waitms 30
      Reset Portb.1

         Waitms 100
         Reset Portb.0
         Waitms 200
         Set Portb.0
      Set Portb.1
      Waitms 30
      Reset Portb.1
      Waitms 40
      Set Portb.1
      Waitms 30
      Reset Portb.1

         Waitms 100
         Reset Portb.0
         Waitms 2000
   Case Is < 42 : Set Portb.0
      Set Portb.1
      Waitms 30
      Reset Portb.1
      Waitms 40
      Set Portb.1
      Waitms 30
      Reset Portb.1

         Waitms 100
         Reset Portb.0
         Waitms 200
   Case Else
End Select

Loop

End


und hier noch die Fuses:
»sidigonzales« hat folgendes Bild angehängt:
  • Fuses.jpg
"Die Deutsche Rechtschreibung ist Freeware, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."
Quelle: GBO