Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2

ТЕМА: CW BEACON скетч

CW BEACON скетч 23 Май 2016 21:34 #31395

  • RN4R
  • ( Пользователь )
  • RN4R аватар
  • Сейчас на сайте
  • Сообщений: 513
  • Репутация: 86
Ниже по тексту готовый скетч для маяка, лежит в свободном доступе и взят отсюда www.m0pzt.com/arduino/
Выкладываю что бы долго не искали те кому это интересно и может пригодится. В этом деле я чайник и напишу только то что я сам понял и делал с этим кодом.

int MorseLEDPin = 13; это строка в коде означает что выход ключевания на 13 цифровом пине, можно подать на базу кт-315 через резистор 1 ком, эммитер на массу, с коллектора уже непосредственно к гнезду "ключ" например в том же PIXIE.
int MorseTonePin = 5; выход для самоконтроля на пищалку, пин 5, я поставил капсуль на 120 ом и довольно громко пикает.
int MorseToneFreq = 700; Тон самоконтроля, поменял на 600 герц стало комфортнее.
int MorseWPM = 16; Скорость ключевания, я выставил 20 wpm
delay(5000); В самом конце кода, этим значением выставляется пауза между передачами тоесть сообщениями, в данном случае 5000 миллисекунд тоесть пауза 5 секунд, у меня выставлено 60000 тоесть 1 минута.
#define strBeacondID "M0PZT JO01FS PWR 1W" А тут можно текст передачи поменять на свой, позывной, локатор и.т.д
Код что находится ниже копируем вставляем в программу ардуино, редактируем под себя и загружаем на плату ардуино.
Написал все это для совсем начинающих (вроде меня) которые хотят познакомится с ардуино и применить в радиолюбительстве.



// Simple CW Beacon
// by Charlie Davy M0PZT
// 23rd December 2014

int pinPTT = 4;
int MorseLEDPin = 13;
int MorseTonePin = 5;
int MorseToneFreq = 700;
int MorseWPM = 16;

// Declare variables...
#define strBeacondID "M0PZT JO01FS PWR 1W"

// Bung Morse into an array
char* MorseCodeCharacters[] = {
"A", ".-",
"B","-...",
"C","-.-.",
"D","-..",
"E",".",
"F","..-.",
"G","--.",
"H","....",
"I","..",
"J",".---",
"K","-.-",
"L",".-..",
"M","--",
"N","-.",
"O","---",
"P",".--.",
"Q","--.-",
"R",".-.",
"S","...",
"T","-",
"U","..-",
"V","...-",
"W",".--",
"X","-..-",
"Y","-.--",
"Z","--..",
"0","
",
"1",".----",
"2","..---",
"3","...--",
"4","....-",
"5",".....",
"6","-....",
"7","--...",
"8","---..",
"9","----.",
"/","-..-.",
"*","-.-.-",
".",".-.-.",
"&","...-.-",
" "," "
};

//


void setup() {
Serial.begin(9600);
pinMode(pinPTT, OUTPUT);
pinMode(MorseLEDPin, OUTPUT);
pinMode(MorseTonePin, OUTPUT);
Serial.println("M0PZT CW Beacon - Welcome"); Serial.println();
}

void TransmitMorse(String MorseString, int MorseWPM,int MorseToneFreq) {

Serial.print("Message: ");
Serial.println(MorseString);

int CWdot = 1200 / MorseWPM;
int CWdash = (1200 / MorseWPM)*3;
int istr;
for (istr=0; istr < MorseString.length(); istr++) {
String currentchar = MorseString.substring(istr,istr+1);
int ichar = 0;
while(ichar < sizeof(MorseCodeCharacters)) {
String currentletter = MorseCodeCharacters[ichar]; // letter
String currentcode = MorseCodeCharacters[ichar+1]; // corresponding morse code
if (currentletter.equalsIgnoreCase(currentchar)) {
int icp=0;
for (icp=0;icp < currentcode.length(); icp++) {
// Transmit Dit
if (currentcode.substring(icp,icp+1).equalsIgnoreCase(".")) {
digitalWrite(MorseLEDPin, HIGH);
tone(MorseTonePin, MorseToneFreq);
delay(CWdot);
digitalWrite(MorseLEDPin, LOW);
noTone(MorseTonePin);
delay(CWdot);
}
// Transmit Dah
else if (currentcode.substring(icp,icp+1).equalsIgnoreCase("-")) {
digitalWrite(MorseLEDPin, HIGH);
tone(MorseTonePin, MorseToneFreq);
delay(CWdash);
digitalWrite(MorseLEDPin, LOW);
noTone(MorseTonePin);
delay(CWdot);
}
else if (currentcode.substring(icp,icp+1).equalsIgnoreCase(" ")) {
delay(CWdot*3);
};
}
}
ichar=ichar+2;
}
delay(CWdot*3);
}
delay(CWdot*7);
}

void loop() {
digitalWrite(pinPTT, HIGH);
TransmitMorse(strBeacondID, MorseWPM, MorseToneFreq);
digitalWrite(pinPTT, LOW);
delay(5000);
}
Администратор запретил публиковать записи.

CW BEACON скетч 24 Май 2016 14:25 #31398

  • R0JJ
  • ( Посетитель )
  • R0JJ аватар
