Refresh loader

Category : Telefon

Home > Archive for Telefon

Die DTMF -Telefonzelle

„Im vorherigen Projekt ging es um DTMF-Töne. Um diese zu erzeugen, hatte ich ein Programm und eine Schaltung – das DTMF-Modul – entwickelt. Das Programm wurde auf einen AVR-Chip geladen. Um zu testen, ob das Programm auch funktioniert, habe ich die DTMF-Telefonzelle erstellt. ;-)“

„Das war mal ein schnelles Projekt. Als Erstes hatte ich die Schaltung – also das DTMF-Modul – noch einmal gebaut. Aus dem Radio- und Telefonmuseum konnte ich zudem noch eine Wählscheibe ergattern. Einen kleinen Lautsprecher hatte ich auch noch in meiner Bastelkiste.“

„Auf dem ersten Bild sind die ATtiny2313 zu sehen, auf die ich das Programm geladen habe. Auf dem anderen Bild sind die Wählscheibe und das selbst gebaute DTMF-Modul zu erkennen – ach ja, der Lautsprecher ist auch mit drauf. Um zu testen, ob die Programmierung der ICs geklappt hat, reicht das ja auch schon. Es sieht nur noch nicht so toll aus. Also, wo baue ich die Schaltung nun ein, sodass sie auch gut zu bedienen ist?“

„Da ist mir eingefallen, dass es diese kleinen Holzkisten sehr günstig zu kaufen gibt – meist unter 5 Euro. Die Kiste, an die ich gedacht hatte, hat die Form einer kleinen Truhe. Aber hochkant gestellt, mit der Wählscheibe oben drauf und etwas bearbeitet … hm. Na, ihr wisst ja, was geschehen ist. Das Titelbild hat es ja schon verraten!“ 😉

„Ja, ein bisschen gehandwerkelt, hier und da ein wenig gebohrt, gesägt, geschraubt – und schon war die Schaltung im Kasten untergebracht. Nun dachte ich mir: Wenn es jetzt etwas wie eine Telefonzelle aussieht, würde das doch super zu diesem Projekt passen. Also habe ich ein Bild von einer Telefonzelle erstellt, das in etwa so aussieht, wie die Telefonzellen damals ausgesehen hatten. Damit es etwas stabil ist, habe ich es einlaminiert. So konnte ich es sogar mit kleinen Schrauben am Kasten befestigen.“

„Und taddaa – fertig! Ich finde es absolut cool und es macht auch Spaß. Ob man damit jetzt auch von unterwegs seinen Anrufbeantworter von damals abhören kann? Ich kann mich noch daran erinnern, dass es einige Anrufbeantworter mit Fernabfrage gegeben hat, und das wurde mit einem kleinen DTMF-Geber gemacht.“

„Aber dieses Exemplar ist für das RTM gedacht, um zu zeigen, wie sich die DTMF-Töne anhören und um zu kontrollieren, ob die ICs richtig programmiert wurden. Das ist dann auch für eine Bastel-AG toll, denn die Teilnehmer wissen dann auch, was beim Einbau ins alte Telefon eigentlich passiert. Wer sich selbst dafür interessiert, der kann hier auf der Seite beim vorherigen Projekt schauen oder einfach mal beim Radio- und Telefonmuseum in Rheda-Wiedenbrück vorbeischauen. Vielleicht sieht man sich dort ja auf einen Plausch. So, und wie gewohnt hier noch ein kleines Video zu diesem Beitrag.“


Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube.

Vom Impuls zu DTMF

In diesem Projekt hier soll ein Wählscheibentelefon mit DTMF (dual-tone multi-frequency ‚Doppelton-Mehrfrequenz) erweitert werden. Es ist später als AG-Projekt für das RTM Radio und Telefon-Museum in Rheda-Wiedenbrück gedacht.

Wie ist es dazu gekommen? Na inzwischen ist ja bekannt dass ich das Radio und Telefon-Museum, bei entsprechendem Zeitfenster 😉 unterstütze. Hier hauptsächlich im technischen Bereich. Nun hat mich Dirk und Wilfried gefragt ob ich einen Übersetzer eines Wählscheibentelefons mit Impulsverfahren zu einem DTMF-Verfahren umbauen kann. Die Idee ist nicht neu und im Internet gibt es auch schon diverse Seiten dazu. Dirk hat mir die Internetseite von Klaus Taeuble (https://taeubl.de/IWV-MFV/) gezeigt. Wer sich in die Materie einarbeiten möchte, die Seite ist ein guter Anlaufpunkt. Ich beschreibe hier einen etwas anderen Weg und auch die Schritte, wie ich an die Sache rangegangen bin.

Also was soll geschehen. Es muss eine Schaltung gebaut werden und ein Programm soll später die Steuerung übernehmen. Dazu benötige ich unter anderem, Schaltplan, Platine, Bauteile, der Chip ATtiny (AVR), ein Programm muss programmiert werden, welches dann auch auf dem ATtiny gespeichert werden muss usw. Also wer mit programmieren nichts an der Mütze hat und für diejenigen welche Worte wie Programmer, AVR-Mikrocontroller, ATmega, ATtiny, EEPROM nichts anfangen können, dem würde ich von diesem Projekt abraten. Denn die technische Seite ist nachbaubar. Und auch hier muss man sich schon auskennen um zu wissen wie sich die Bauteile verhalten. Also deren Bauteileigenschaften z.B. Bipolar oder Polar. Und beim nachbauen sollte man die Bauteile auch testen (Funktion vorhanden? ) und prüfen (ist es das richtige Bauteil, Transistor PNP oder NPN ?) können. Die andere Seite ist das programmieren. Quelltexte und Code verstehen, um das Programm anzupassen. Denn das ist zu 95% fast immer nötig. Zum Glück ist das Wort Nerd inzwischen nicht mehr als Nachteil anzusehen 🙂

Vom RTM wurde mir einiges übergeben. Eine Schachtel mit einigen ATtiny ICs verschiedene Versionen ATtiny 2313, ATtiny 2313A und ATtiny 2313V. Die ATtiny’s sind alle in ihrer Grundbeschaltung gleich, was zu erwähnen ist, die V-Version braucht eine geringere Spannung von 1.8 Volt. Diese hätte ich später in meinem Projekt nutzen sollen ;-). Dann waren noch ein paar Adapter zur Aufnahme des Chips mit dabei. Und von Wilfried habe ich noch eine Arduino Kiste mit diversen Bauteilen bekommen, vielen Dank noch mal.

