• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Wählscheibentelefon, bräuchte da mal Hilfe

OP
peter51d

peter51d

Geocacher
Ich melde mich hier auch mal wieder.
Mit Arduino kemne ich mich zwar nicht aus, aber über Zwei Draht, dürfte es schwierig werden.
Klassisch habe ich bei einem Analogem Telefon am Amt eine Speisespannung > 30 VDC.
Und ohne zusätzliche Elektronik im Telefon wird auch i2c nichts werden.
Wenn es also alles über die zwei original Adern laufen soll, bedeutet das einen nicht unerheblichen Aufwand.
Den µC und das Soundmodul im Telefon ist wesendlich einfacher.
 

speerwerfer

Geocacher
hcy schrieb:
Ne, war auch mehr 'n Bastelprojekt. Ich sag ja, aus historischen Gründen.
Hast Du evtl. 'ne Idee mit dem Klingeln und wie man gleichzeitig Ton ausgeben und Wählimpulse einlesen kann ohne das Probleme zu kriegen?
Naja, Ton und Wählimpulse werden ja von unterschiedlichen Einheiten verarbeitet. Ton kommt vom Soundmodul und die Wählimpulse wertet der µC aus ... sollte eigentlich kein Problem sein
 

speerwerfer

Geocacher
So, habe heute Abend mal ein 612-2 der Post zerlegt und den Nummernschalter untersucht.

Verstehe ich das richtig:

Zwei Leitungen (braun/weiß) werden verbunden, wenn der Nummernschalter aufgezogen wird und bleiben dies auch bis zum Ablauf der Impulse. In der Ruheposition sind diese Leitungen nicht verbunden. Das wäre dann der NSA

Die anderen beiden Leitungen (grün/gelb) geben die Impulse durch. Hier sind nur dann Impulse zu messen, wenn die anderen beiden Leitungen (braun/weiß) geschloßen sind. Ist dies nicht der Fall, sind die Leitungen (grün/gelb) permanent verbunden. Das wäre dann der NSI
 

speerwerfer

Geocacher
selber machen ist zwar auch ganz nett, aber warum das Rad neu erfinden? Hier hab ich mal was gefunden, was man sicher nutzen kann um einen Nummernschalter/Rotary dial am Arduino zu nutzen
 

englishfire

Geomaster
@speerwerfer: Danke für den Link. Der Code funkioniert. Die Frage ist, wie ich den Code erweitere, damit z. B. bei einem richtig eingegebenen Code ein angeschlossenes Soundmodul aktiviert wird.
 

speerwerfer

Geocacher
So, hier mal mein erster Versuch. Es kommt die Bibliothek RotaryDialer zum Einsatz!

Code:
/*
 Projekt: RotaryDial
 Autor: Speerwerfer
 Datum: 27.09.2012
 
 Einlesen eines Wählscheibentelefons
 
 Version 0.1
 */

#include "RotaryDialer.h"

#define PIN_READY	7
#define PIN_PULSE	6

RotaryDialer dialer = RotaryDialer(PIN_READY, PIN_PULSE);
String secretNumber;
String dialedNumber;
short num; 
unsigned long lastDialTime;
unsigned long resetTime;

void setup() {
  Serial.begin(9600);
  Serial.println(millis());
  resetData();
  dialer.setup();
}

void loop() {
  if(millis()-lastDialTime > resetTime){
    // wird länger als 5 sec. nicht gewählt, werden die Daten zurückgesetzt
    resetData();
  }
  if (dialer.update()) {
    lastDialTime = millis();
    dialedNumber += dialer.getNextNumber();
    if(dialedNumber.equals(secretNumber)){
      // die richtige Nummer wurde gewählt
      richtigeNummerGewaehlt();
    }
  }
}

void richtigeNummerGewaehlt(){
  Serial.println("RICHTIG");
  // hier kann nun alles mögliche gemacht werden ...
  // ...
  // dann werden die Daten zurückgesetzt.
  resetData();
}

void resetData(){
  secretNumber = "159"; 
  dialedNumber = "";
  num = -1;
  resetTime = 5000;      // 5 sec.
  lastDialTime = 0;
}
 

hcy

Geoguru
Ich verstehe noch nicht so ganz was an PIN-READY und was an PIN-PULSE angeschlossen wird? Oder ist das egal?
 

speerwerfer

Geocacher
Tschuldigung, war gestern ein wenig schreibfaul ... war schon spät.

An PIN_READY wird der NSA angeschlossen und an PIN_PULSE der NSI. Als Pull-Up-Wiederstand hab ich 5kOhm genommen.

Hier mal das Anschluss-Schema:

Code:
                      /-------------------------- readyPin
  /- ready switch (NSA) -- pull-up resistor ----- VCC
 /-- pulse switch (NSI) -- pull-up resistor ----- VCC
 \                    \-------------------------- pulsePin
  \---------------------------------------------- GND
 

hcy

Geoguru
Das Schema hatte ich auch gesehen aber nicht so ganz verstanden. Was ist NSA und was ist NSI (Telefon hat doch einfach 2 Adern, a und b)? Pull-up macht doch der ATMega intern oder reichen die nicht?
 

