mikrocontroller.net

Forum: Projekte & Code Melodieklingel BASCOM ATmega8


Autor: Guido Scheidat (flintstone)
Datum:

Bewertung
0 lesenswert
nicht 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:
Bit
7  6  5  4  3  2  1  0

Tonhöhe (Bit 3:0)
0  -  Pause (kein Ton)
1  -  c'    261,63 Hz
2  -  cis'  277,18 Hz
3  -  d'    293,66 Hz
4  -  dis'  311,11 Hz
5  -  e'    329,63 Hz
6  -  f'    349,22 Hz
7  -  fis'  369,99 Hz
8  -  g'    392,00 Hz
9  -  gis'  415,33 Hz
A  -  a'    440,00 Hz
B  -  b'    466,15 Hz
C  -  h'    493,89 Hz
D  -  c"    523,22 Hz
E  -  cis"  554,40 Hz
F  -  d"    587,37 Hz

Tonlänge in Achtelnoten (Bit 6:4)
0  -  1/8
1  -  ¼
2  -  3/8
3  -  ½
4  -  5/8
5  -  3/4
6  -  7/8
7  -  1

Stoppbit (Bit 7)
Wird an jedem Liedende gesetzt.

Das Programm:
   ' Melodieklingel   -   Guido Scheidat
   ' Nachbau der Melodieklingel aus FA 4/86 mit modernen Bauteilen
   ' Übernahme aller Melodien aus der "Funkamateur"

   ' ATmega8
   ' intern 8 MHz
   ' Pin 4 (PD2 / INT0) - Klingeltaster gegen Masse
   ' Pin 15 (PB1 / OC1A) - Ausgang zum Lautsprecher


   $regfile = "m8def.dat"                                   'Die Anweisung bestimmt Controllertyp, hier AVR ATmega 8
   $crystal = 8000000                                       'Die Frequenz des verwendeten Quarzes
   $prog &HFF , &HF4 , &HD9 , &H00                          'generated. Take care that the chip supports all fuse bytes.


   Dim Viertel As Byte
   Dim I As Byte
   Dim Lang As Byte
   Dim Aktton As Byte
   Dim Liedcount As Integer
   Dim Enderr As Bit

   Const Speed = 4                                          'darf nicht 0 sein
   Liedcount = 0
   Lang = 1
   Enderr = 0
   Viertel = 1
   Set Portd.2                                              'Pull-up ein
   Config Portb.1 = Input                                   'SOUNDOFF

'*** Timer 1 einstellen
   'Vorteiler auf 1
   Set Tccr1b.cs10
   Reset Tccr1b.cs11
   Reset Tccr1b.cs12

   'Toggle OC1A on Compare Match
   Reset Tccr1a.com1a1
   Set Tccr1a.com1a0

   'Waveform Generation Mode --> Mode 4; CTC
   'WGM13 = 0
   'WGM12 = 1
   'WGM11 = 0
   'WGM10 = 0
   Reset Tccr1b.wgm13
   Set Tccr1b.wgm12
   Reset Tccr1a.wgm10
   Reset Tccr1a.wgm11

'*** Timer 0 einstellen
   Config Timer0 = Timer , Prescale = 1024                  'Konfiguriere Timer0
   On Timer0 Isr_timer0                                     'verzweige bei Timer0-Überlauf zu ISR_Timer0
   Timer0 = 256 - 243                                       'Timer0 Zeit für 1/8 Note / 4
   Enable Timer0                                            'schalte den Timer0 ein

'*** externen Interrupt 0 einstellen
   Config Int0 = Low Level                                  'configuriere Int0 Auf Low Level
   On Int0 Isr_int0                                         'springe zu ISR_Int0
   Enable Int0                                              'einschalten von Interrupt Int0

'*** Behandlung von Interrupts
   Enable Interrupts                                        'Einschalten der Interrupts


