5 tone select call generator and posible decoder

Hello, guys im a HAM radio user my call sign is YO3IGH and im looking for a way to generate 5 tones with a specific space between them 20ms and the tones with diferent frecvency value with the duration of 20ms aswell(EEA standard). This is caled 5tone signaling and is used in two way radios to identify radios, it wool be ideal to be able to decode them aswell but for now i wood be glad to be able to generate them. This is some info about the select five systems http://en.wikipedia.org/wiki/Selcall. Please help me if you know a way to do this or a similar project with Arduino. Thank you verry much :)

there is a tone library for the arduino

http://code.google.com/p/rogue-code/wiki/ToneLibraryDocumentation

Thanks i seen this a while back, but there is no tone i can use , it wold be so nise if i cold alter the library with my tones (the select five standard tones). :wink: but im not to good with software, im kind of new to arduino, i know hardware very good but software i`m a nube ;D

It should be fairly easy to use the tone library; based on your link:

http://en.wikipedia.org/wiki/Selcall

And the information for the tone library:

http://arduino.cc/en/Reference/Tone

If you wanted to generate the tone for EIA Digit 7 (1587 Hz) for 30ms, you would write in your code:

tone(outputPin, 1587, 30);

Understand? Its really basic; there'll probably be more effort involved in the hardware interfacing...

:)

Thanks for the idea Cr0sh I did this after looking at the DTMF demo from the library , I have a small speacher but to me it sounds about right. I have to check at work to see if the tones decode on a radio and see if the signals are the right frecvency.

Code:
// EEA (Single tone EEA standard) Demonstration

#include <Tone.h>

Tone freq1;

const int EEA_freq1 = {1124, 1275, 1640, 1981, 1540};

void setup()
{
Serial.begin(9600);
freq1.begin(13);

}

void playEEA(uint8_t numeric, long duration)
{
freq1.play(EEA_freq1[numeric], duration);

}

void loop()
{
int i;
uint8_t EEAid = {1,3,7,0,6};

for(i = 0; i < sizeof(EEAid); i ++)
{
Serial.print(EEAid*, 40);*

  • Serial.print(’ ');*
    _ playEEA(EEAid*, 40);_
    _
    delay(40);_
    _
    }*_

* Serial.println();*
* delay(4000);*
}
Schematic: http://h.imagehost.org/download/0547/speaker_schem