Радио-маяк на основе Arduino. Подключаем антенну (провод длиною 15 метров из окна к дереву «стреляет» до 1 км) к цифровому выводу D9, заливаем скетч и Arduino начинает выдавать в эфир телеграфом сообщение «VVV CQ CQ CQ DX DE BEACON BAND 40M 8000KHZ» на основной частоте 8 МГц. Так как перед антенной нет полосового фильтра, то сигнал будет слышен на высших гармониках, а это: 16, 24, 32 МГц и так далее, вплоть до УКВ диапазона и чуть выше. Мощность такого маяка составляет единицы миливатт. Автономно работающий маяк, позволяет оценить прохождение радиоволн в конкретное время суток, отметить точные азимуты на корреспондентов, для последующего использования, в частности в соревнованиях. Маячок был опробован, показал хорошую работу, красивый и чистый сигнал. Скетч подойдёт для любой платы Arduino:
unsigned char idx = 255;
for (unsigned char i = 0; i < abc_size; i++)
if (abc[i].letter == l)
{
idx = i;
break;
}
if (idx == 255) return;
const char *s = abc[idx].sign;
for (unsigned char c = 0; s[c] != 0; c++)
{
char q = s[c];
DDRB |= 1<<1;
digitalWrite(13, HIGH); // set the LED on
if (q == '.') delay(point_time);
else delay(point_time * 3);
DDRB &= ~(1<<1);
digitalWrite(13, LOW); // set the LED off
delay(point_time);
}
delay(point_time * 2);
}
void loop()
{
for (int n = 0; message[n] != 0; n++)
send_letter(message[n]);
delay(2000);
}
В следующем скетче, можно легко менять частоту передачи из предложенных 15-ти вариантов. В отличии от предыдущего маячка, этот не выдаёт сообщение, а только повторяющийся прерывистый сигнал:
/*
The 16 MHz clock is divided by 10 (that is, 1.6 MHz) and that is used to toggle pin 9 at that rate,
giving a frequency of 800 KHz, since one toggle turns the output on, and second toggle turns it off.
If you hold the Arduino near an AM radio tuned to around 800 KHz you should hear a hissing toggling on
and off (like Morse code) as the carrier is turned on and off for 0.5 / 0.3 second intervals.
*/
const byte ANTENNA = 9;
void setup()
{
// set up Timer 1
TCCR1A = bit (COM1A0); // toggle OC1A on Compare Match
TCCR1B = bit (WGM12) | bit (CS10); // CTC, no prescaler
OCR1A = 1; // compare A register value to 10 (zero relative)
}
/*
The OCR1A variable is related to the frequency.
The OCR1A variable is one less than the actual divisor.
OCR1A - Frequency
15 - 500 khz
14 - ~530 khz
13 - ~570 khz
12 - ~610 khz
11 - ~670 khz
10 - ~730 khz
9 - 800 khz
8 - ~890 khz
7 - 1000 khz
6 - ~1140 khz
5 - ~1330 khz
4 - 1600 khz
3 - 2000 khz
2 - ~2670 khz
1 - 4000 khz
0 - 8000 khz *would not recommend this setting
The formula is (16÷(OCR1A+1)÷2)×1000 = frequency in khz
*/
Конкретно этот маяк выставлен на основную 4 МГц и его высшие гармоники чередуются с частотой 4 МГц, то есть сигнал слышен на 8, 12, 16, 20, 24, 28 МГц и так далее, до УКВ диапазона.