Nun, als erstes habe ich mich auch an die Internet-Seite von Klaus gehalten. Schaltplan nachgebaut (Bitte auf der Seite https://taeubl.de/IWV-MFV/ schauen.) Was auch soweit kein Problem ist. Sehr gut und auch für Anfänger geeignet. Da ich es mir einfach machen wollte habe ich auch das Programm von Klaus seiner Seite genommen, Danke schonmal für das Online stellen. Klaus hat eine .bas Datei und eine .hex Datei zu Verfügung gestellt. Falls man noch nicht weggeklickt hat, .bas sagt mir das es eine Bascom Datei ist und die .hex ist die Datei welche dann vom PC Programm (hier gibt es viele, ich nutze Microchip-Studio hauptsächlich) über den Programmer auf das IC geflasht wird.

Hier ist der Programmer zu sehen mit dem ich das Programm auf dem ATtiny geflasht habe. Zusätzlich ist noch eine separate Spannungsversorgung angeschlossen. Den Chip habe ich, wie hier zu sehen, auf einem Steckboard positioniert. Immer wenn ich Chip oder IC schreibe meine ich den ATtiny.

Also habe ich einen ATtiny2313 genommen, und da war schon die erste Hürde. Mit bei den Sachen war ein DIP-Board, welches schon fertig aufgelötet ist, mit entsprechenden Anschlüssen, um den IC zu programmieren. Aber er wurde nicht erkannt. Das ist komisch, ist aber so.

Da ich nicht das erste Mal AVRs programmiert habe, wusste ich, es kann nicht am Programmer liegen. Dann habe ich das DIP-Board durchgeprüft, ob alle nötigen Verbindungen zum Beschreiben auch passen.

Also die vier wichtigen sind: dW (Reset Pin 1), SCK (Clock Pin 19), MISO (Data Out Pin 18) und MOSI (Data In Pin 17). Zu den vier wichtigen nicht vergessen: GND (Ground bzw. Minus, Pin 10) und VCC (+1,8 V bis +5,5 V je nach Typ, an Pin 20).

Diese Verbindungen waren soweit ok. Dann habe ich noch zwei weitere Programmer genommen, aber die ICs haben sich nicht ansprechen lassen???

Also, was konnte hier nun passiert sein? Es gibt so ganz billige China-Ware (meist Clones), da funktioniert die interne Taktung nicht. Was auch sein kann: die ICs wurden schon einmal umgetaktet und sind damit nicht mehr im Neuzustand.

Wenn die Taktung nicht stimmt, dann passt auch die Schreibgeschwindigkeit nicht und der IC bleibt im Schlafmodus. Was auch sein kann: der Reset-Pin 1 ist abgeschaltet. Dann hilft quasi nur noch ein High-Voltage-Programmer. Dieser legt mit einer hohen Spannung den Reset-Pin an, und der IC wird dann quasi zur Beschreibung gezwungen.

Solch einen Programmer habe ich aber nicht. Also blieb mir nur die Hoffnung, den IC mit einer fremden Taktung zu stimulieren 😉

Und tatsächlich: der ATtiny ist „wach“ geworden. Ich habe aber nicht alle ATtinys getestet. Einige gingen überhaupt nicht, andere schon.

Da ich mir nicht ganz sicher war, was mit den ICs vom RTM ist, habe ich mir zwei neue bestellt. Damit hat alles auf Anhieb geklappt.

Hier die zwei neuen ATtiny2313. Im Nachhinein hätte ich wegen dem niedrigen Strom aus dem Telefon den V-Type nehmen sollen, der arbeitet schon ab +1,8 Volt. Sollte sich jemand mit dem Projekt wirklich auseinandersetzen, dann empfehle ich den ATtiny2313V.

Das Programm von Klaus auf den Chip: Hier muss man zwingend beachten, dass man den entsprechenden Quarz mit 4,9152 MHz nutzt, welcher auch von Klaus verwendet wird. Klaus schreibt, er habe diesen Quarz genommen, da er gut beschaffbar ist.

Das ist zwar nicht der gängigste Quarz – zumindest bei mir nicht –, aber die DTMF-Tonfrequenzen lassen sich mit der Frequenz 4,9152 MHz nahezu sauber erzeugen. Ich gehe davon aus, dass das auch ein Grund für diesen Quarz ist.

Also habe ich einen 4-MHz-Quarz genommen und das Programm entsprechend angepasst. Beim Programmieren muss man dann auch darauf achten, dass der IC auf externe Taktung umgestellt wird. Im Auslieferungszustand ist die interne Taktung aktiv und liegt bei 1 MHz.

Hier ist die nachgebaute Schaltung von Klaus’ Seite zu sehen, mit dem später nachbestellten Quarz 4,9152 MHz.

Was sofort zu sehen ist, sind die vier Dioden, welche zusammen in der Beschaltung einem Brückengleichrichter entsprechen. Kurz gesagt: Wechselspannung rein und Gleichspannung raus.

Dann die Z-Diode in Kombination mit einem Widerstand, um auf 5 Volt zu gelangen (die Z-Diode ist durch einen Transistor verdeckt).

Der Elko, welcher die Spannungsversorgung aufrechterhält und auch glättet.

Der erste Transistor hinter dem Elko, welcher die ankommende Spannung an den Elko abgibt.

Die DIP-Fassung für den ATtiny – dieser ist hier noch nicht aufgesteckt.

Dann vom IC der DTMF-Ausgang gegen Gleichspannung durch den Kondensator (bipolar) abgekoppelt, weiter über einen Vorwiderstand zur Basis der kleinen Verstärkerschaltung (Darlington-Schaltung), welche mit dem ersten Transistor verbunden ist.

Über die Darlington-Schaltung wird das Signal wieder in die Telefonverbindung zurückgeführt.

Dann noch die „Be-Quarzung“, damit der ATtiny auch „wach“ wird.

Die Schaltung und das Programm gibt es bei Klaus auf der Seite 🙂

Ich habe mir gedacht: Wenn ich so etwas baue, ist es doch gut, wenn man die Zwischenschritte einzeln anhören oder testen kann – also Schritt für Schritt. Das Ganze quasi in Module zerlegt.

Ich bin auch etwas anders an die Sache herangegangen:

Schritt 1: Ein Programm schreiben, welches die DTMF-Töne ausgibt.
Schritt 2: Ein kleines Modul erstellen mit einem Ausgang, der ausreichend stark ist, um einen kleinen Lautsprecher zu betreiben.
Schritt 3: Ein Modul zur Spannungsversorgung aus der Telefonleitung – quasi das Netzteil.
Schritt 4: Eine kleine Spannungsregelung (Lautstärkeregler), um das Signal in die Telefonleitung einzubringen.
Schritt 5: Einbau ins Telefon 🙂

Schritt 1, das Programm:
Der Ablauf ist recht simpel. Der ATtiny wartet darauf, dass sich die Wählscheibe aufzieht. Dies misst er über PD3, das ist am IC-Pin 7.

Wird erkannt, dass sich die Wählscheibe nicht mehr in Grundstellung befindet, so aktiviert er die Impulsmessung an PD2, das ist am IC-Pin 6.

Er zählt nun die Impulse der Wählscheibe. Diese berechnet der ATtiny, um auf die richtige DTMF-Frequenz zu kommen. Diese wird dann über PB3, das ist Pin 15, ausgegeben.

Wenn wir schon die ganze Zeit von der Belegung des ATtinys sprechen, ist es auch sinnvoll, mal ein Pinout hier zu zeigen.

Ich habe im Programm zwar den richtigen Pin 15 für den Lautsprecherausgang programmiert, aber dummerweise als Info im Programm Pin 14 geschrieben.

Was war das Resultat? Man hört nichts 🙁

Erst beim Vergleich ist es mir aufgefallen. 40 Minuten für Fehlersuche sind draufgegangen, denn wo sucht der Programmierer zuerst? Klar, im Code!

Wer sich ein bisschen mit AVR-Mikrocontrollern auseinandersetzen möchte, dem kann ich dieses Buch empfehlen. Es erklärt gut, wie so ein AVR funktioniert und wie die Speicher im Chip beschrieben werden – also wie der Programmcode auf den Mikrocontroller gelangt.

Dieses Buch bezieht sich vor allem auf die ATmega-Mikrocontroller, aber das lässt sich auch gut auf die ATtiny-Familie übertragen.

Ich habe dieses Buch schon lange im Besitz, und es ist heute sehr wahrscheinlich nicht mehr auf dem neuesten Stand. Es sollte aber gebraucht günstig zu bekommen sein. Die ISBN ist 3-89576-063-3.

Und welch ein Wunder: Die Mikrocontroller lassen sich immer noch genauso beschreiben.

Gegenwärtig würde ich aber eher zu Arduino und Co. wechseln. Für Anfänger und auch Fortgeschrittene ersparen diese viel Arbeit und haben bereits einen eigenen Bootloader. Mit anderen Worten: Ein Arduino oder Banana Pi oder Raspberry Pi usw. werden einfach über ein USB-Kabel angeschlossen und können dann über die entsprechende IDE programmiert werden.

Die Teile kosten heute auch nicht mehr die Welt und lassen sich ebenfalls nutzen, um dieses Projekt hier zu realisieren. Aber darum soll es hier nicht gehen.

Da ich damals mit AVR-Programmierung einiges gemacht hatte und in diesem Buch die Bequarzung mit 4 MHz vorgeschlagen wurde, ist das der Grund, warum ich noch ein paar 4-MHz-Quarze vorrätig hatte, wie oben schon erwähnt.

Und ein Zufall: Die 22 pF waren auch vorhanden 🙂

Ab hier ist es dann interessant für diejenigen welche immer noch am Ball geblieben sind und sich vorstellen können selbst diese Projekt umzusetzen um ein eigenes altes Telefon zu nutzen. Den Spass mit Coden und Programmieren könnt ihr umgehen denn ich hänge die Datein hier unten an. So müßt ihr nur noch das Programm auf den ATtiny bekommen, Fragen wie das geht vorzugsweise an Google und Co. Ich habe leider nicht immer die Zeit und darum kann es sein das Antworten spät kommen. Ich werde hier auch alternative Beispiele nennen. Weil mit DTMF kann man ja noch bissel mehr machen.

Schritt 2, das Modul zum Anschluss eines Lautsprechers:
Also, das Programm ist nun auf den ATtiny2313 aufgespielt. Um zu testen, ob es arbeitet und alle Einstellungen richtig sind (Töne, Quarz, Berechnungen, Pinbelegungen, Timer), ist nun das erste Modul dran.

Der Aufbau ist sehr einfach, aber man hat sofort die Gewissheit, dass alles wie gewünscht funktioniert. Und wenn nicht, ist es auch kein Problem, denn viel zum Überprüfen ist ja gar nicht vorhanden.

Der Lautsprecher wird mit der einen Seite (Minus) an DTMF OUT angeschlossen, und die andere Seite kommt an VCC 5 V (Plus) dran. Das reicht für einen kleinen Lautsprecher.

Die Schaltung ist einfach zu verstehen: An Pin 4 und 5 des ATtiny kommt der Quarz 4,9152 MHz mit jeweils einem Beinchen. An beiden Beinchen kommen auch die beiden Keramikkondensatoren mit 22 pF. Warum das so sein muss, hatte ich ja schon erklärt.

Von der Wählscheibe kommt ein Kontakt (Aufziekontakt) an Pin 7 und ein Kontakt vom Pulsgeber an Pin 6. Die anderen beiden Kontakte der Wählscheibe gehen auf GND (Minus).

Keine Panik auf der Titanic, ich erkläre die Wählscheibe noch 😉

Pin 10 des ATtiny kommt auf GND (Minus), Pin 20 kommt über einen Schalter an +5 V (der Schalter ist nicht unwichtig! Man kann das Ganze dadurch ein- und ausschalten ;-)).

