Forum: Projekte & Code Melodieklingel BASCOM ATmega8


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Guido S. (flintstone)


Lesenswert?

Liebe Gemeinde,

heute möchte ich euch eine Melodieklingel vorstellen, die in BASCOM 
programmiert wurde. Ja, es ist BASIC. Nicht abwinken - der Befehl 
"SOUND" wurde nicht verwendet. Vielmehr wurde der Timer1 im CTC-Modus 
verwendet und erzeugt, einmal angestoßen, ein Rechtecksignal 
selbständig, dass den Ton ergibt.
Timer0 wurde verwendet, um die Länge des Tones zu begrenzen. Weiterhin 
habe ich noch den externen INT0 verwendet, um einen Klingeltaster 
anzuschließen.
Die Idee für diese Klingel ist sehr alt. Sie ist in der Zeitschrift 
Funkamateur im Heft 4 1986 veröffentlicht worden. Wer danach im Internet 
sucht, wird diesen Artikel auch finden. Die Melodien wurden aus dieser 
Zeitschrift übernommen.
Für den Bau der Klingel wurde ein ATmega8 verwendet. Dieser ist 
natürlich für diese Anwendung etwas überdimensioniert. Wenn jemand 
versucht, dieses Programm in einem anderen Controller zu verwenden, 
sollte er berücksichtigen, dass der Timer1 im ATmega8 als 16-Bit-Timer 
aufgebaut ist. Er wird hier auch in diesem Modus verwendet. Eine 
Anpassung an einen 8-Bit-Timer ist zwar möglich, erfordert aber einige 
Programmänderungen.
Zur Hardware gibt es nicht viel zu sagen. Der Ausgang für den 
Lautsprecher befindet sich an PIN 15 (OCA1). Für Testzwecke kann dort 
ein Lautsprecher mit einem Widerstand von 220 Ohm in Reihe direkt 
angeschlossen und gegen Masse geschaltet werden. Wer es lauter braucht, 
der sollte noch einen Verstärker nachschalten. Der Klingeltaster wird an 
PIN 4 (INT0) gegen Masse angeschlossen. Wo die Versorgungsspannung von 5 
V hin kommt, müsste jedem Elektroniker klar sein.

Aufbau der Töne in der Liedtabelle:
1
Bit
2
7  6  5  4  3  2  1  0
3
4
Tonhöhe (Bit 3:0)
5
0  -  Pause (kein Ton)
6
1  -  c'    261,63 Hz
7
2  -  cis'  277,18 Hz
8
3  -  d'    293,66 Hz
9
4  -  dis'  311,11 Hz
10
5  -  e'    329,63 Hz
11
6  -  f'    349,22 Hz
12
7  -  fis'  369,99 Hz
13
8  -  g'    392,00 Hz
14
9  -  gis'  415,33 Hz
15
A  -  a'    440,00 Hz
16
B  -  b'    466,15 Hz
17
C  -  h'    493,89 Hz
18
D  -  c"    523,22 Hz
19
E  -  cis"  554,40 Hz
20
F  -  d"    587,37 Hz
21
22
Tonlänge in Achtelnoten (Bit 6:4)
23
0  -  1/8
24
1  -  ¼
25
2  -  3/8
26
3  -  ½
27
4  -  5/8
28
5  -  3/4
29
6  -  7/8
30
7  -  1
31
32
Stoppbit (Bit 7)
33
Wird an jedem Liedende gesetzt.

Das Programm:
1
   ' Melodieklingel   -   Guido Scheidat
2
   ' Nachbau der Melodieklingel aus FA 4/86 mit modernen Bauteilen
3
   ' Übernahme aller Melodien aus der "Funkamateur"
4
5
   ' ATmega8
6
   ' intern 8 MHz
7
   ' Pin 4 (PD2 / INT0) - Klingeltaster gegen Masse
8
   ' Pin 15 (PB1 / OC1A) - Ausgang zum Lautsprecher
9
10
11
   $regfile = "m8def.dat"                                   'Die Anweisung bestimmt Controllertyp, hier AVR ATmega 8
