Connect old telephone rotary disk to arduino

Hi folks i am working on my first arduino project as i said before i have programming skills but my electronics knowledge is equal to 0.

So i am asking for your help i have a couple of questions.

  1. I have this old rotary disk from an old phone i found how can i see if it works before connecting it to arduino

[/URL]

2.How can i find what kind of resistor do i need

3.Do i need to connect it to a digital pin or to an analog pin . Please explain the reason too.

4.Witch wire goes where and how can i find this on my own.

P.S It has 3 wires

Thanks for your help in advance.

A rotary phone works by opening/closing a switch x- number of times to dial a specific digit.
If you dial 9 for example the switch opens and closes 9 times.
The exact number may differ depending on where you live, several standards exist(ed?). In some
countries the number 0 operates the switch 1 time and 9 will operate the switch 10 times.

The resistor used probably doesn't matter too much, as long as it can serve as an pull-up/down safely.
Without... an arduino pin will be left floating which can cause false readings, so my best guess is you
need one.

Analog or digital doesn't matter much. The principle of rotary dialing is digital, the switch is either opened or closed, but... an analog pin of the arduino is basically a digital one with an extra function.

You'll need to find the wires to the switch, why there are 3 wires instead of two, I unfortunately don't know. Other things are important as well, like what happens when someone calls, you picking up the phone or ending a conversation. Unfortunately I can't tell you much about that as well, never studied telephone techniques in great detail.

I don't know whether you want to revive an ancient relic or just use the rotary dial in another project.
One thing I do know is that voltages on telephone-lines can get quite high. If you want to revive it I'd
first study the techniques completely to avoid blowing up the arduino, getting problems with your phone company or anything else that can happen with high voltages.

I took your advice and looked up more into it it looks like the green wire is the GND the red wire is where it's alimented and the yellow wire pops up electricity when i dial...now the problem is where do i need to put resistors ?

I came up with these values using a volt meter but i don't know how in the world works i just putted it in DC mode at 10 V...

It's a mess in my head...please help!

Btw when i dial 0 the electricty passes 10 times to the yellow wire ...

In principle you don't need any resistor, you can use the internal pull-up from the Arduino. Look at the tutorials for digital input with simple switches. Your rotary dial can be treated just like a simple switch. If you want to use your own pull-up or pull-down resistor, any value between 1kOhm and 20kOhm will do.

Korman

Aha, one step further !

There is an example in the Arduino-Ide to read a switch and it tells you how to use a resistor
as pull down.

In the example a push-button is used as switch. By the description given you should use the red and yellow
wire of the dialling switch and use those instead. No other external voltages are needed, 10 volt would be too much for an arduino and I guess you don't need the red wire (once more, I know little about telephones).

In the example a 10 Kilo ohm resistor is used as pull down. It ties the input-pin to ground resulting in an
0 or Low when read while the switch is open and 1 or High when the switch is closed.
10K is a good value for a pull-up/down, but any value between 3300 and 25000 will probably do the trick.

Unfortunately the sketch given won't give you the number dialled, but rather a bunch of Zeros and ones.
The sketch will continuously check and report the state of the switch.
While dialling a 0 for example, the rotary disk will slowly (in terms of arduino-speed) open and close
the switch 10 times. I don't know the exact numbers, should it take 1 second before the disk completely returned and a digit is dialled, opening and closing the switch will take about 0.1 second.

That's an eternity for the arduino and the output will there for be something like this :
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
....... etc

By checking for a change instead of just printing the status of the switch, it should be possible to get something like this :

0
1
0
1
0

In this example the switch is closed 2 times and you probably dialled 2.
One thing I don't know is how the switch functions, the output may... as well be reversed, resulting in :
1
0
1
0
1
if you dial 2.

Next you'll need to write a sketch that translates the number of changes into numbers. You probably
also will need to a timeout routine to see when the rotary dial has returned to it's initial state.

It will take some thinking to get it working ;), but getting it done gives lots of joy.