'*** Hauptprogramm
   Do
    '....Hauptprogramm     --  es gibt kein Hauptprogramm, da Alles über Interrupts gesteuert wird
   Loop
   End



'*** Interrupt-Routine für Timer 0
   Isr_timer0:                                              'ISR von Timer0
      Viertel = Viertel - 1
      If Viertel = 0 Then
         Viertel = Speed
         Lang = Lang - 1
         If Lang = 0 Then
            If Enderr = 1 Then
               'Timer / Counter0 Overflow Interrupt Disable
               Disable Timer0                               'schalte den Timer0 aus
               Config Portb.1 = Input                       'SOUNDOFF
               Enable Int0                                  'INT0 erlauben
            Else
               Aktton = Lookup(liedcount , Lied)
               If Aktton.7 = 1 Then Enderr = 1              'Liedende gefunden
               Lang = Aktton                                'Tonlänge ermitteln
               Shift Lang , Right , 4                       'Division durch 16
               Lang = Lang And &H07
               Lang = Lang + 1
               Aktton = Aktton And &H0F
               If Aktton = 0 Then
                  Config Portb.1 = Input                    'SOUNDOFF
               Else
                  Aktton = Aktton - 1
                  Reset Tccr1b.cs10                         'CTC aus
                  Shift Aktton , Left , 1                   'Multiplikation mit 2
                  Ocr1ah = Lookup(aktton , Tone)            'Tonhöhe
                  Aktton = Aktton + 1
                  Ocr1al = Lookup(aktton , Tone)            'Tonhöhe
                  Tcnt1l = 0                                'Zähler soll bei 0 beginnen
                  Tcnt1h = 0
                  Set Tccr1b.cs10                           'CTC ein
                  Config Portb.1 = Output                   'SOUNDON
               End If
               Liedcount = Liedcount + 1                    'nächste Note
               Aktton = Lookup(liedcount , Lied)
               If Aktton = &HFF Then                        'Test ob Liedtabelle zu Ende ist
                  Liedcount = 0
               End If
            End If
         End If
      End If
   Return

'*** Interrupt-Routine für externen Interrupt 0
   Isr_int0:                                                'ISR von INT0
      Disable Int0                                          'External Interrupt Request 0 Disable
      'Tastenentprellung und Sturmklingelsperre
      I = 0
      While I < 30                                          'Taste muss mindestens 30 ms gedrückt sein
         If Pind.2 = 0 Then
            Waitms 1                                        'Pause
            I = I + 1
         Else
            I = 0
         End If
      Wend

      I = 0
      While I < 30                                          'Taste muss mindestens 30 ms losgelassen sein
         If Pind.2 = 1 Then
            Waitms 1                                        'Pause
            I = I + 1
         Else
            I = 0
         End If
      Wend
      'Taste wurde erfolgreich gedrückt und losgelassen
      'Jetzt kann die nächste Melodie gespielt werden
      Viertel = 1
      Lang = 1
      Enderr = 0
      Enable Timer0
   Return

'***
   Tone:
   Data 59 , 184                                            ' c'     261,63 Hz Timerwerte für die enspr. Tonhoehen in Hz
   Data 56 , 94                                             ' cis'   277,18 Hz
   Data 53 , 52                                             ' d'     293,66 Hz
   Data 50 , 56                                             ' dis'   311,11 Hz
   Data 47 , 102                                            ' e'     329,63 Hz
   Data 44 , 189                                            ' f'     349,22 Hz
   Data 42 , 58                                             ' fis'   369,99 Hz
   Data 39 , 219                                            ' g'     392,00 Hz
   Data 37 , 158                                            ' gis'   415,33 Hz
   Data 35 , 130                                            ' a'     440,00 Hz
   Data 33 , 132                                            ' b'     466,15 Hz
   Data 31 , 162                                            ' h'     493,89 Hz
   Data 29 , 220                                            ' c''    523,22 Hz
   Data 28 , 46                                             ' cis''  554,40 Hz
   Data 26 , 153                                            ' d''    587,37 Hz