Ein kleiner Keramikkondensator mit 100 nF kommt zwischen VCC +5 V und GND (Minus). Ich sehe gerade, dass der Kondensator vor dem Schalter liegt. Das ist erst einmal nicht weiter schlimm, er sollte aber hinter dem Schalter sein. Für den Betrieb macht das zunächst keinen Unterschied.

Das Signal, welches aus Pin 15 kommt, ist zu schwach, um direkt einen Lautsprecher anzuschließen. Ein kleiner Verstärker muss her – das ist der Transistor, welcher die DTMF-Frequenz über einen 10 kΩ Widerstand vom ATtiny bekommt. Das passiert über Pin 15.

Warum macht er das? Weil er es soll 😉

Mit dem Emitter des Transistors geht es dann auf GND (Minus), und der Kollektor des Transistors ist unser Ausgang zum Lautsprecher. Die andere Seite des Lautsprechers kommt auf +5 V.

Nun erfolgt der Test. Wenn alles richtig angeschlossen ist, der ATtiny richtig programmiert worden ist, eine Spannung von 5 Volt anliegt und auch die Wählscheibe richtig angeschlossen ist, dann sollte bei Betätigung der Wählscheibe der entsprechende Ton aus dem Lautsprecher zu hören sein.

Wenn nichts zu hören ist, dann nicht gleich aufgeben. Kontrolliert alle Verbindungen zunächst augenscheinlich. Prüft mit einem Multimeter (das billigste reicht völlig aus), ob alle Verbindungen zu GND in Ordnung sind und ob auch die Grundspannung von +5 V anliegt.

Dann überprüft auch, ob es keine Verwechslung bei den Anschlüssen der Wählscheibe gibt. Und deshalb gehe ich hier auch noch einmal etwas näher auf die Wählscheibe ein.

Hier ist die Wählscheibe, welche an das ATtiny-Modul angeschlossen ist, um die Funktion zu testen. Die Wählscheibe hat vier Kabel: Weiß, Braun, Grün und Gelb.

Das weiße und das braune Kabel sind der „NSA“. Wenn die Wählscheibe betätigt wird, schließen diese kurz. Ein Kabel davon, z. B. das braune, kommt an GND (Minus), das andere weiße Kabel kommt an Pin 7 des ATtiny.

Die anderen beiden Kabel, also das grüne und das gelbe Kabel, sind der „NSI“-Impulsgeber. Hier kommt ein Kabel, z. B. das grüne, an GND (Minus), das andere gelbe Kabel kommt an Pin 6.

Wenn hier alles richtig ist und nix zu hören ist dann ist der ATtiny nicht richtig programmiert und man muss prüfen ob der Chip arbeitet bzw das Programm richtig installiert wurde, auch ob alle angesprochenen Pin’s richtig im Programm stehen.

Schritt 3, ein Modul zur Spannungsversorgung aus dem Telefon:
Gut, wenn bis hierhin alles geklappt hat, dann machen wir mal weiter.

