/* Простой телеграфный маяк, передаёт текст через равные интервалы времени для платы Arduino pro mini Atmega168 5V 16MHz Исходный код: Written by Nicola Salsotto IN3GJH https://github.com/NicoVarg99 Модификация сделана: UA6HJQ 26.11.2018 (добавлено управление радиостанцией) UA6HJQ 06.12.2020 (оптимизированна занимаемая память и код) подключение программатора: DTR <------------------> DTR TXD <------------------> RXD RXD <------------------> TXD VCC <------------------> VCC GND <------------------> GND */ #define SPEED (20) // скорость в WPM. #define INTERVAL (3) // интервал в минутах #define DOTLEN (1200/SPEED) #define DASHLEN (3*(1200/SPEED)) #define PAUSE (INTERVAL*60000) byte txPin=10; // управление PTT byte ledPin=13; // мигать встроенным светодиодом или подключить внешний на 13пин byte tonePin=5; // выход звука const int toneFreq=900; // частота звука (выбирайте между 600 - 1500Гц) void dash(); void dot(); void setup() { pinMode(ledPin, OUTPUT); pinMode(txPin, OUTPUT); } void loop() { sendMsg((char*)"CQ UA6HJQ UA6HJQ BEACON LN05XA K"); //текст маяка delay(PAUSE); } // ФОРМИРОВАНИЕ ТЕЛЕГРАФНОГО СИГНАЛА // void dash() { digitalWrite(ledPin, HIGH); tone(tonePin, toneFreq); delay(DASHLEN); digitalWrite(ledPin, LOW); noTone(tonePin); delay(DOTLEN); } void dot() { digitalWrite(ledPin, HIGH) ; tone(tonePin, toneFreq); delay(DOTLEN); digitalWrite(ledPin, LOW); noTone(tonePin); delay(DOTLEN); } void sendMsg(char *str) { int i; digitalWrite(txPin, HIGH); // включаем ptt tone(tonePin, 21000); // включаем VOX delay(500); // tx delay noTone(tonePin); for(i=0;i