Refresh loader

Category : Arduino

Home > Archive for Arduino

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.

Der Piratensender

Der Piratensender, ist natürlich nur zu Versuchszwecken und da ich ja im Radio und Telefonmuseum öfter mal bin, ist mir die Idee gekommen einen eigenen kleinen UKW Sender zu basteln. Kleines leichtes Projekt sollte es werden und frequenzstabil. Aufgebaut mit einem Arduino Nano, SD-Kartenmodul und einen UKW-Transmitter.

Hier alles auf einer Platine aufgelötet und verbunden. Rechts der Arduino Nano, links unten der UKW Transmitter und darüber das SD-Kartenmodul.

Die SD Karte beinhaltet die Audiodatei welche in WAV oder MP3 sein kann. Der UKW-Transmitter ist halt der Sender und der Arduino bekommt das Programm wo alles gesteuert wird. Gedacht ist es auch um die Radios zu testen und eine Audiodatei in einer Telefonvermittlung einzubinden. Ich denke es ist toll wenn die Besucher sich dann über ein im Museum befindliches Telefon z.B. die Telefongeschichte anhören kann.

Also wird auf der SD Karte z.B. die Geschichte zum Telefon kommen oder zum Museum.

Hier ist nochmal die Verdrahtung von der Unterseite zu sehen.

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

Natürlich ist der Betrieb als Sender nicht zulässig. An einer großen aussen Antenne eh nicht erlaubt.

So das ganze in hier in einem der letzten übrig gebliebenen Holzkästchen untergebracht und fertig ist der Spass 😉

Haustelefonvermittlung

Was ein langes Wort, ok in diesem Projekt habe ich eine Telefonvermittlung gebaut. Diese ist für das verbinden von Kurbeltelefone gedacht. Geht aber theoretisch für alle Telefone welche kabelgebunden sind. Und na klar man kann das Projekt auch zweckentfremden, denn anstatt eines Gesprächs kann man auch kleine Spannungen weiterleiten und so auch bestimmte Geräte schalten.

Wie ist es zu diesem Projekt gekommen? Da ich ja hin und wieder im Radio und Telefonmuseum im Verstärkeramt aktiv bin und ich mich dort mit der Verbindung von alten Kurbeltelefonen beschäftigt hab. Diese werden natürlich, so wie früher, über eine Vermittlung geschaltet. Dies wurde damals manuel gemacht. Also an einer Vermittlung sitzt eine Person welche die entsprechenden Nebenstellen (Teilnehmer) mit der Amtsleitung oder aber auch ein Zimmergespräch herstellt. Das muss damals bestimmt spannend gewesen sein. Ich kann mir gut vorstellen dass das Fräulein vom Dienst so einiges wusste 😉

Das Fräulein vom Dienst.

Diese Vermittlung und noch weitere gibt es im Radio- und Telefonmuseum im Verstärkeramt bei Rheda- Wiedenbrück zu sehen.

Da diese Vermittlungen viele Jahre hinter sich haben und nicht unbedingt alle immer vollständig funktionieren, was auf fehlender Pflege und je nach dem wo diese Exemplare zuvor rumgestanden haben, zurück zuführen ist. Ist mir die Idee gekommen eine kleine Vermittlung zubauen welche immer noch manuel bedient wird. Die Vermittlung sollte ziemlich selbsterklärend sein. Jedoch intern wird teils über einen Arduino geschaltet. Dieser zeigt die aktuelle Verbindung zwischen Zentrale, Amt und Teilnehmer auf einen OLED Display an. Zusätzlich wird der Betriebszustand über LEDs angezeigt. Für mich ist das schon mal ein Vorteil den damit kann ich Fehlerquellen ausschließen. Aber es ist Bedienerfreundlich und Besucher können so schnell erkennen was wie angeschlossen ist und können auch selbst mal das Fräulein vom Dienst nachspielen.

Also von der Idee auf Papier zum PC bis auf dem Arbeitstisch. Beim Frühstück und meiner vierten Tasse Kaffee, ich hatte zufällig ein Heft und was zum schreiben in griffnähe liegen, habe ich mir Gedanken über die Schaltung gemacht. Erst dachte ich an einen Kasten mit Kippschalter um sämtliche Verbindungen zu schalten. Aber das war mir dann doch zu simpel. Also ein Arduino Nano habe ich noch über und eine Relaiskarte mit vier Relais drauf auch. Ein Oled Display war auch noch da. Nun gut Kleinkram wie Schalter, Taster, Dioden, Widerstände, LEDs usw. habe ich so gut wie immer vorrätig.