12
   $crystal = 8000000                                       'Die Frequenz des verwendeten Quarzes
13
   $prog &HFF , &HF4 , &HD9 , &H00                          'generated. Take care that the chip supports all fuse bytes.
14
15
16
   Dim Viertel As Byte
17
   Dim I As Byte
18
   Dim Lang As Byte
19
   Dim Aktton As Byte
20
   Dim Liedcount As Integer
21
   Dim Enderr As Bit
22
23
   Const Speed = 4                                          'darf nicht 0 sein
24
   Liedcount = 0
25
   Lang = 1
26
   Enderr = 0
27
   Viertel = 1
28
   Set Portd.2                                              'Pull-up ein
29
   Config Portb.1 = Input                                   'SOUNDOFF
30
31
'*** Timer 1 einstellen
32
   'Vorteiler auf 1
33
   Set Tccr1b.cs10
34
   Reset Tccr1b.cs11
35
   Reset Tccr1b.cs12
36
37
   'Toggle OC1A on Compare Match
38
   Reset Tccr1a.com1a1
39
   Set Tccr1a.com1a0
40
41
   'Waveform Generation Mode --> Mode 4; CTC
42
   'WGM13 = 0
43
   'WGM12 = 1
44
   'WGM11 = 0
45
   'WGM10 = 0
46
   Reset Tccr1b.wgm13
47
   Set Tccr1b.wgm12
48
   Reset Tccr1a.wgm10
49
   Reset Tccr1a.wgm11
50
51
'*** Timer 0 einstellen
52
   Config Timer0 = Timer , Prescale = 1024                  'Konfiguriere Timer0
53
   On Timer0 Isr_timer0                                     'verzweige bei Timer0-Überlauf zu ISR_Timer0
54
   Timer0 = 256 - 243                                       'Timer0 Zeit für 1/8 Note / 4
55
   Enable Timer0                                            'schalte den Timer0 ein
56
57
'*** externen Interrupt 0 einstellen
58
   Config Int0 = Low Level                                  'configuriere Int0 Auf Low Level
59
   On Int0 Isr_int0                                         'springe zu ISR_Int0
60
   Enable Int0                                              'einschalten von Interrupt Int0
61
62
'*** Behandlung von Interrupts
63
   Enable Interrupts                                        'Einschalten der Interrupts
64
65
66
'*** Hauptprogramm
67
   Do
68
    '....Hauptprogramm     --  es gibt kein Hauptprogramm, da Alles über Interrupts gesteuert wird
69
   Loop
70
   End
71
72
73
74
'*** Interrupt-Routine für Timer 0
75
   Isr_timer0:                                              'ISR von Timer0
76
      Viertel = Viertel - 1
77
      If Viertel = 0 Then
78
         Viertel = Speed
79
         Lang = Lang - 1
80
         If Lang = 0 Then
81
            If Enderr = 1 Then
82
               'Timer / Counter0 Overflow Interrupt Disable
83
               Disable Timer0                               'schalte den Timer0 aus
84
               Config Portb.1 = Input                       'SOUNDOFF
85
               Enable Int0                                  'INT0 erlauben
86
            Else
87
               Aktton = Lookup(liedcount , Lied)
88
               If Aktton.7 = 1 Then Enderr = 1              'Liedende gefunden
89
               Lang = Aktton                                'Tonlänge ermitteln
90
               Shift Lang , Right , 4                       'Division durch 16
91
               Lang = Lang And &H07
92
               Lang = Lang + 1
93
               Aktton = Aktton And &H0F
94
               If Aktton = 0 Then
95
                  Config Portb.1 = Input                    'SOUNDOFF
96
               Else
97
                  Aktton = Aktton - 1
98
                  Reset Tccr1b.cs10                         'CTC aus
99
                  Shift Aktton , Left , 1                   'Multiplikation mit 2
100
                  Ocr1ah = Lookup(aktton , Tone)            'Tonhöhe
101
                  Aktton = Aktton + 1
102
                  Ocr1al = Lookup(aktton , Tone)            'Tonhöhe
103
                  Tcnt1l = 0                                'Zähler soll bei 0 beginnen