speerwerfer

Geocacher
Hier noch mal etwas besser (gezeichnet mit AACircuit)

Code:
                    PIN_READY
                       o
                       |
                       |    NSA 
                       | (braun/weiß)
                ___    |    ---
VCC  o---o-----|_R_|---o----o o------o---o   GND
         |                           |
         |                  NSI      | 
         |              (grün/gelb)  | 
         |      ___         ---      |
         '-----|_R_|---o----o o------'
                       |
                       |
                       |
                       o
                    PIN_PULSE

NSA & NSI sind die beiden Schalter im Nummernschalter. Du musst das Telefon öffnen und den Nummernschalter direkt an den µC anschließen. Das Anschlusskabel des Telefons für die Telekomsteckdose interessiert nicht - genauso wie die restliche Schaltung des Telefons. Die geschriebenen Adernfarben sind bei mir richtig, können aber abweichen.

In der Ruheposition ist der NSI geschloßen. Am PIN_PULSE liegt also LOW an. Der NSA ist in Ruhe offen und es liegt daher HIGH am PIN_READY.

Interne Pull-Ups nutze ich nicht, da ich die zu schnell vergesse.
 

hcy

Geoguru
Ach so, den Nummernschalter direkt anschließen. Mh, bisher hatte ich immer das Telefon ungeöffnet mit dem Arduino verbubnden, das klappte auch.
Erkennt man denn mit diesem direkten Anschließen auch ob der Hörer aufliegt oder nicht? Ich möchte ja nur bei abgenommenem Hörer wählen und auch nur dann das Freizeichen abspielen.
 

speerwerfer

Geocacher
Also das Anschließen des Telefon über die zwei "normalen" Anschlussadern würde ich nicht machen. Irgendwo hier im Thread steht auch was dazu. Von der Vermittlungsstelle sind etliche Volt über die Leitung geschickt worden (ich glaube 60 Volt). Die Schaltung des Telefons ist auch darauf ausgelegt. Ob man das ganze auch mit den 5 Volt eines µC machen kann, weiß ich nicht.

Das Problem mit dem abgehobenen Hörer werde ich so lösen: Irgendwo wird es einen Halter/Anschluß für eine mitzubringende 9 Volt Blockbatterie geben. Die komplette Schaltung wird aber nur dann mit Strom versorgt, wenn der Hörer abgehoben ist - entspricht dann ja auch dem ursprünglichen Vorgehen.

Die Hörergabel wäre dann der "Netzschalter" der Schaltung. Wenn der Hörer abgehoben wird bekommt die Schaltung Strom und würde nach dem Start das Freizeichen auf den Hörer geben (Dauer tuuuuuuuuuuut). Wird gewählt, wird das Freizeichen abgeschaltet. Nach dem Wählen kann man dann entweder bei korrekter Nummer ein Klingelzeichen (tuuut- tuuut) und dann die eigentliche Nachricht abspielen, oder bei falscher Nummer eine Ansage wie "kein Anschluss unter dieser Nummer". Um dann neu zu wählen, legt man einmal den Hörer auf (ist ja in Wirklichkeit auch so).

hcy schrieb:
Mh, bisher hatte ich immer das Telefon ungeöffnet mit dem Arduino verbubnden, das klappte auch.

Wie sieht das dazugehörige Programm denn aus?

Martin
 

hcy

Geoguru
Muss ich mal raussuchen. Ich war ja erst ziemlich am Anfang, hatte nur die Impulse erkannt, der Rest fehlte bei mir auch noch.
Die Idee die Spannungsversorgung komplett über den Gabelschalter (so heißt der oder?) zu lösen ist sehr elegant.
 

speerwerfer

Geocacher
Die Spannungsversorgung würde ich so regeln: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Spannungsversorgung

Vor der Diode D1 wird dann der Gabelschalter eingebaut. Hinter dem Spannungsregler 7805 - im 5 Volt Bereich - würde ich eine kleine grüne LED einbauen, die ich in der Mitte der Wählscheibe unter der Abdeckung "verstecken" würde. Dann schimmert die Wählscheibe grün, sobald die Schaltung mit Strom versorgt wird.
 

speerwerfer

Geocacher
hcy schrieb:
Na sowas ist auf dem Arduino ja schon drauf.
Der Arduino ist mir aber als Platine zu teuer, um Ihn in den Wald zu hängen. Den nutze ich nur zur Entwicklung. Später kommt der nackte µC auf die Schaltung.

Hast Du eine Alternative? Evtl. auch kleiner, muss ja kein Shield sein.
Eins von den Voicemodulen von Voicemodul.de (z.B. Programmierbares Soundmodul). Das steuert man dann mit ein paar Pins des µC an ...
 

hcy

Geoguru
speerwerfer schrieb:
Der Arduino ist mir aber als Platine zu teuer, um Ihn in den Wald zu hängen. Den nutze ich nur zur Entwicklung. Später kommt der nackte µC auf die Schaltung.
Ok, schon klar. Wobei mein Telefon auch nicht in den Wald soll, da wäre mir vor allem das Telefon zu teuer und weniger der Arduino.
 
Oben