Da wir eine Wechselspannung am analogen Telefonanschluss haben, muss diese zunächst gleichgerichtet und auf eine begrenzte Spannung von +5 V reduziert werden.

Hinzu kommt ein kleiner Speicher, und da wir mit diesem Modul ohnehin an der Telefonleitung hängen, erfolgt hier auch die Einspeisung des DTMF-Signals vom ATtiny-Modul.

Auch diese Schaltung ist so simpel wie möglich gehalten. Ein Test mit einem Netzteil ist ebenfalls möglich, um zu prüfen, ob das Spannungsmodul funktioniert.

Also der Start beginnt am NS-Eingang mit 3 und 4. Das entspricht den Anschlüssen vom Telefon, wo ja vorher die Wählscheibe dran war. Das zeige ich aber noch.

Von 3 und 4 geht es zum Brückengleichrichter (möglichst sparsame Dioden verwenden). An den Kontakten Plus (+) und Minus (–) des Brückengleichrichters haben wir schon einmal DC-Gleichspannung.

Minus geht auf GND (Minus). Vom Plus geht es weiter auf einen 470-Ohm-Widerstand, dann folgt eine Z-Diode mit 5,6 V. Die Z-Diode wird in Sperrrichtung betrieben. Also: der Ring geht auf Plus und die andere Seite der Z-Diode geht auf GND (Minus). Von hier an sollten 5 Volt auf der Plus-Seite anliegen.

Dann geht es auf der Plus-Seite (+5 V) weiter auf eine Diode (Ring in Richtung Elko) und von der Diode weiter zum Elko (Elektrolytkondensator). Damit wird verhindert, dass Spannung wieder zurückläuft.

Dann kommt der Elko mit 2000 µF, dessen Plus an +5 V und Minus an GND (Minus) liegt.

Zum Schluss kommt ein kleiner 1:1, möglichst verbrauchsarmer Übertrager (kleiner Trafo). Die eine Seite des Übertragers kommt an Plus (+5 V) und GND (Minus). Die andere Seite des Übertragers: ein Anschluss kommt auf +5 V, und die andere Seite geht zum ATtiny-Modul, genauer gesagt zum DTMF-Ausgang (Kollektor des Transistors).

Hier beachten: den Übertrager genau so anschließen, sonst funktioniert es nicht 😉

Hier sind beide Module zu den Schaltbild zu sehen.

Schritt 4, ein kleiner Spannungsregler / Lautstärkeregler:
Also, wenn das DTMF-Signal tatsächlich immer noch zu laut ist, könnt ihr mit einem 10-kΩ-Poti die Lautstärke regeln.

Ein einfaches Poti hat drei Kontakte: Ein Außenkontakt kommt an den DTMF-Ausgang des ATtiny-Moduls, und der andere äußere Kontakt geht auf GND (Minus). Der mittlere Kontakt geht zum Spannungsmodul an den DTMF-Eingang.

Da die Strom- und Spannungsversorgung ohnehin am unteren Bereich angelangt ist, wird es nicht nötig sein, einen Spannungsteiler einzubauen. Wenn wir jedoch keine externe Spannungsversorgung anlegen und mit dem ATtiny2313 arbeiten, ist ein kleiner Reset-Schalter angebracht. Denn wenn sich der IC aufhängt, kann man ihn darüber schnell resetten (der Schalter im ATtiny-Modul-Plan ganz oben).

Schritt 5, der Einbau ins Telefon:
Also der Einbau ins Telefon ist jetzt kein Hexenwerk mehr. Die Module sollten locker Platz in den alten Kisten haben.

Wir benötigen nur die beiden Anschlüsse vom Spannungsmodul 3 und 4, und die verbinden wir im Telefon dort, wo zuvor die Wählscheibe angeschlossen war.

Dann sind im Telefon noch die zwei Pins mit der Bezeichnung 1 und 2 übrig. Diese werden einfach gebrückt.

Im Bild oben zu sehen: 1 und 2 sind gebrückt, und an 3 und 4 kommt das Spannungsmodul dran. Wie herum ist dabei völlig egal, da es sich um Wechselspannung handelt. Beim Stecker des Staubsaugers ist es ja auch egal, wie herum er eingesteckt wird. Bei Gleichspannung würde euer Staubsauger alles ausspucken oder saugen 😉

Vergesst nicht den Resetschalter, oder auch „On/Off-Knopf“ genannt. Es macht keinen Spaß, das Telefon jedes Mal auseinanderzuschrauben.

Ich würde einen externen Akku empfehlen, der euer System mit genügend „Wumms“ versorgt.

Wenn alles drin ist: Deckel drauf und fertig.

Es kommt noch ein Video zu diesem Beitrag. Darin erkläre ich alles noch einmal und führe es auch vor. Außerdem folgen noch die Dateien des Programms, welches ich geschrieben habe.

Jetzt bitte dreimal auf die linke Schulter klopfen: Dass du bis hierhin durchgehalten hast, hast du dir auch verdient 😉

Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube.

An hier nurnoch das Programm. Viell Spass beim Bastel. Ach ja ich übernehme keinerlei Haftung, Ihr seit selbst Verantwortlich!!! Das Programm kann man nach belieben umändern. Wenn es wo anders eingestellt wird, dann nur mit dem Hinweiß wo es her ist.

// WWW.NRWFUNK.DE
#define F_CPU 4915200UL  // Auf den neuen 4,9152 MHz Quarz angepasst
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>

// Pins definieren
#define NS_PIN      PD2 // Gelb/Grün (Impulse)
#define NSA_PIN     PD3 // Braun/Weiß (Aktivität)
#define SPEAKER_PIN PB3 // OC1A (Lautsprecher-Ausgang, Pin 15 ist Angepasst.)

// DTMF Frequenzen (Phasenschritte für DDS bei genau 19.2kHz Sampling)
// Index entspricht direkt der gewählten Ziffer (0-9)
// Formel: (Frequenz * 65536) / 19200
const uint16_t freq_low[] PROGMEM  = {3212, 2379, 2379, 2379, 2628, 2628, 2628, 2908, 2908, 2908}; // 0=941Hz, 1-3=697Hz, 4-6=770Hz, 7-9=852Hz
const uint16_t freq_high[] PROGMEM = {4560, 4126, 4560, 5041, 4126, 4560, 5041, 4126, 4560, 5041}; // 0=1336Hz, 1/4/7=1209Hz, 2/5/8=1336Hz, 3/6/9=1477Hz

// Sinustabelle (128 Werte, um RAM zu sparen direkt im Flash/PROGMEM)
const uint8_t sine_table[] PROGMEM = {
	128,134,140,146,152,158,164,170,176,181,187,192,198,203,208,212,
	217,221,225,229,233,236,239,242,244,247,249,250,252,253,254,254,
	255,254,254,253,252,250,249,247,244,242,239,236,233,229,225,221,
	217,212,208,203,198,192,187,181,176,170,164,158,152,146,140,134,
	128,122,116,110,104, 98, 92, 86, 80, 75, 69, 64, 58, 53, 48, 44,
	39, 35, 31, 27, 23, 20, 17, 14, 12,  9,  7,  6,  4,  3,  2,  2,
	1,  2,  2,  3,  4,  6,  7,  9, 12, 14, 17, 20, 23, 27, 31, 35,
	39, 44, 48, 53, 58, 64, 69, 75, 80, 86, 92, 98,104,110,116,122
};