'***
   Lied:
   'Musi01:
   Data &H03 , &H00 , &H05 , &H00 , &H07 , &H00 , &H08 , &H00 , &H0A , &H00 , &H0C , &H00 , &H3A , &H08 , &H00 , &H05 , &H00 , &H3E , &H0A , &H00 , &H07 , &H00 , &HAF

   'Musi02:
   Data &H35 , &H00 , &H2A , &H00 , &H02 , &H05 , &H10 , &H05 , &H10 , &H85

   'Musi03:
   Data &H03 , &H00 , &H05 , &H00 , &H37 , &H3A , &H0E , &H20 , &H1C , &H10 , &H2C , &H00 , &HA7

   'Musi04:
   Data &H47 , &H00 , &H06 , &H00 , &H07 , &H00 , &H0F , &H00 , &H07 , &H00 , &H0E , &H00 , &H0C , &H20 , &H0C , &H20 , &H9C

   'Musi05:
   Data &H0A , &H00 , &H2F , &H10 , &H1E , &H10 , &H0C , &H0A , &H10 , &HA7

   'Musi06:
   Data &H53 , &H17 , &H3A , &H3F , &H3C , &H1F , &H1C , &HBA

   'Musi07:
   Data &H13 , &H20 , &H15 , &H20 , &H17 , &H00 , &H1A , &H1C , &H00 , &H1A , &H1F , &H20 , &H1C , &H20 , &H1A , &HB7

   'Musi08:
   Data &H17 , &H18 , &H3A , &H27 , &H00 , &H27 , &H00 , &H37 , &H95

   'Musi09:
   Data &H33 , &H08 , &H00 , &H0A , &H00 , &H3C , &H3F , &H3C , &H3A , &HB8

   'Musi10:
   Data &H48 , &H00 , &H0A , &H00 , &H08 , &H00 , &H06 , &H00 , &H25 , &H00 , &H21 , &H00 , &HB1

   'Musi11:
   Data &H45 , &H00 , &H03 , &H00 , &H02 , &H00 , &H05 , &H00 , &H0A , &H00 , &H0C , &H00 , &H5E , &H10 , &HBA

   'Musi12:
   Data &H0A , &H00 , &H08 , &H00 , &H0A , &H00 , &H08 , &H00 , &H07 , &H20 , &HB3

   'Musi13:
   Data &H03 , &H00 , &H03 , &H00 , &H25 , &H00 , &H23 , &H00 , &H28 , &H00 , &H47 , &H20 , &H03 , &H00 , &H03 , &H00 , &H25 , &H00 , &H23 , &H00 , &H2A , &H00 , &HC8

   'Musi14:
   Data &H46 , &H00 , &H14 , &H13 , &H14 , &H36 , &H3F , &H3B , &HA6

   'Musi15:
   Data &H15 , &H12 , &H50 , &H12 , &H23 , &H15 , &H0E , &H20 , &H0E , &H20 , &HBA

   'Musi16:
   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

   'Musi17:
   Data &H4A , &H00 , &H07 , &H10 , &H0A , &H10 , &H07 , &H10 , &H0A , &H10 , &H08 , &H10 , &HA8

   'Musi18:
   Data &H0C , &H00 , &H0B , &H00 , &H0C , &H20 , &H0C , &H00 , &H0B , &H00 , &H0C , &H20 , &H0C , &H00 , &H0B , &H00 , &H0C , &H20 , &H0A , &H20 , &H98

   'Musi19:
   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

   'Musi20:
   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

   'Musi21:
   Data &H21 , &H00 , &H46 , &H00 , &H08 , &H00 , &H0B , &H00 , &H0A , &H00 , &H08 , &H00 , &H2D , &H00 , &HAD

   'Musi22:
   Data &H28 , &H00 , &H4D , &H00 , &H08 , &H00 , &H25 , &H00 , &H26 , &H00 , &H48 , &H00 , &H0A , &H00 , &HA8

   'Musi23:
   Data &H23 , &H00 , &H4F , &H00 , &H0E , &H00 , &H2F , &H00 , &H2C , &H00 , &H4D , &H00 , &H0C , &H00 , &H2D , &H00 , &H27 , &H00 , &H0A , &H00 , &H98

   'Musi24:
   Data &H6A , &H00 , &H6A , &H00 , &H0A , &H00 , &H3C , &H30 , &H0A , &H00 , &H2C , &H00 , &H0A , &H00 , &H0C , &H00 , &H2A , &H00 , &H09 , &H00 , &HB8

   'Musi25:
   Data &H0C , &H20 , &H2A , &H20 , &H07 , &H00 , &H05 , &H00 , &H03 , &H00 , &H2C , &H00 , &H2B , &H00 , &HAC

   'Musi26:
   Data &H07 , &H00 , &H05 , &H00 , &H03 , &H00 , &H05 , &H00 , &H07 , &H00 , &H05 , &H00 , &H03 , &H00 , &H05 , &H00 , &H27 , &H00 , &H0C , &H20 , &H27 , &H00 , &H8C

   'Musi27:
   Data &H03 , &H00 , &H05 , &H00 , &H27 , &H00 , &H27 , &H00 , &H08 , &H00 , &H05 , &H00 , &H1C , &H0A , &H00 , &HAA

   'Musi28:
   Data &H23 , &H00 , &H03 , &H00 , &H07 , &H00 , &H2A , &H00 , &H2A , &H00 , &H2A , &H00 , &H0C , &H00 , &H0A , &H00 , &H27 , &H00 , &HA3

   'Musi29:
   Data &H3F , &H3E , &H3C , &H3A , &H3C , &H18 , &H17 , &H25 , &H00 , &HA3

   'Endekennzeichen
   Data &HFF

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