104
                  Tcnt1h = 0
105
                  Set Tccr1b.cs10                           'CTC ein
106
                  Config Portb.1 = Output                   'SOUNDON
107
               End If
108
               Liedcount = Liedcount + 1                    'nächste Note
109
               Aktton = Lookup(liedcount , Lied)
110
               If Aktton = &HFF Then                        'Test ob Liedtabelle zu Ende ist
111
                  Liedcount = 0
112
               End If
113
            End If
114
         End If
115
      End If
116
   Return
117
118
'*** Interrupt-Routine für externen Interrupt 0
119
   Isr_int0:                                                'ISR von INT0
120
      Disable Int0                                          'External Interrupt Request 0 Disable
121
      'Tastenentprellung und Sturmklingelsperre
122
      I = 0
123
      While I < 30                                          'Taste muss mindestens 30 ms gedrückt sein
124
         If Pind.2 = 0 Then
125
            Waitms 1                                        'Pause
126
            I = I + 1
127
         Else
128
            I = 0
129
         End If
130
      Wend
131
132
      I = 0
133
      While I < 30                                          'Taste muss mindestens 30 ms losgelassen sein
134
         If Pind.2 = 1 Then
135
            Waitms 1                                        'Pause
136
            I = I + 1
137
         Else
138
            I = 0
139
         End If
140
      Wend
141
      'Taste wurde erfolgreich gedrückt und losgelassen
142
      'Jetzt kann die nächste Melodie gespielt werden
143
      Viertel = 1
144
      Lang = 1
145
      Enderr = 0
146
      Enable Timer0
147
   Return
148
149
'***
150
   Tone:
151
   Data 59 , 184                                            ' c'     261,63 Hz Timerwerte für die enspr. Tonhoehen in Hz
152
   Data 56 , 94                                             ' cis'   277,18 Hz
153
   Data 53 , 52                                             ' d'     293,66 Hz
154
   Data 50 , 56                                             ' dis'   311,11 Hz
155
   Data 47 , 102                                            ' e'     329,63 Hz
156
   Data 44 , 189                                            ' f'     349,22 Hz
157
   Data 42 , 58                                             ' fis'   369,99 Hz
158
   Data 39 , 219                                            ' g'     392,00 Hz
159
   Data 37 , 158                                            ' gis'   415,33 Hz
160
   Data 35 , 130                                            ' a'     440,00 Hz
161
   Data 33 , 132                                            ' b'     466,15 Hz
162
   Data 31 , 162                                            ' h'     493,89 Hz
163
   Data 29 , 220                                            ' c''    523,22 Hz
164
   Data 28 , 46                                             ' cis''  554,40 Hz
165
   Data 26 , 153                                            ' d''    587,37 Hz
166
167
'***
168
   Lied:
169
   'Musi01:
170
   Data &H03 , &H00 , &H05 , &H00 , &H07 , &H00 , &H08 , &H00 , &H0A , &H00 , &H0C , &H00 , &H3A , &H08 , &H00 , &H05 , &H00 , &H3E , &H0A , &H00 , &H07 , &H00 , &HAF
171
172
   'Musi02:
173
   Data &H35 , &H00 , &H2A , &H00 , &H02 , &H05 , &H10 , &H05 , &H10 , &H85
174
175
   'Musi03:
176
   Data &H03 , &H00 , &H05 , &H00 , &H37 , &H3A , &H0E , &H20 , &H1C , &H10 , &H2C , &H00 , &HA7
177
178
   'Musi04:
179
   Data &H47 , &H00 , &H06 , &H00 , &H07 , &H00 , &H0F , &H00 , &H07 , &H00 , &H0E , &H00 , &H0C , &H20 , &H0C , &H20 , &H9C
180
181
   'Musi05:
182
   Data &H0A , &H00 , &H2F , &H10 , &H1E , &H10 , &H0C , &H0A , &H10 , &HA7
183
184
   'Musi06:
185
   Data &H53 , &H17 , &H3A , &H3F , &H3C , &H1F , &H1C , &HBA
186
187
   'Musi07:
188
   Data &H13 , &H20 , &H15 , &H20 , &H17 , &H00 , &H1A , &H1C , &H00 , &H1A , &H1F , &H20 , &H1C , &H20 , &H1A , &HB7
189
190
   'Musi08:
191
   Data &H17 , &H18 , &H3A , &H27 , &H00 , &H27 , &H00 , &H37 , &H95
192
193
   'Musi09:
194
   Data &H33 , &H08 , &H00 , &H0A , &H00 , &H3C , &H3F , &H3C , &H3A , &HB8
195
196
   'Musi10:
197
   Data &H48 , &H00 , &H0A , &H00 , &H08 , &H00 , &H06 , &H00 , &H25 , &H00 , &H21 , &H00 , &HB1
198
199
   'Musi11:
200
   Data &H45 , &H00 , &H03 , &H00 , &H02 , &H00 , &H05 , &H00 , &H0A , &H00 , &H0C , &H00 , &H5E , &H10 , &HBA
201
202
   'Musi12:
203
   Data &H0A , &H00 , &H08 , &H00 , &H0A , &H00 , &H08 , &H00 , &H07 , &H20 , &HB3
204
205
   'Musi13:
206
   Data &H03 , &H00 , &H03 , &H00 , &H25 , &H00 , &H23 , &H00 , &H28 , &H00 , &H47 , &H20 , &H03 , &H00 , &H03 , &H00 , &H25 , &H00 , &H23 , &H00 , &H2A , &H00 , &HC8
207
208
   'Musi14:
209
   Data &H46 , &H00 , &H14 , &H13 , &H14 , &H36 , &H3F , &H3B , &HA6
210
211
   'Musi15:
212
   Data &H15 , &H12 , &H50 , &H12 , &H23 , &H15 , &H0E , &H20 , &H0E , &H20 , &HBA
213
214
   'Musi16:
215
   Data &H28 , &H00 , &H03 , &H00 , &H23 , &H10 , &H38 , &H00 , &H25 , &H00 , &H05 , &H00 , &H25 , &H40 , &H27 , &H00 , &H08 , &H00 , &H2A , &H10 , &H27 , &H10 , &H28 , &H00 , &H0C , &H00 , &HB8
216
217
   'Musi17:
218
   Data &H4A , &H00 , &H07 , &H10 , &H0A , &H10 , &H07 , &H10 , &H0A , &H10 , &H08 , &H10 , &HA8
219
220
   'Musi18:
221
   Data &H0C , &H00 , &H0B , &H00 , &H0C , &H20 , &H0C , &H00 , &H0B , &H00 , &H0C , &H20 , &H0C , &H00 , &H0B , &H00 , &H0C , &H20 , &H0A , &H20 , &H98
222
223
   'Musi19:
224
   Data &H03 , &H00 , &H03 , &H00 , &H28 , &H00 , &H2C , &H00 , &H08 , &H00 , &H08 , &H00 , &H2A , &H00 , &H2D , &H00 , &H03 , &H00 , &H07 , &H00 , &H3A , &H00 , &H0C , &H00 , &H2A , &H00 , &HA8
225
226
   'Musi20:
227
   Data &H03 , &H00 , &H05 , &H00 , &H27 , &H00 , &H07 , &H00 , &H0A , &H00 , &H28 , &H00 , &H08 , &H00 , &H0C , &H00 , &H1A , &H00 , &H0C , &H0A , &H00 , &H08 , &H00 , &HA7
228
229
   'Musi21:
230
   Data &H21 , &H00 , &H46 , &H00 , &H08 , &H00 , &H0B , &H00 , &H0A , &H00 , &H08 , &H00 , &H2D , &H00 , &HAD
231
232
   'Musi22:
233
   Data &H28 , &H00 , &H4D , &H00 , &H08 , &H00 , &H25 , &H00 , &H26 , &H00 , &H48 , &H00 , &H0A , &H00 , &HA8
234
235
   'Musi23:
236
   Data &H23 , &H00 , &H4F , &H00 , &H0E , &H00 , &H2F , &H00 , &H2C , &H00 , &H4D , &H00 , &H0C , &H00 , &H2D , &H00 , &H27 , &H00 , &H0A , &H00 , &H98