volatile uint16_t phase_acc_low, phase_step_low;
volatile uint16_t phase_acc_high, phase_step_high;
volatile uint8_t tone_on = 0;

// Interrupt für Sound-Erzeugung (Timer 1 Overflow läuft mit exakt 19.200 Hz)
ISR(TIMER1_OVF_vect) {
	if (tone_on) {
		phase_acc_low += phase_step_low;
		phase_acc_high += phase_step_high;
		
		// Werte aus der Flash-Tabelle lesen und Index umwandeln (Shift um 9)
		uint8_t sample_low = pgm_read_byte(&(sine_table[(phase_acc_low >> 9)]));
		uint8_t sample_high = pgm_read_byte(&(sine_table[(phase_acc_high >> 9)]));
		
		OCR1A = (sample_low >> 1) + (sample_high >> 1); // Mixen ohne Übersteuerung
		} else {
		OCR1A = 128; // Stille (Mitte des PWM-Bereichs)
	}
}

void play_dtmf(uint8_t digit) {
	// Frequenzen aus dem Flash laden
	phase_step_low = pgm_read_word(&(freq_low[digit]));
	phase_step_high = pgm_read_word(&(freq_high[digit]));
	
	tone_on = 1;
	_delay_ms(200); // Tondauer für die Fritz!Box (200 Millisekunden)
	tone_on = 0;
}

int main(void) {
	// I/O Setup
	DDRD &= ~((1 << NS_PIN) | (1 << NSA_PIN)); // Eingänge
	PORTD |= (1 << NS_PIN) | (1 << NSA_PIN);  // Interne Pull-ups aktivieren
	DDRB |= (1 << SPEAKER_PIN);                // PWM Ausgang auf Pin 14
	
	// Timer 1 Setup (8-Bit Fast PWM, Mode 5)
	// Bei Takt 4.9152 MHz / 256 ergibt das eine exakte Samplingfrequenz von 19.200 Hz
	TCCR1A = (1 << COM1A1) | (1 << WGM10);
	TCCR1B = (1 << WGM12) | (1 << CS10);       // Kein Prescaler
	TIMSK |= (1 << TOIE1);                     // Overflow-Interrupt einschalten
	
	sei(); // Interrupts global aktivieren
	
	uint8_t pulse_count = 0;

	while (1) {
		// Warten bis Wählscheibe bewegt wird (nSA schließt gegen Masse -> LOW)
		if (!(PIND & (1 << NSA_PIN))) {
			pulse_count = 0;
			
			// Solange die Wählscheibe läuft (nSA bleibt im aktiven Zustand)
			while (!(PIND & (1 << NSA_PIN))) {
				// Impuls erkannt (nS öffnet -> Pin geht auf HIGH durch den internen Pull-up)
				if (PIND & (1 << NS_PIN)) {
					pulse_count++;
					while (PIND & (1 << NS_PIN)); // Warten, bis der Kontakt wieder schließt (LOW)
					_delay_ms(25); // Erhöhte Entprellzeit für alte mechanische Kontakte
				}
			}
			
			// Gültige Ziffer auswerten
			if (pulse_count > 0) {
				if (pulse_count == 10) pulse_count = 0;
				play_dtmf(pulse_count);
			}
		}
	}
}

Infotelefon

Hier das Projekt, Infotelefon. Wer ein altes Telefon, also genau genommen Wählscheibentelefon zu Hause hat, für den könnte dieses Projekt interesant sein. Als Infotelefon oder Begrüßungstelefon was auch immer. Da ich schon einige Projekte mit Telefonen hinter mir habe, kam mir die Idee eine Schaltung zu bauen wo man ein altes Wählscheibentelefon anschließen kann. Welche das Telefon klingeln lässt sobald sich eine Person dem Telefon nähert. Und wenn die Person weiter geht soll das Wählscheibentelefon wieder stumm sein. Nimmt man aber den Hörer ab so soll eine Audiodatei zu hören sein. Das kann natürlich alles mögliche sein. Da ich das Projekt für das Radio und Telefonmuseum in Rheda- Wiedenbrück entworfen habe, habe ich als Audiodatei eine kurze Geschichte zum Telefon aufgespielt.

Realisieren werde ich das ganze mit einen Arduino. Damit habe ich schon einige Projekte realisiert und ein Arduino lässt im nachhinein immer noch einige Erweiterungen zu. Hinzu kommt ein DFPlayer welcher die Audiodatein von einer SD lesen kann. Der wird über den Arduino gesteuert und liefert dann die Audioausgabe ans Telefon. Damit das Telefon klingeln kann benötigt man ca. 60 bis 90 Volt Klingelspannung (Impuls- oder Wechselspannung keine Gleichspannung!) Diese erreicht man zum Beispiel mit einen Trafo welcher Impulse von einem Mosfet Modul bekommt und diese kleine Impulsspannung hoch transformiert. Das Mosfet Modul wird auch durch den Arduino gesteuert. Um zwischen Klingelspannung und Audiospannung hin und her zuschalten wird ein 5 Volt Relais eingesetzt. Rate mal wer dieses Relais steuert? Na klar der Arduino. Nun fehlt noch eine kleine Schaltung zur Erkennung ob der Hörer abgehoben wird oder aufgelegt. Das habe ich mit einen Optokoppler geschaltet. Dieser trennt das nochmal galvanisch vom Arduino. Und man kann auch für spätere Erweiterungen die Wählscheibe auswerten. Ich hab es ja gesagt mit so einen Arduino geht einiges. Da kommen mir schon die nächsten Ideen;-)

Damit auch Aussenstehende was hören können wurde noch ein Lautsprecher mit integriert. Ich habe da mal eine Grafik zusammengestellt mit den Verbindungen. Soll auch nur für die Verständlichkeit sein. Darum habe ich hier auch kein Schaltplan für den studierten Techniker eingefügt. Es sollte ja jeder nachbauen können. Normalerweise stelle ich nur die Projekte von mir ein aber viele haben halt noch Spass daran ein altes Telefon als Begrüßungstelefon, Hobbyraum oder just for fun zu nutzen.

Hier oben ist zu sehen wie alles miteinander verbunden ist. Der PC817C ist ein standart Optokoppler. Am Relais kann man gut erkennen das die Klingelspannung vom Trafo im NC (Normal Clost) nicht mit dem Arduino in Kontakt kommen kann. Das kann den Arduino schnell mal zerstören! Da also bitte drauf achten. Den Quellcode (Arduino Sketch) kommt am Ende des Beitrags.

Ok wir machen dann mit dem Projekt weiter. Als erstes habe ich eine Versuchsschaltung auf dem Steckboard aufgebaut. Hier kann man auch schnell mal was umbauen zum Testen.