Autor: iCarly (Gast)
Datum:

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

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Sachich Nich (dude) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte Code als Code posten :P

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Bitte Code als Code posten :P

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

...

Autor: Albert D. (albert32)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

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

mfg

albert

Autor: zreik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte kannst du den Program als C code auch hier schreiben .

danke
MFG
Zreik

Autor: Uwe S. (de0508)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mirko B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mirko B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Korrektur: Attiny 45

Autor: Uwe S. (de0508)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 !

.

Autor: Bobby B. (mdabob)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Ralf G. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Evtl. ist das Vorteiler-Fusebit noch gesetzt ?

Autor: Bobby B. (mdabob)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf G. (Gast)
Datum:

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

Autor: Guido Scheidat (flintstone)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, liebe Elektroniker,

heute will ich mal die C-Version schicken.

Danke für die lebhafte Diskusion!

Gruß
Guido

Autor: Manfred S. (Firma: Manfred) (xfred343)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Guido Scheidat (flintstone)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Manfred S. (Firma: Manfred) (xfred343)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dieter Aschmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Guido Scheidat (flintstone)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Buna-Pelzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dieter Aschmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dieter Aschmann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Tommy Tomatronic (thomas_k86)
Datum:
Angehängte Dateien:

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

Autor: Dieter Aschmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Tommy Tomatronic (thomas_k86)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

 :)

Autor: Tommy Tomatronic (thomas_k86)
Datum:
Angehängte Dateien:

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

Autor: Ulrich Staake (reise)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibts da auch noch'n stromlaufplan zur schaltung mit 2313...

: Bearbeitet durch User
Autor: Tommy Tomatronic (thomas_k86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab der Platine einen ATmega8 eingepflantzt.

Autor: Ulrich Staake (reise)
Datum:

Bewertung
0 lesenswert
nicht 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!?!

Autor: Tommy Tomatronic (thomas_k86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zeig doch mal

Autor: Ulrich Staake (reise)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht 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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.