237
238
   'Musi24:
239
   Data &H6A , &H00 , &H6A , &H00 , &H0A , &H00 , &H3C , &H30 , &H0A , &H00 , &H2C , &H00 , &H0A , &H00 , &H0C , &H00 , &H2A , &H00 , &H09 , &H00 , &HB8
240
241
   'Musi25:
242
   Data &H0C , &H20 , &H2A , &H20 , &H07 , &H00 , &H05 , &H00 , &H03 , &H00 , &H2C , &H00 , &H2B , &H00 , &HAC
243
244
   'Musi26:
245
   Data &H07 , &H00 , &H05 , &H00 , &H03 , &H00 , &H05 , &H00 , &H07 , &H00 , &H05 , &H00 , &H03 , &H00 , &H05 , &H00 , &H27 , &H00 , &H0C , &H20 , &H27 , &H00 , &H8C
246
247
   'Musi27:
248
   Data &H03 , &H00 , &H05 , &H00 , &H27 , &H00 , &H27 , &H00 , &H08 , &H00 , &H05 , &H00 , &H1C , &H0A , &H00 , &HAA
249
250
   'Musi28:
251
   Data &H23 , &H00 , &H03 , &H00 , &H07 , &H00 , &H2A , &H00 , &H2A , &H00 , &H2A , &H00 , &H0C , &H00 , &H0A , &H00 , &H27 , &H00 , &HA3
252
253
   'Musi29:
254
   Data &H3F , &H3E , &H3C , &H3A , &H3C , &H18 , &H17 , &H25 , &H00 , &HA3
255
256
   'Endekennzeichen
257
   Data &HFF

Dieses Programm gibt es auch in C. Wenn Bedarf besteht, stelle ich auch 
dieses noch ein.

von iCarly (Gast)


Lesenswert?

Das C-Programm kann dann bestimmt auch das Hohe "C".
Ja, stell mal rein. Währe nicht schlecht.

von Hannes Lux (Gast)


Lesenswert?

> Das C-Programm kann dann bestimmt auch das Hohe "C".

Kann es nicht, da diese (sehr kompakte) Form der Codierung nur 15 Töne 
plus Pause erlaubt.

...

von Sachich N. (dude) Benutzerseite


Lesenswert?

Bitte Code als Code posten :P

von Hannes Lux (Gast)


Lesenswert?

> Bitte Code als Code posten :P

Oder als Anhang. Da sieht man dann auch, wie oft er angesehen oder 
heruntergeladen wurde. ;-)

...

von Albert D. (albert32)


Angehängte Dateien:

Lesenswert?

Hallo!

Super Code!
Das Bascom Programm von  Guido Scheidat hier als ZIP-Datei.

mfg

albert

von zreik (Gast)


Lesenswert?

Bitte kannst du den Program als C code auch hier schreiben .

danke
MFG
Zreik

von Uwe S. (de0508)


Lesenswert?

Guten Morgen,

ich habe gestern auf die Schnelle den bascom code für den atMega48 
übersetzt. Ging problemlos.

Weitere Melodien habe ich hier gefunden:

http://sbarth.dyndns.org/seiten/rahmen.php?nav=klingel#v3

Und auch einen Link wieder zurück :

Beitrag "Melodieklingel mit PIC"

Im Anhang von Artikel

- Beitrag "Re: Melodieklingel mit PIC (AVR)"
stehen noch weitere Lieder.

Diese habe ich den aktuellen Code 'transplantiert', der atMega48 reicht 
immer noch und das Programm muss noch getestet werden !

Ausblick:
Spannend fände ich eine Portierung auf den atTiny85, der hat leider 
keinen 16-Bit Timer.

von Mirko B. (Gast)


Lesenswert?

Ein Beispiel für den Attiny 25 findest du hier

Beitrag "Klingel mit 100 Melodien - last minute Weihnachtsgeschenk"

Melodien kannst du dir von dort auch gern rauskonvertieren.

Viele Grüße,

Mirko