Nach dem der Testaufbau dann mit entsprechenden Programm so gearbeitet hat wie ich mir das vorgestellt habe. Was bestimmt nicht sofort hingehauen hat. (Aber einfach kann ja jeder.) Nun habe ich alles auf einer Platine gebracht. Also löten löten und löten, ach ja und aufpassen beim löten. Zur Hilfe habe ich dann einen selbstgestrickten oder eher gekritzelten Schaltplan genommen. Den will aber keiner sehen 😉 Er entspricht aber den, welcher oben zu sehen ist.

So nun musste das ganze noch irgend wo hineingebaut werden. Schaut ja sonst blöde aus. Damit das ganze auch ohne Netzteil betrieben werden kann, habe ich noch einen DC-DC Konverter mit eingebaut. Und ein Batteriepack mit 12-15Volt. Der DC-DC Konverter regelt dann eine Spannung von 5 Volt. Zusätzlich zur Spannungsüberprüfung ist noch ein Voltmeter und ein AN / AUS Schalter hinzugekommen. Die TAE Telefonbuchse habe ich mit ins Gehäuse untergebracht. Aussen an der Holzbox sah das nicht gut aus. Die Box ist so groß dass man ein Telefon ohne Probleme obendrauf stellen kann. Der Ultraschallsensor ist durch zwei gebohrte Löcher an der Front der Box eingebaut.

Fertig 😉 Schaut doch gut aus, damit das Kabel vom Telefon nicht gequetscht wird ist bei der Öffnung eine kleine Kerbe drin. Na gut nun wird es Zeit das man alles auch mal sehen kann, darum habe ich hierzu auch ein Video gemacht. Und wie schon gesagt im Radio und Telefonmuseum bei Rheda Wiedenbrück kann man sich das Infotelefon dann auch live ansehen und hören 😉

Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube.

Für die welche dann doch mal genauer sehen möchten was passiert kommt jetzt der Arduino Code. Für alle anderen, bis zum nächsten Projekt. AWDH, AWDS & 73

Infotelefon

#include <SoftwareSerial.h>

#include <DFRobotDFPlayerMini.h>

// Pins

const int mosfetPin = 6;

const int relayPin  = 7;

const int hookPin   = 2;

// Ultraschall

const int trigPin = 8;

const int echoPin = 9;

// DFPlayer

SoftwareSerial mp3Serial(10, 11);

DFRobotDFPlayerMini player;

// Status

bool offHook = false;

bool isPlaying = false;

bool presenceDetected = false;

unsigned long cooldownStart = 0;

long distance = 0;

void setup() {

  pinMode(mosfetPin, OUTPUT);

  pinMode(relayPin, OUTPUT);

  pinMode(hookPin, INPUT);

  pinMode(trigPin, OUTPUT);

  pinMode(echoPin, INPUT);

  digitalWrite(mosfetPin, LOW);

  digitalWrite(relayPin, LOW);

  mp3Serial.begin(9600);

  if (player.begin(mp3Serial)) {

    player.volume(20);

  }

}

void loop() {

  // ☎️ Hörer abgehoben → Sensor deaktiviert

  if (offHook) {

    if (digitalRead(hookPin) == HIGH) {

      // Hörer aufgelegt → Cooldown starten

      cooldownStart = millis();

      offHook = false;

      isPlaying = false;

    }

    return;

  }

  // ⏳ Cooldown 20 Sekunden

  if (millis() – cooldownStart < 20000) {

    return;

  }

  // 📡 Abstand messen

  distance = measureDistance();

  // ❌ ungültige Werte ignorieren

  if (distance < 5 || distance > 200) {

    return;

  }

  // 🔁 Hysterese (50 / 70 cm)

  if (!presenceDetected && distance < 50) {

    presenceDetected = true;   // Einschalten

  }

  if (presenceDetected && distance > 70) {

    presenceDetected = false;  // Ausschalten

  }

  // ❌ Niemand da → alles aus

  if (!presenceDetected) {

    digitalWrite(mosfetPin, LOW);

    digitalWrite(relayPin, LOW);

    return;

  }

  // ☎️ Hörer abgehoben?

  if (digitalRead(hookPin) == LOW) {

    offHookDetected();

    return;

  }

  // 🔔 Klingeln

  ringCycle();

}

// 📡 Abstand messen (robust)

long measureDistance() {

  digitalWrite(trigPin, LOW);

  delayMicroseconds(5);

  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);

  long duration = pulseIn(echoPin, HIGH, 30000);

  if (duration == 0) return 999;

  long dist = duration * 0.034 / 2;

  return dist;

}

// 🔔 Klingeln (1 Zyklus)

void ringCycle() {

  digitalWrite(relayPin, HIGH);

  // 1 Sekunde klingeln (~25 Hz)

  for (int i = 0; i < 25; i++) {

    digitalWrite(mosfetPin, HIGH);

    delay(20);

    digitalWrite(mosfetPin, LOW);

    delay(20);

  }

  digitalWrite(mosfetPin, LOW);

  digitalWrite(relayPin, LOW);

  // Pause (3 Sekunden)

  for (int i = 0; i < 30; i++) {

    // Wenn Person weg → abbrechen

    if (measureDistance() > 70) return;

    // Hörer abgehoben?

    if (digitalRead(hookPin) == LOW) {

      offHookDetected();

      return;

    }

    delay(100);

  }

}

// ☎️ Hörer abgehoben

void offHookDetected() {

  offHook = true;

  digitalWrite(mosfetPin, LOW);

  digitalWrite(relayPin, LOW);

  delay(300);

  if (!isPlaying) {

    player.play(1); // 0001.mp3

    isPlaying = true;

  }

}

Kopieren anpassen was auch immer ist erlaubt nur bitte die Herkunft immer mit angeben!

Infotelefon
Ring Ring Ring

Telefonanlage für Wählscheibentelefone

Auf mein vorheriges Projekt aufbauend, eine Erweiterung. Ich hatte ja schon im Projekt Telefonklingel erwähnt das ich noch ein paar Ideen habe. Da ich eh schon ein Arduino zur Ansteuerung des Trafos benutze, ergeben sich noch weitere Möglichkeiten, als zwei Telefone das ist eher langweilig. Aber mehrere Telefone anschließen und dann soll es auch kein Kuddelmuddel geben. Denn man soll ja jedes Telefon anrufen können.

Was soll nun passieren. Der Arduino soll die drei Telefone überwachen. Er prüft ob ein Hörer abgehoben ist dann wird überprüft welche Zahl über die Wählscheibe gewählt wird, danach soll das angerufene Telefon klingeln. Das angerufene Telefon wird nun überwacht, ob dort der Hörer abgehoben wird. Ist das der Fall dann werden beide Telefonen mit einander verbunden. Nun wird überwacht ob einer von beiden Teilnehmer auflegt. Ist dass der Fall dann wird die Verbindung wieder getrennt und die Überwachung der drei Telefone ist wieder aktiv.

Und es soll die maximale Nutzung auf eine Minute begrenzt werden. Wenn man einen Teilnehmer anruft, der aber nicht anwesend ist, spätestens nach einer Minute alles wieder im Überwachungsmodus schaltet. Auch Gespräche werden bei einer maximalen Länge von einer Minute getrennt. Ich denke das dies völlig ausreichend ist, da bei einer Hausanlage nur kurze Infos abgesprochen werden. Zum Beispiel ‚Das Essen ist fertig oder Der Besuch ist da‘. Und wenn die Minute nicht ausreichend ist kann man ja nochmal wählen 😉