So war der Plan

Das Ganze muss nun noch irgend wie oder besser wo reingebaut werden. Da sitze ich so am Wohnzimmertisch und da lacht mich so ein kleines Tablet aus Holz an. Zack war es weg bevor meine Frau was merkt 😉 Ein Plan über die Anordnung der Elemente hatte ich nicht. Klar war das die Teilnehmer alle möglichst in einer Reihe sind und die Taster zu Schaltung zwischen Zentrale und Amt bzw. Teilnehmer sollen auch nebeneinander sein. Das Display welches die aktuellen Verbindungen zwischen der Zentrale, Amt und Teilnehmer anzeigt, soll unter den beiden Tastern kommen. Und die LEDs zur Betriebzustandsanzeige sollen untereinander in einer Reihe kommen.

Soweit sogut. Nach dem alles eingebaut war habe ich mich an den PC gesetzt um einen passenden Sketch (Programm Code für u.a. Arduino) zu coden (Schreiben). Dieser sollte die Relaiskarte passend steuern und das Display so wie die Status-LEDs. Hinzu eine kleine grafische Animation. Das könnt ihr euch auch gerne im Videobeitrag zur Vermittlung anschauen.

So es wird Zeit für den ersten Test. Durchschalten der Relais funktioniert gut. Auch das Display hat nach ein paar Programmierungsanpassungen alles gut dargestellt. Die LEDs wurden auch noch ein bisschen umprogrammiert (richtig angesprochen). Also alles von innen verbunden und zum testen habe ich noch ein Feldtelefon ehemals von der Bundeswehr und ein Wählscheibentelefon von der damaligen Bundespost in mein Reservoir. Das Wählscheibentelefon hat natürlich keine Induktionskurbel aber das macht nix, denn läuten tut es genauso gut. Und Sprechen bei entsprechender Spannungsversorgung geht auch. Das Feldtelefon hat eine eigene Spannungsversorgung das Wählscheibentelefon muss separat mit Spannung versorgt werden. Diese Spannung kam früher über die Telefonleitung. Das habe ich gewissermaßen auch so realisiert.

Hier der Testaufbau mit einem Wählscheibentelefon der Vermittlung.

Wie man sehen kann sind unter den Kippschaltern auch jeweils eine rote LED angebracht. Diese signalisieren ein Gesprächswunsch von dem jeweiligen Teilnehmer (Nebenstelle) da die Grundschaltung immer von der Zentrale zum Amt steht. Also fehlen noch die Beschriftungen und ein Displayschutz, dieser hat zwei Fenster hinter dem einen ist das OLED Display und hinter dem anderen kommt evtl. ein QR Code der es dem Interessierten möglich macht mit seinem Handy zu diesen Beitrag hier zu gelangen.

So und nun hier das Video zum Beitrag. In diesem Video erkläre ich das ganze und führe es auch vor. Auch hier werde ich wahrscheinlich noch ein zweites Video oder Bilder direkt im Radio und Telefonmuseum machen.

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

Nicht zu vergessen alles unter Kontrolle von Minki

Minki

Die Vermittlung steht nun im Museum. Ich habe noch eine Displayabdeckung entworfen und diese in einen 3D Drucker gefertigt.

Cat-System mit Arduino

Ich besitze seit langer Zeit ein Yaesu FT-857. Dieser verfügt über eine Cat-Schnittstelle. Meine Idee ist es dort einen Arduino mit entsprechender Software dran anschließen und die Frequenz so wie Modulationsart auszulesen. Der Grund ist, ich habe die Memoriespeicher beschrieben und mit einem alphanumerischen Namen belegt. Also wenn ich auf Speicherplatz 5 bin zeigt mir der FT-857 DB0PB an. Das ist ja auch richtig da ich dort das Releias abgespeichert habe. Jetzt will ich aber zugleich die Frequenz sehen. Da kommt der Arduino nano jetzt ins Spiel. Der soll mit entsprechender Software nun auf ein kleines Oled-Display mir die aktuelle Frequenz anzeigen.