One additional hint. These dials were constructed to give you impulses of even length, but you might get bouncing. So check you how long an impulse is and discard any impulses that aren't closed at least half as long. If you get an open twice as long as the usual time between impulses, consider the number done.

Korman

You'll need to find the wires to the switch, why there are 3 wires instead of two, I unfortunately don't know.

You will probably find that the third wire is connected to a switch that is closed for the entire time that the dial is not at its resting state or for the entire time that the dial is returning to that state after having been moved. It is used to short out the earpiece thus muting it while the pulses are being generated. I guess that by divulging this information I am giving away my age.

Don

on u.s. phones the 0 is 10 pulses, I dont even remember #* though...

Just a tease to hint at how the manual rotary dial works on the phone line. Phones have a 'hang up' switch which when the phone handset is replaced back onto the main phone body, places the local phone loop in the 'on hook' condition. During a on-hook condition there is no DC current path through the local 2 wire phone loop connecting the phone to the local telephone switching center. There is a AC path during that state that allows a 90vac 20Hz 'ring current' to power the bell in the telephone when an incoming call is avalible. Once the handset is taken off the phone the line switches to a DC current path (representing about a 600ohms load onto the line), this is called the 'off-hook' condition. So when the rotary dial is first moved from the desired number finger position and rotated to the finger stop, there is one contact that keeps the loop in the 'off-hook' condition by keeping it's contacts closed. When the finger is released that contact opens and another contacts opens and closes to create pulses of a precise timing for the number that was selected, thus dialing the digit five would create five pulses of on-hook/off-hook switch contacts that the local switching center would decode as the number five.

So did you know one can dial a number by not using the rotary dial or push buttons on touch-tone phone? One just lifts the handset and waits for the dial tone, and then using your finger just pulse the hang-up switch with the proper number of pulses, at the proper rate for each digit desired with the proper somewhat longer delay time between each desired digit, until the complete number is sent out.

So that can give you a simple hint that the arduino can be made to dial a phone number simply by interfacing to the phone line with a simple relay switch contact.

Not sure that all land-line phone companies world wide still support pulse dialing, but they do here in the USA. Interesting history, when touch-tone phone first made their introduction here in the early 60s, it was a extra cost option on your phone service (don't know if that is still the case or not, probably not) so even to this day when you buy a land-line phone at a store it most likely has a somewhat hidden obscure switch somewhere labeled tone/pulse, so that if a specific land-line didn't support touch-tone service it will use off-hook/on-hook switching method to dial the number.

Lefty

I dont even remember #* though...

The # and * 'digits' are not supported in the pulse dialing method, just the touch-tone method.

Lefty

For what it is worth, here is a schematic of a typical rotary phone:
http://www.freeinfosociety.com/electronics/schemview.php?id=1276

bvbernard:
For what it is worth, here is a schematic of a typical rotary phone:
http://www.freeinfosociety.com/electronics/schemview.php?id=1276

Nice, and the shown S1 and S2 contacts are the two contacts seen in the OP's picture of his rotary dialer assembly.

So that can give you a simple hint that the arduino can be made to dial a phone number simply by interfacing to the phone line with a simple relay switch contact.

We did this as a laboratory exercise on the old MMD1 microprocessor trainer. It used an 8080 processor and had a grand total of 256 bytes of RAM (that's bytes, without any prefix) for the program code.

Don

floresta:
We did this as a laboratory exercise on the old MMD1 microprocessor trainer. It used an 8080 processor and had a grand total of 256 bytes of RAM (that's bytes, without any prefix) for the program code.

And you try to tell that to the kids of today, and they won't believe you!</four Yorkshiremen> :wink:

Not sure that all land-line phone companies world wide still support pulse dialing, but they do here in the USA.

My phone company support pulse dialing, I have to pay extra for "Touch Tone".

In Canada, the phone system is the same as in the US. Both country share the same standard. Just like the electrity system and the road system.