Als nächstes kommt noch ein Freiton und Besetztton hinzu. Aber erstmal das Programm welches auf den Arduino kommt. Hier muss schon einiges beachtet werden, den drei Relais je Telefon und ein Klingelrelais müssen gesteuert werden hinzu kommt die Überwachung die über Optokoppler realisiert wird. Dann muss alles richtig verbunden werden und das alles soll über die a/b Leitung der Telefone geschehen.

Oben zu sehen ist die Schaltung. Die Anschlüsse sind natürlich abhängig von der Programmierung. Aber es lassen sich noch mehr Telefone in die Anlage integrieren. Also man kann die Anlage mit einer Telefonschaltung erweitern. Mit einem Arduino Nano geht das dann so weit, wie noch freie IO Pins vorhanden sind. Lässt sich aber auch mit entsprechenden Erweiterungen noch mehr ausbauen. Für mich sind aber drei Telefone ausreichend.

Oben zu sehen, die Schaltung ist soweit erstmal als Versuchsaufbau mit einem Steckboard realisiert. Nicht so leicht alle Steckverbindungen in den richtigen Reihen einzuordnen. Aber mit einem Adlerauge bekommt man dass auch hin 😉 Nach dem alles mit entsprechendem Programm zu meiner Zufriedenheit funktioniert, wird es auf eine Platine aufgebaut. Und anschließend alles in einem Gehäuse unter gebracht. Zu dem kommt noch proTelefon ein Batteriefach mit ins Gehäuse. Damit werden die Telefone versorgt. Denn wenn die Telefone zusammengeschaltet sind müssen die ja eine Gleichspannung haben um auch Gespräche zuzulassen. Die Batterien halten ewig, da im Leerlauf kein Spannungskreislauf besteht. Die Schaltung kommt ohne weiteres mit 5V & 1A aus. Also die USB Versorgung des Arduino’s reicht völlig aus. Besser aber ein Netzteil mit 5V & 2A benutzen.

Ja ich denke das könnte auch viele interessieren die noch ein paar Wählscheibentelefone zu Hause haben und diese gerne als Haustelefon betreiben möchten. Also mit Wählscheibenfunktion und die Möglichkeit noch mehr Telefone anzuschließen. Mein nächstes Projekt steht auch schon an. Eine Telefonbox welche ein Telefon klingeln lässt wenn man sich dem annähert, und beim abheben des Hörers wird eine Audiodatei mit Begrüßung, oder was auch immer, abgespielt. Das gute, es wird eine Telefonbuchse TAE oder wie die sich nennt angeschlossen. So kann man dann auch andere Telefone einstecken. Das Projekt wird dann sehr wahrscheinlich ans Radio und Telefonmuseum in Rheda-Wiedenbrück gehen. Denn genau da gehört sowas hin 😉 Aber hier eine kleines Video zu diesem Projekt.

Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube.

Für die jenigen welche den Sketch haben möchten. Und sich bissel auskennen. Habe ich nun Folgend das Programm angehängt. Das Programm darf gerne kopiert werden. Eine Abänderung zur Anpassung der Belegung und Erweiterungen sind auch gestattet. Nur der Hinweiß zu dieser Homepage sollte bei Weitergabe mit inbegriffen sein.

Für die anderen die mit programmieren nicht so viel an der Mütze haben, wir sehen uns im nächsten Projekt.

// ================== PIN BELEGUNG ==================

//================ WWW.NRWFUNK.DE =================

#define RELAY_T1 8
#define RELAY_T2 9
#define RELAY_T3 10
#define RELAY_RING 7
#define MOSFET 6

#define DIAL1 2
#define DIAL2 3
#define DIAL3 4

// ================== VARIABLEN ==================
volatile int pulseCount = 0;
volatile int activeDial = 0;
unsigned long lastPulseTime = 0;

// ================== SETUP ==================
void setup() {

pinMode(RELAY_T1, OUTPUT);
pinMode(RELAY_T2, OUTPUT);
pinMode(RELAY_T3, OUTPUT);
pinMode(RELAY_RING, OUTPUT);
pinMode(MOSFET, OUTPUT);

pinMode(DIAL1, INPUT_PULLUP);
pinMode(DIAL2, INPUT_PULLUP);
pinMode(DIAL3, INPUT_PULLUP);

attachInterrupt(digitalPinToInterrupt(DIAL1), pulse1, RISING);
attachInterrupt(digitalPinToInterrupt(DIAL2), pulse2, RISING);
attachInterrupt(digitalPinToInterrupt(DIAL3), pulse3, RISING);

allIdle();
}

// ================== RESET ==================
void allIdle() {
digitalWrite(RELAY_T1, LOW);
digitalWrite(RELAY_T2, LOW);
digitalWrite(RELAY_T3, LOW);
digitalWrite(RELAY_RING, LOW);
}

// ================== IMPULSE ==================
void pulse1() { handlePulse(1); }
void pulse2() { handlePulse(2); }
void pulse3() { handlePulse(3); }

void handlePulse(int phone) {
static unsigned long last = 0;

if (millis() – last > 10) {
pulseCount++;
activeDial = phone;
lastPulseTime = millis();
}
last = millis();
}

// ================== EINSTELLIGE WAHL ==================
int readDial(int &caller) {

pulseCount = 0;
activeDial = 0;

while (pulseCount == 0);
while (millis() – lastPulseTime < 800);

int number = pulseCount;
if (number == 10) number = 0;

caller = activeDial;
return number;
}

// ================== KLINGEL ==================
void ringSignal(int duration_ms) {

unsigned long start = millis();

while (millis() – start < duration_ms) {
digitalWrite(MOSFET, HIGH);
delay(20);
digitalWrite(MOSFET, LOW);
delay(20);
}
}

// ================== HOOK ÜBER a/b ==================
bool checkOffHook(int dialPin) {
return digitalRead(dialPin) == LOW;
}

// ================== KLINGELN ==================
bool callPhone(int targetRelay, int dialPin) {

for (int i = 0; i < 20; i++) {

digitalWrite(targetRelay, HIGH);

digitalWrite(RELAY_RING, HIGH);

ringSignal(1000);

digitalWrite(RELAY_RING, LOW);

digitalWrite(targetRelay, LOW);

delay(150);

if (checkOffHook(dialPin)) {

  return true;

}

delay(2850);

}

return false;
}

// ================== VERBINDEN ==================
void connectPhones(int r1, int r2) {

allIdle();
delay(50);

digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);

unsigned long start = millis();

while (millis() – start < 20000) {
delay(50);
}

digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
}