Allerdings ist am hinteren Cat-Anschluss schon eine PA angeschlossen. Aber für den Fall haben die bei dem FT-857 schon vorgesorgt und man kann im Menü den Catausgang auf die Mic-Buchse legen.

Zusammenfassung: Adapterkabel für die Mikrofonbuchse fertigen (Westernstecker bzw. RJ45). Ein Oled-Display und Arduino nano (waren schon vorhanden) diese verbinden und ein Programm musste geschrieben werden. Damit ich auch noch Funkbetrieb machen kann, brauchte ich noch eine Rj45 Buchse. Hinzu sollte auch noch die Möglichkeit kommen mit einen Cat-Bluetooth Sende- Empfänger auf die Schnittstelle vom Mikrofonanschluss zuzugreifen. Also musste auch eine MiniDin8Pol Buchse her. Bis ausser der RJ45 (Westernstecker-) Buchse ist alles vorhanden.

Den Pegelwandler von RS232 auf TTL. War eine kleine Sicherheit damit ich nicht den Arduino schrotte, der kann so 5 Volt ab aber die alten Catsysteme laufen unter dem RS232 (COM-PORT) System welche durchaus bis an die 12Volt liefern kann. Nach einer Spannungsmessung habe ich festgestellt das Magarine Fett enthält 😉 lol,,, also nach der Messung habe ich festgestellt das die Pegel aber im maximalen Bereich von 5 Volt liegen. So konnte ich mir auch die flöterei mit dem Pegelwandler sparen.

So weit war der Versuchsaufbau nun fertig und ich konnte mit dem programmieren anfangen. Nach ein paar kleinen Darstellungsproblemen. Falsche Umrechnung und Anzeige der Bytes zum String auf dem Oled-Display, konnte ich diese auch bewältigen. Hier hatte ich auch Untestützung von einer künstlichen Intelligenz.

Also Programm war soweit startklar und nun alles auf Platine zusammen löten.

Hier noch auf dem Steckboard. Unten ist das Oled-Display und oben ist ein Temperatursensor. Dieser ist aber erstmal nur zu Testzwecken mit aufgesteckt. Hiermit möchte ich mir später noch die Betriebstemperatur des Funkgerätes anzeigen lassen. Aber erstmal nur die Freqenz und Modulationsart.

So alles war soweit bereit und sollte nun in einem Gehäuse unter gebracht werden. Ich habe für günstige 2Euro’s ein kleines Holzkästchen gekauft. In dem soll das ganze erstmal rein. Für das kleine Display ist das Holzkästchen mit eingebauten Sichtfenster etwas groß, aber ich möchte das jetzige Display später mal durch ein größeres Display ersetzen wo ich mir dann noch weitere Daten des Funkgerätes anzeigen lassen möchte.

Ich wollte auch noch auf den Programm Code eingehen aber das würde hier den Rahmen sprengen. Wie gesagt das Oled-Display wird durch ein größeres ersetzt. Eins in Farbe und ich habe da auch noch paar weiteren Ideen, SWR Anzeige. Ach ja fast vergessen ich habe das Bluetooth Modul angeschlossen und kann das ganze auch von meinem Handy bedienen.

Nach dem die noch bestellte Rj45 (Westernbuchse) eingetroffen ist. Habe ich diese mit eingebaut und kann nun das Mikro mit anschließen.

Oben drauf ist der Mikrofonanschluss daneben kann ich mit dem Schalter die Spannung schalten. Mittig wird keine Spannung zum Arduino weitergeleitet. Rechts wird Mic Spannung vom TRX geschaltet, so kann ich alles ohne PC betreiben. Links wird die Spannung zum 8Pol MiniDin weiter geschaltet und ich kann das Bluetooth-Modul nutzen. Und der PC ist auch angeschlossen. Es werden die Daten auch zum PC über die USB-Schnittstelle weiter geleitet. So kann ich zusätzlich noch an einem PC alles sehen und gleichzeitig das Programm umprogrammieren bzw. erweitern. Na es kommt aber noch ein großes Display dran. Das wird dann einen neuen Beitrag geben.