Огромное мерси. Тоже пока вникаю с нуля, да и плату arduino nano v3 только сегодня китаец отправил.
Получу, буду прикручивать..
Администратор запретил публиковать записи.

CW BEACON скетч 24 Май 2016 14:45 #31399

  • evgeny.zaryanov
  • ( Пользователь )
  • evgeny.zaryanov аватар
  • Вне сайта
  • Сообщений: 264
  • Репутация: 21
R0JJ пишет:
Огромное мерси. Тоже пока вникаю с нуля, да и плату arduino nano v3 только сегодня китаец отправил.
Получу, буду прикручивать..

Добрый день!
Попробуйте вот эту библиотеку, там все проще и сам скетч меньше, функции все те же, массивы спрятаны в либу, по этому не будут отвлекать.

Распакуете архив и папку положите в директорию libaries перезагрузите IDE и все.. вставите туда этот скетч:

#include <morse.h>

#define PIN_STATUS 13

void setup()
{
}

void loop()
{
LEDMorseSender cqSender(PIN_STATUS);
cqSender.setup();
cqSender.setWPM(25);
cqSender.setMessage(String("cq de ub0agx beacon"));
cqSender.sendBlocking();
delay(1000);
digitalWrite(13, HIGH);
delay(3000);
digitalWrite(13, LOW);
delay(15000);

}

будут вопросы пишите!
Вложения:
Администратор запретил публиковать записи.

CW BEACON скетч 24 Май 2016 15:56 #31401

  • rk3fw
  • ( Пользователь )
  • rk3fw аватар
  • Вне сайта
  • Сообщений: 902
  • Репутация: 58
не досмотрел
Последнее редактирование: 24 Май 2016 15:57 от rk3fw.
Администратор запретил публиковать записи.

CW BEACON скетч 24 Май 2016 17:18 #31402

  • RN4R
  • ( Пользователь )
  • RN4R аватар
  • Сейчас на сайте
  • Сообщений: 513
  • Репутация: 86
rk3fw пишет:
не досмотрел
Это вы о чем?
Администратор запретил публиковать записи.

CW BEACON скетч 25 Май 2016 10:44 #31407

  • rk3fw
  • ( Пользователь )
  • rk3fw аватар
  • Вне сайта
  • Сообщений: 902
  • Репутация: 58
о библиотеке.

Такую прошивку лучше на С делать. Она будет примерно на 2 кБ меньше и, скорее всего, позволит более мелкую и дешевую ардуину применить.
Администратор запретил публиковать записи.

CW BEACON скетч 25 Май 2016 10:54 #31408

  • R1AIT
  • ( Пользователь )
  • R1AIT аватар
  • Вне сайта
  • Сообщений: 448
  • Репутация: 30
rk3fw пишет:
Она будет примерно на 2 кБ меньше и, скорее всего, позволит более мелкую и дешевую ардуину применить.
Какую? При цене 88руб. за Pro mini, на которой все это будет успешно работать, есть ли что то готовое дешевле? А если не готовое, то стоит ли оно того? Как вариант, cw ключ от K3NG тоже имеет режим маяка. Есть и готовый скетч и инструкция по настройке.
Последнее редактирование: 25 Май 2016 10:59 от R1AIT.
Администратор запретил публиковать записи.

CW BEACON скетч 25 Май 2016 12:23 #31409

  • RN4R
  • ( Пользователь )
  • RN4R аватар
  • Сейчас на сайте
  • Сообщений: 513
  • Репутация: 86
RA1AIT пишет:
Как вариант, cw ключ от K3NG тоже имеет режим маяка. Есть и готовый скетч и инструкция по настройке.
Вы бы выложили этот скетч сюда, а то на том сайте черт ногу сломит где что, и краткую инструкцию по настройке своими словами как говорится. Уверен поможете не только мне.
Последнее редактирование: 25 Май 2016 12:24 от RN4R.
Администратор запретил публиковать записи.

CW BEACON скетч 25 Май 2016 13:38 #31411

  • R1AIT
  • ( Пользователь )
  • R1AIT аватар
  • Вне сайта
  • Сообщений: 448
  • Репутация: 30
ra4ppi пишет:
RA1AIT пишет:
Как вариант, cw ключ от K3NG тоже имеет режим маяка. Есть и готовый скетч и инструкция по настройке.
Вы бы выложили этот скетч сюда, а то на том сайте черт ногу сломит где что, и краткую инструкцию по настройке своими словами как говорится. Уверен поможете не только мне.
Вот архив со всеми файлами. Написано, что если хочется режим маяка сразу при включении, то нужно 2 ногу посадить на землю. Что при этом будет пищать, я пока не понял, может из памяти что, т.е. нужно записать сначала. С маяком мне пока некогда разбираться, пока использую чисто как ключ.
Вложения:
Администратор запретил публиковать записи.

CW BEACON скетч 25 Май 2016 15:59 #31413

  • rk3fw
  • ( Пользователь )
  • rk3fw аватар
  • Вне сайта
  • Сообщений: 902
  • Репутация: 58
RA1AIT пишет:
При цене 88руб. за Pro mini

И где такое счастье за такие деньги?
Администратор запретил публиковать записи.
  • Страница:
  • 1
  • 2
Модераторы: UU7JF, UT5LP