Стоило всё описать детально и указать просто где взял.
Написал программу для радиомаяка на Ардуине Нано Александр R8JAG. А платки с ардуиной продаются на Алике за копейки. Такая же "схема" манипулятора используется здесь у меня на радиомаяке на 144,445 МГц.
Текстовка программы:
#define PIN_OUT 9 //деректива позволяет дать имя константе перед тем как ПО будет скомпилирована
#define DOT_MS 100 //Dot duration продолжительность точки
#define REPEAT_S 5 //Repeat period in seconds период повтора в секундах
//#define TONE_FREQ 600 //Tone frequency in HERZ uncomment to send tone Частота тона в HERZ раскомментирует отправку тона
String mes="HTHT HHTH HH TH THTH HTH THT TH HHHTT THHH TH HH THHT TTTTT HHHHH THH HTTH HTH"; //Message (T-doT H-dasH ' '-Pause sign P-pause between words) RA8JA
//#define SER_DEBUG //Uncomment for serial debug data Раскомментируйте последовательные данные отладки
#define DASH_MS DOT_MS*3
#define PAUSE_MS DOT_MS
#define PAUSE_SGN DOT_MS*3
#define PAUSE_WRD DOT_MS*7
int len;//Message length
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
// initialize digital pin PIN_OUT as an output.
pinMode(PIN_OUT, OUTPUT);
len=mes.length();
#ifdef SER_DEBUG
Serial.begin(9600);
Serial.print("Message len=");
Serial.println(len);
#endif
}
// the loop function runs over and over again forever
void loop() {
for (char i=0;i<len;i++) {
switch (mes.charAt(i)) {
case 'T':
#ifdef SER_DEBUG
Serial.println("Send DOT");
#endif
digitalWrite(LED_BUILTIN, HIGH);
#ifdef TONE_FREQ
tone(PIN_OUT,TONE_FREQ);
#else
digitalWrite(PIN_OUT, HIGH);
#endif
delay(DOT_MS);
break;
case 'H':
#ifdef SER_DEBUG
Serial.println("Send DASH");
#endif
digitalWrite(LED_BUILTIN, HIGH);
#ifdef TONE_FREQ
tone(PIN_OUT,TONE_FREQ);
#else
digitalWrite(PIN_OUT, HIGH);
#endif
delay(DASH_MS);
break;
case ' ':
#ifdef SER_DEBUG
Serial.println("PAUSE");
#endif
delay(PAUSE_SGN);
case 'P':
#ifdef SER_DEBUG
Serial.println("WORD");
#endif
delay(PAUSE_WRD);
break;
}
digitalWrite(LED_BUILTIN, LOW);
#ifdef TONE_FREQ
noTone(PIN_OUT);
#else
digitalWrite(PIN_OUT, LOW);
#endif
delay(PAUSE_MS);
}
#ifdef SER_DEBUG
Serial.print("Pause ");
Serial.print(REPEAT_S);
Serial.println(" seconds!");
#endif
delay(REPEAT_S*1000);//PAUSE BEFORE REPEAT
}
_ _ _ _ __
Может быть кому-то и пригодится. На самом деле текстовка программы простая, с одной стороны, но надыть иметь некоторый опыт в написании... Запрета от R8JAG на публикацию нет. Естественно необходимо учитывать при программировании платы Ардуины, а именно какой микропроцессор использован в Ардуине...