von Mirko B. (Gast)


Lesenswert?

Korrektur: Attiny 45

von Uwe S. (de0508)


Angehängte Dateien:

Lesenswert?

Vielen Dank Mirko,

der atMega48 läuft.
Habe ihn auf ein Steckbrett gesteckt.

Im Anhang für alle Mitleser der BASCOM Code und das Intel-Hex-File.

Ich verwende KEIEN 8MHz Quarz, sondern den internen 8MHz RC Oszillator !

Die Fusebits stehen in Melodieklingel-48.bas !

.

von Bobby B. (mdabob)


Angehängte Dateien:

Lesenswert?

Hallo, habe das Ganze mal für einen ATTiny2313 übersetzt, zusätzlich 
wurde eine Umschaltung auf Weihnachtslieder eingebaut (damit ist das 
Ganze jetzt zu der alten Funkamateur-Variante mit 2 EPROM's kompatible). 
Und weil ein Freund es forderte :-) ist auch noch ein Power-Save-Modus 
eingebaut. Der Microproz zieht also nur noch einige µA.

von Ralf G. (Gast)


Lesenswert?

Also bei mir spielt der Atiny2313 ganz langsam und dumpf etwas ab. Aber 
eben keine Melodie :-(
Er läuft aber intern auf 8Mhz, was kann da falsch sein?
Wie sind die Fusebit-Einstellungen?

von Sven (Gast)


Lesenswert?

Evtl. ist das Vorteiler-Fusebit noch gesetzt ?

von Bobby B. (mdabob)


Lesenswert?

Der ATTiny läuft wie der Original-ATMega mit dem internen RC-Oszllator 
mit 8MHz (also Vorteiler abschalten).

Die Fuses:   eFuse FFh
             hFuse DFh
             lFuse E4h.

Bitte beachten: der ATmega spielt beim Einschalten das erste Lied, der 
ATTiny
legt sich nach dem Einschalten sofort Schlafen und wird erst durch 
Drücken des Klingeltasters geweckt.

Bobby

von Ralf G. (Gast)


Lesenswert?

Genau das war es :-) ..... Tomaten auf den Augen.
Teiler abgeschalten und schon singt er wie ein Vogel :-)
Danke!

von Guido S. (flintstone)



Lesenswert?

Hallo, liebe Elektroniker,

heute will ich mal die C-Version schicken.

Danke für die lebhafte Diskusion!

Gruß
Guido

von Manfred S. (Firma: Manfred) (xfred343)


Lesenswert?

Hi,

hab das Ganze getestet, funzt ganz gut, hab statt dem Piezo einen 
kleinen Schalttransistor bzw. ULN2803 mit Lautsprecher angehängt. Aus 
mir zunächst nicht ganz erklärlichen Fällen passierte es dann in ca. 50% 
der Fälle, dass nach Abspielen der Melodie der Schalttransistor 
durchgeschaltet wurde und sich sowohl Lautsprecher als auch 
Schalttransistor stark erwärmt haben (naja bei 8 Ohm Lautsprecher an 5 
Volt irgendwie logisch).

Hab dann "weiter geforscht" und folgendes gefunden:
Was mich an dem ganzen Programm stört, ist die ständige Umschaltung des 
Ports zwischen Input und Output. Damit hat man - wenn eine 
nachgeschaltete Treiberstufe (ULN2803 oder Transistor) verwendet wird - 
ein Problem . Man müßte dann zusätzlich Pull-Down Widerstände gegen 
Masse schalten, da ja der Eingang des Atmega hochohmig ist und die 
Endstufe verwirrt:

Also folgender Verbesserungsvorschlag für die ISR_int0 Routine, der 
Portb.1 bleibt einfach als Ausgang definiert und es wird nur die 
Timersteuerung für den Portb.1 ein- bzw. ausgeschaltet:

statt
  Config Portb.1 = Input                    'SOUNDOFF
besser:
  reset Tccr1a.com1a0

und statt
  Config Portb.1 = output                    'SOUNDON
besser:
  set Tccr1a.com1a0