// ================== LOOP ==================
void loop() {

int caller = 0;
int number = readDial(caller);

// ===== ROUTING (4 / 5 / 6) =====

if (caller == 1 && number == 5) {
if (callPhone(RELAY_T2, DIAL2)) {
connectPhones(RELAY_T1, RELAY_T2);
}
}

if (caller == 1 && number == 6) {
if (callPhone(RELAY_T3, DIAL3)) {
connectPhones(RELAY_T1, RELAY_T3);
}
}

if (caller == 2 && number == 4) {
if (callPhone(RELAY_T1, DIAL1)) {
connectPhones(RELAY_T2, RELAY_T1);
}
}

if (caller == 2 && number == 6) {
if (callPhone(RELAY_T3, DIAL3)) {
connectPhones(RELAY_T2, RELAY_T3);
}
}

if (caller == 3 && number == 4) {
if (callPhone(RELAY_T1, DIAL1)) {
connectPhones(RELAY_T3, RELAY_T1);
}
}

if (caller == 3 && number == 5) {
if (callPhone(RELAY_T2, DIAL2)) {
connectPhones(RELAY_T3, RELAY_T2);
}
}
}

Bis zur letzten geschweiften Klammer kopieren und in euer Projekt einfügen. Viel Spass beim Projekt.

Telefonklingel

Mir wurde vor kurzem die Frage gestellt “ Wie kann ich zu Hause ein altes Telefon klingeln lassen ? “ Ja da gibt es mehrere Möglichkeiten. Aber so als Schaltung habe ich erst an einen Timer IC gedacht und da ich noch ein paar von den NE555 in der Bastelkiste hab, habe ich damit eine Schaltung auf das Steckboard aufgebaut.

Also das Prinzip ist mit dem Timer NE555 ein Interwall auszugeben und damit einen Transistor zusteuern, welcher ein 5Volt Relais schaltet und so eine Spannung auf ein Trafo gibt (Trafo z.B. 220~V auf 12~V) diesen rückwärts betrieben um so eine kleine Spannung, hoch auf ca. 60 bis 90 Volt zu transformieren. Da die alten Telefone eine Klingelspannung von ca. 60 – 90 Volt benötigen. Um einen guten Klingelton hin zubekommen sollte man 25Hz (25 Impulse pro Sekunde) schaffen.

Das funktioniert schon sehr gut. Aber damit das ganze noch besser funktioniert habe ich Mosfet Transistoren Module (schneller in den Zyklen und leistungsstark) mit einen Arduino angesteuert und damit einen Trafo. Das geht dann mal richtig gut. Denn das Relais wird hier an seine Schaltinterwallgrenze betrieben und das geht nicht wirklich lange gut! Vorteil ist, es ist einfach man kommt mit einer USB Versorgung aus und durch den Arduino ergeben sich noch weitere Möglichkeiten. Der Arduino hat aber erstmal nur ein ganz simples Programm welches PWM Signal an das Mosfetmodul sendet.

Na das schaut doch schonmal viel besser aus und kann einfach auf einer Grundplatine aufgebaut werden. Das mache ich aber erst nach dem, meine weiteren Ideen mit eingearbeitet sind. Mehrere Telefone betreiben, Impulsverfahren auswerten und wenns mal klingelt, Audiodatein abspielen lassen 😉

Und wenn man sich das mal ansehen bzw anhören möchte so kann man das Video zum Beitrag hier anschauen.

Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube.

Fernsprecher OB33

Der OB 33 ist ein Fernsprechgerät welches vor allem im Bereich der Eisenbahn eingesetzt wurde. Damals noch die Deutsche Reichsbahn. Inzwischen ist der Fernsprecher OB33 ein historisches Telefongerät. Zwei dieser Geräte benötige ich für die Funktionsüberprüfung bzw. Funktionsherstellung eines Klappenschranks. Beides ist vom Radio und Telefonmuseum (Das ehemalige Verstärker Amt) zu sehen.

Die zwei Fernmeldetelefone waren schon ziemlich mitgenommen und damit ich diese zum Testen nutzen kann musste hier auch erstmal die Funktion hergestellt werden. Des weiteren habe ich diese Geräte wieder aufgewertet. Der aktuelle Zustand war nicht so gut.

Diese Geräte sind eigentlich für die Ewigkeit geschaffen. Aber es waren in ihrer einsatzaktiven Zeit halt nur Nutzgegenstände und damals war man sich der historischen Werte dieser Fernsprecher offensichtlich nicht bewusst. Also den Umwelteinflüssen überlassen.

Also ran ans Werk, putzen, schleifen, bonern und neu lackieren. Leider hat man den einen Fernsprecher vor langer Zeit schonmal grob überlackiert und dabei auch die Kunstoffe einfach mit lackiert. Was echt scheiße ausschaut. Da musste ich die Farbe erstmal runter bekommen und das nach Möglichkeit ohne Verluste. Auch hat sich der Rost ins Blech schon tiefer eingefressen. Die Kabel werde ich belassen. Gerade die Kabelschnur vom Hörer zum Gerät hin, so wird das heute nicht mehr gemacht und deswegen bleibt dies.

Hier sind beide Exponate zu sehen. Nun ein wenig zur Technik der beiden Geräte. Für mich ein großer Schritt in die Vergangenheit, da ich hauptsächlich schon in der digitalen Welt aktiv bin aber natürlich kribbelt es mir in den Finger, denn ich will die beiden Geräte schließlich in Aktion sehen.

Beide Fernsprecher sind bis auf ein paar nicht nenneswerte Unterschiede identisch. Zu meine Zeit wo ich in Kontakt mit der analogen Telefontechnik gekommen bin gab es schon Telefone mit Wählscheibe und zum Betrieb waren auch nur zwei Leitungen nötig. Bei den beiden Geräten waren es 6 Leitungen die mich anlächelten. Ok ich dachte mir, lächeln kann ich auch. Das war nix. Also erstmal aufschrauben und sehen was es zu sehen gibt. Klar welche Ader von den 6 war wofür? Wissen ist Macht und die hatte ich über diese Fernsprecher noch nicht.

Also doch kein Hexenwerk. Wenn man es richtig anstellt funktionieren die Fernsprecher auch nur mit zwei Leitungen. Um einfach mal so zwei Apparate zusammen zu schließen werden vier von den sechs Adern je zwei zusammengeschlossen und die zwei übrigen werden zur eigenen Gleichspannung benutzt. Grundfunktion für die Akkustik ist Wechselspannung zum Klingeln und Gleichspannung zum Sprechen. Ein Gespräch mit Wechselspannung würde sich wie ein Roboter zu damaligen Zeit anhören. (Die heutigen künstlichen Sprachen sind schon verdammt Realitäts nah)

Der Einsatzort dieser Fernsprecher ist sogar noch bekannt. Den die am Gerät befindlichen Schaufenster hatten noch die alten Schriftkarten. In einem hatte sich sogar noch eine Schriftkarte hinter der anderen versteckt. Diese Aufschriften und Kürzel sind für mich als Eisenbahner & Lokführer nicht fremd und werden heute noch bei der Eisenbahn benutzt.

Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube.

In dem Video auch ein kleiner Ausflug zu den Örtlichkeiten bzw. Betriebsstellen.

In Aktion werde ich die Fernmelder mit einen Klappenschrank welcher als Verbindung mit anderen Gesprächsstellen agiert zeigen. Ich werde berichten.

Fertig, schaut gut aus und ich kann ans nächste Projekt gehen.