Dann bleibt der Pin B.1 ganz fix auf GND-Niveau, wenn nichts ausgegeben 
wird. Endstufe und Lautsprecher bleiben dann ganz cool

von Guido S. (flintstone)


Lesenswert?

Hallo Manfred, hallo alle!

Ja, dieses Problem besteht. Es zieht sich durch, seit der 
Veröffentlichung in der Zeitschrift Funkamateur.
Da das Programm in seiner Quelle offen ist, kann ich niemanden daran 
hindern, Änderungen vorzunehmen.
Warum das Problem bei mir nicht auftritt, ist die Tatsache, dass ich 
einen richtigen Verstärker angeschlossen habe. Da hier mindestens ein 
Kondensator in Reihe zum Signal geschaltet ist, können keine statischen 
Zustände am Lautsprecher ankommen.

Gruß
Guido

von Manfred S. (Firma: Manfred) (xfred343)


Lesenswert?

Danke Guido,

schön, dass du meine Erfahrung bestätigt hast. Mit meinem Vorschlag ist 
das Problem ja behoben, ich finde es auch verständlicher, nicht die 
Richtung des Ports zu ändern (Ausgang auf Eingang mit der Problematik 
des hochohmigen Eingangs), sondern einfach den Timerausgang vom Port zu 
nehmen und damit wieder die defaultmäßige Ausgangsstellung (=0) aufleben 
zu lassen.

Falls jemand einen RTTTL-Klingeltonspieler will, denn habe ich hier 
veröffentlicht - Beitrag "Re: RTTTL-Klingeltoninterpreter für Atmega8 in BASCOM II" für 
den sind viel einfacher Songs zu finden, da es diese Klingeltonplayer 
noch zu Hauf im Internet gibt und auch Converter, die aktuelle Songs 
einstimmig von MP3 auf RTTTL konvertieren können.

von Dieter Aschmann (Gast)


Lesenswert?

Hallo Freunde der FA 4/86 Melodietürklingel,

ich habe das Programm etwas umgeschrieben, sodas es nun möglich ist über 
einen Schiebeschalter drei Melodieblöcke anzuwählen und die 
Statuszustände per LED zur Anzeige gebracht einen Lautstärke Regler nach 
aussen geführt.
Es gibt dazu ein Target3001V16 Projekt mit zwei abgesetzten Platinen die 
im Gehäuse über Flachkabel miteinander verbunden sind. Gehäuse gibt's 
bei Reichelt Elektronik und alle Bauteile auch.
Bei Bedarf könnte ich per e-mail eine *.tif Datei zusenden oder eine 
*.zip wenn Bestückungs- und Stromlaufplan gewünscht wird.

mail: dieter.aschmann@web.de

von Guido S. (flintstone)


Lesenswert?

Hallo Dieter,

warum veröffentlichst du deine Erkenntnisse nicht gleich auf dieser 
Seite?
Ein Image der Leiterplatte wäre auch nicht schlecht, da nicht jeder - 
wie ich - target benutzt.

Gruß
Guido

von Buna-Pelzer (Gast)


Lesenswert?

Guido schrieb:
>warum veröffentlichst du deine Erkenntnisse nicht gleich auf dieser
>Seite?

Vielleicht will er sich das hier oft übliche saublöde Genöle ersparen.

gez. Buna-Pelzer

von Dieter Aschmann (Gast)


Lesenswert?

Hallo Freunde,

ich werde schnellstmöglich eine *.zip Datei anhängen mit dem geaenderten 
Bascom File und *.hex- File  sowie das Target Projekt, als auch eine 
*.tif und/oder eine *.pdf vom Platinenlayout und Bestückungsplan senden. 
Platine ist ingesamt etwas kleiner wie eine Europakarte und trennbar, 
sowie einseitig mit einigen Brücken. Vieleicht füge ich noch ein 
Gerberfile dazu damit bei genuegend Interessenten industrielle 
Platinenherstellung moeglich ist.

Dieter Aschmann

von Dieter Aschmann (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Fangemeeinde,

wie versprochen, sind alle Informationen in der angehängten *.zip Datei.
Auch das Baskom- Projekt mit neuer Version nochmals kompiliert.
Die Fusebits müssen im AVR- Studio oder in/ueber Bascom gesetzt werden.
Viel Spaß beim Nachbauen, ein etwas besserer Lautsprecher in einer 
kleinen gedämmten Regalbox macht den Sound angenehm.

Dieter Aschmann

von Tommy T. (thomas_k86)


Angehängte Dateien:

Lesenswert?

Ein herzliches danke an Dieter Aschmann!
Da hat er wieder eine freude der kleine!! :)

von Dieter Aschmann (Gast)


Lesenswert?

Hallo Tommy,

schön zu wissen das es Interesse gefunden hat und das es doch schon 
viele Downloads gegeben hat.
Dieses Projekt ist allerdings Netzgebunden (230VAC) und es gibt doch 
bedingt durch Verstärker IC TDA2030 ordentlich Lautstärke ab begrenzt 
durchs Netzteil. Ich habe in eine kleine Regalbox aus Sperrholz ca. 
20x10x7cm in Verbindung mit einem 10€ Breitbandlautsprecher den alten 
"DingDong 12VAC Gong" ersetzt.
Da Eingänge für einen potentialfreien Klingeltaster als auch ein 12VAC 
Eingang vorhanden ist passt die Melodieklingel fast an alle Altanlagen.
den Masse- Jumper muss man dann allerding richtig stecken. 
Wechselstrombetrieb offen.

Mit freundlichen Grüssen

Dieter Aschmann

PS. Den original Türgong aus FA 4/86 habe ich auch gebaut. war damals 
keine leichte Sache, scheiterte meistens am EPROM- Brenner. Die Bauteile 
waren meist als Bastelversion erhältlich. Der liegt noch in der 
Bastelkiste, wenn die Elko's nicht eingetrocknet sind würde die Klingel 
heute noch läuten, allerdings der Sound...

von Tommy T. (thomas_k86)


Angehängte Dateien:

Lesenswert?

Dieter Aschmann schrieb:
> Dieses Projekt ist allerdings Netzgebunden (230VAC)

Das Projekt soll als Spielzeug für meinen Sohn dienen.Der mit seinen 5 
Jahren extreme Interesse an der Elektronik mitbringt.Daher aber auch und 
wie du meinem Bild entnehmen kannst,wird das Gerät nur mit Batterie 
betrieben.Und aus gesundheitlichen Gründen meiner seits,hat das Gerät 
nur einen Piezosummer und keinen Lautsprecher.Denn das weiss ich jetzt 
schon dass da ziemlich oft auf den Taster gedrückt wird. :)
Aufgebaut und getestet hab ichs schon und die Platine ist bereits 
fertig.Jetzt gehts ans löten.

 :)

von Tommy T. (thomas_k86)


Angehängte Dateien:

Lesenswert?

Ein bischen unscharf aber es funzt. Nochmals Danke an Dieter Aschmann! 
Der Kleine hat sehr viel Freude damit. :)

von Ulrich S. (reise)


Lesenswert?

gibts da auch noch'n stromlaufplan zur schaltung mit 2313...

: Bearbeitet durch User
von Tommy T. (thomas_k86)


Lesenswert?

Ich hab der Platine einen ATmega8 eingepflantzt.

von Ulrich S. (reise)


Lesenswert?

habe nach etlicher zeit deine schaltung auf einer nach deiner vorlage 
gefertigten platine aufgebaut. nachdem ich aus versehen einen zu 
schwachen trafo aufgelötet hatte, verwendete ich den in der stückliste 
angegebenen. habe jetzt gerade wieder mit der schaltung probiert... aber 
sie sagt keinen "ton" - nichtmal eine led blinzelt beim start. an was 
könnte das wohl liegen?
bin ratlos!?!

von Tommy T. (thomas_k86)


Lesenswert?

zeig doch mal

von Ulrich S. (reise)


Angehängte Dateien:

Lesenswert?

Tommy Tomatronic schrieb:
> zeig doch mal

hier mal die 3d darstellung der schaltung...mittlerweile ist der 
kupferwurm gefunden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.