Текущее время: 19 мар 2024, 07:57

Калининград & ХОББИ

Занятие любимым хобби - это путь к счастливой жизни!

КВ приемник на Ардуино

Тут собраны схемы различных устройств сделанных на контроллерах Ардуино, Лазерный гравер на Ардуино, Металлоискатель на Ардуино, Метеостанция, Кодовый замок, и множество других устройств и изобретений
Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

КВ приемник на Ардуино

Сообщение -=dp=- » 23 июн 2016, 09:05

Коротковолновый приемник на Ардуино

В продолжение своего эксперимента по установлению дальней связи на коротких волнах наконец то дошла очередь до изготовления приемника на Ардуино.
Про изготовление радио маяка и КСВ метра для настройки антенны я уже писал в предыдущих темах.

Требуемые детали для изготовления КВ приемника на Ардуино.
Ардуино МЕГА (можно взять и более низкие версии типа УНО, НАНО)
Модуль DDS генератора на чипе AD9850
Модуль частотомера (по желанию, для индикации частоты можно так же применить LCD дисплей 1602 или LED индикатор 6 разрядов минимум)
Микросхема NE602AN
Микросхема операционного усилителя - LM386
Микросхема усилителя мощности TDA1552Q (можно обойтись и без нее, подключить наушники напрямую к выходу ОУ)
Кучка керамических конденсаторов, резисторов, пару дроселей, ну и кнопки со светодиодами


Вложения
ne602.jpg
Приемник на Ардуино
ne602.jpg (8.86 KiB) Просмотров: 24077
mega.jpg
Коротковолновый приемник на Ардуино
dds ad9850.jpg
КВ приемник на Ардуино

Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Re: КВ приемник на Ардуино

Сообщение -=dp=- » 23 июн 2016, 09:21

Приемник будет построен по следующей блок схеме

Выкладываю фотографии передней панели управления и индикации


Вложения
01.jpg
Приемник на короткие волны на Ардуино
03.jpg
приемник на Ардуино
Блок схема КВ приемника на Ардуино.jpg
КВ ППП на Ардуино

Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Re: КВ приемник на Ардуино

Сообщение -=dp=- » 23 июн 2016, 09:30

Приемник на Ардуино построен по схеме прямого преобразования.
На антенном входе приемника будут установлены диапазонные полосовые фильтры.
В качестве гетеродина применен цифровой синтезатор частоты (DDS генератор) на чипе AD 9850.
Для индикации частоты применен готовый модуль частотомера до 30 МГц.
Управление и индикация будет осуществлятся контроллером Ардуино МЕГА.
А еще я решил подключить для индикации звукового сигнала мини осциллограф на Ардуино УНО и цветном TFT 2,4 дисплее.
Ну это тоже опционально , можно и без него.
Так же на передней панели КВ приемника будет размещен индикатор мощности на светодиодах.



Схемы подключения блоков и модулей выложу немного позже, их надо еще подготовить и оформить в эл. виде.
Пока все схемы на кусках бумаги :)

Еще фотографии процесса изготовления приемника на Ардуино


Вложения
4.jpg
КВ приемник на Ардуино
5.jpg
КВ приемник на Ардуино
6.jpg
КВ приемник на Ардуино

Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Re: КВ приемник на Ардуино

Сообщение -=dp=- » 23 июн 2016, 09:50

Заснял и выложил первую часть видео про изготовление КВ приемника на Ардуино

https://youtu.be/GWDntadNg0Y



Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Re: КВ приемник на Ардуино

Сообщение -=dp=- » 23 июн 2016, 10:00

Видео- КВ приемник на Ардуино, часть 2.
Первый запуск.

https://youtu.be/peiOykMoM_0

В качестве антенны использовал кусок провода , около 5 м.



Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Re: КВ приемник на Ардуино

Сообщение -=dp=- » 24 июн 2016, 10:37

Закрепил верхнюю крышку.
Корпус кстати купил у барахольщиков на центральном рынке за 300 руб :D
А ведь в этом корпусе когда то был измерительный прибор - калибратор осциллографов :D
Но достался он мне почти пустой, только трансформатор и высохшие конденсаторы электролиты остались.

Еще фото коротковолнового приемника на Ардуино


Вложения
1.jpg
Радио на Ардуино
2.jpg
Радиоприемник на Ардуино
3.jpg
Коротковолновый приемник на Ардуино

 
Сообщений: 15
Зарегистрирован: 02 янв 2016, 16:11

Re: КВ приемник на Ардуино

Сообщение IROBOT » 13 ноя 2016, 06:57

А фильтры на входе-данные и как изготавливали можно выложить?



Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Re: КВ приемник на Ардуино

Сообщение -=dp=- » 13 ноя 2016, 10:35

IROBOT писал(а):А фильтры на входе-данные и как изготавливали можно выложить?



За основу ВЧ части я выбрал схему с прямым преобразованием на ВЧ миксере NE602AN и операционном усилителе LM386.

Повторяемость схемы отличная и нет никаких намоточных индуктивностей.

Входные фильтры для некоторых диапазонов я делал на заводских дроселях, выкладываю схемы входных ВЧ фильтров на диапазоны 40 и 80 М.

Так же, реализовал коммутацию ВЧ фильтров на РЕЛЕ и возможность обхода фильтров, чтоб можно было сравнивать качество принимаемого сигнала с фильтром и без него.


Вложения
NE602reciever.jpg
Схема всеволнового приемника прямого преобразования
40m.jpg
Схема ВЧ фильтра на диапазон 40 М
40m.jpg (7.33 KiB) Просмотров: 23467
80m.jpg
Схема ВЧ фильтра на диапазон 80 М
80m.jpg (10.83 KiB) Просмотров: 23467

 
Сообщений: 15
Зарегистрирован: 02 янв 2016, 16:11

Re: КВ приемник на Ардуино

Сообщение IROBOT » 13 ноя 2016, 12:02

Спасибо,приемная часть действительно,стала распостранненой в последнее время.DDS на ad очень теперь упрощает схему..



 
Сообщений: 15
Зарегистрирован: 02 янв 2016, 16:11

Re: КВ приемник на Ардуино

Сообщение IROBOT » 18 ноя 2016, 08:17

Подскажите пожалуйста,нашел вот такую схему генератора [url]
https://goo.gl/z8pgPw[/url].Возможно ли использовать в качестве генератора плавного диапазона?

Сообщение от модератора: все ссылки необходимо оформлять только с помощью сервиса GOO.GL
Прямые ссылки на сторонние ресурсы будут удаляться!



Аватар пользователя
 
Сообщений: 799
Зарегистрирован: 27 мар 2013, 22:12

Re: КВ приемник на Ардуино

Сообщение -=dp=- » 05 дек 2016, 20:50

Выкладываю скетч КВ приемника на Ардуино Мега и DDS генераторе AD9850

В скетче показано как реализовано плавное и быстрое изменение частоты генератора

Код: выделить все
//------dds-mega-reciever----------------------

int32_t freq=3500000; // freq 10000000=10mhz
int32_t freqcl=10000000;
int32_t freqcle=1;
int step=1;

 #define W_CLK 8       // Pin 8 - connect to AD9850 module word load clock pin (CLK)
 #define FQ_UD 9       // Pin 9 - connect to freq update pin (FQ)
 #define DATA 10       // Pin 10 - connect to serial data load pin (DATA)
 #define RESET 11      // Pin 11 - connect to reset pin (RST).
 #define pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); }
 
 // transfers a byte, a bit at a time, LSB first to the 9850 via serial DATA line
void tfr_byte(byte data)
{
  for (int i=0; i<8; i++, data>>=1) {
    digitalWrite(DATA, data & 0x01);
    pulseHigh(W_CLK);   //after each bit sent, CLK is pulsed high
  }
}
 
 // frequency calc from datasheet page 8 = <sys clock> * <frequency tuning word>/2^32
void sendFrequency(double frequency) {
  int32_t freq = frequency * 4294967295/125000000;  // note 125 MHz clock on 9850
  for (int b=0; b<4; b++, freq>>=8) {
    tfr_byte(freq & 0xFF);
  }
  tfr_byte(0x000);   // Final control byte, all 0 for 9850 chip
  pulseHigh(FQ_UD);  // Done!  Should see output
}
 
void setup() {
 // configure arduino data pins for output
  pinMode(FQ_UD, OUTPUT);
  pinMode(W_CLK, OUTPUT);
  pinMode(DATA, OUTPUT);
  pinMode(RESET, OUTPUT);
  pulseHigh(RESET);
  pulseHigh(W_CLK);
  pulseHigh(FQ_UD); 
//----band-filter---------------------
pinMode(14, OUTPUT); //20m
pinMode(15, OUTPUT); //40m
pinMode(16, OUTPUT); //80m
digitalWrite(16, LOW);
digitalWrite(14, LOW);
digitalWrite(15, LOW);

//----------button------------------
pinMode(22, INPUT);
pinMode(23, INPUT);
pinMode(24, INPUT);
pinMode(25, INPUT);
pinMode(26, INPUT);
pinMode(27, INPUT);
pinMode(28, INPUT);
pinMode(29, INPUT);
pinMode(30, INPUT);
//-----button-led--------------
pinMode(31, OUTPUT);
pinMode(32, OUTPUT);
pinMode(33, OUTPUT);
pinMode(34, OUTPUT);
pinMode(35, OUTPUT);
pinMode(36, OUTPUT);
pinMode(37, OUTPUT);
//---------volume-led--------------------------
pinMode(38, OUTPUT);
pinMode(39, OUTPUT);
pinMode(40, OUTPUT);
pinMode(41, OUTPUT);
pinMode(42, OUTPUT);
pinMode(43, OUTPUT);
pinMode(44, OUTPUT);
pinMode(45, OUTPUT);
pinMode(46, OUTPUT);
pinMode(47, OUTPUT);
//------------vkl-led-test-----------------------------
digitalWrite(31, HIGH);
digitalWrite(32, HIGH);
digitalWrite(33, HIGH);
digitalWrite(34, HIGH);
digitalWrite(35, HIGH);
digitalWrite(36, HIGH);
digitalWrite(37, HIGH);
//-----------vkl-volume-led-test---------------------
digitalWrite(38, HIGH);
digitalWrite(39, HIGH);
digitalWrite(40, HIGH);
digitalWrite(41, HIGH);
digitalWrite(42, HIGH);
digitalWrite(43, HIGH);
digitalWrite(44, HIGH);
digitalWrite(45, HIGH);
digitalWrite(46, HIGH);
digitalWrite(47, HIGH);
//---------------all-led-off---------------------------
delay(1000);
//------------vkl-led-test-----------------------------
digitalWrite(31, LOW);
digitalWrite(32, LOW);
digitalWrite(33, LOW);
digitalWrite(34, LOW);
digitalWrite(35, LOW);
digitalWrite(36, LOW);
digitalWrite(37, LOW);
//-----------vkl-volume-led-test---------------------
digitalWrite(38, LOW);
digitalWrite(39, LOW);
digitalWrite(40, LOW);
digitalWrite(41, LOW);
digitalWrite(42, LOW);
digitalWrite(43, LOW);
digitalWrite(44, LOW);
digitalWrite(45, LOW);
digitalWrite(46, LOW);
digitalWrite(47, LOW);
//---------setup--------------------------------------
digitalWrite(37, HIGH); 
digitalWrite(31, LOW);
digitalWrite(32, LOW);
digitalWrite(33, LOW);
digitalWrite(34, LOW);
digitalWrite(35, LOW);
digitalWrite(36, LOW);
step=1;

}
 
void loop() {
int but1 = digitalRead(22);
int but2 = digitalRead(23);
int but3 = digitalRead(24);
int but4 = digitalRead(25);
int but5 = digitalRead(26);
int but6 = digitalRead(27);
int but7 = digitalRead(28);
int but8 = digitalRead(29);
int but9 = digitalRead(30);
//----VOLUME-LED--------------------
int sensorValue = analogRead(A15);
if (sensorValue > 5) {digitalWrite(38, HIGH);  } else {digitalWrite(38, LOW); };
if (sensorValue > 10) {digitalWrite(39, HIGH);  } else {digitalWrite(39, LOW); };
if (sensorValue > 20) {digitalWrite(40, HIGH);  } else {digitalWrite(40, LOW); };
if (sensorValue > 30) {digitalWrite(41, HIGH);  } else {digitalWrite(41, LOW); };
if (sensorValue > 40) {digitalWrite(43, HIGH);  } else {digitalWrite(43, LOW); };
if (sensorValue > 45) {digitalWrite(42, HIGH);  } else {digitalWrite(42, LOW); };
if (sensorValue > 50) {digitalWrite(45, HIGH);  } else {digitalWrite(45, LOW); };
if (sensorValue > 55) {digitalWrite(44, HIGH);  } else {digitalWrite(44, LOW); };
if (sensorValue > 60) {digitalWrite(47, HIGH);  } else {digitalWrite(47, LOW); };
if (sensorValue > 65) {digitalWrite(46, HIGH);  } else {digitalWrite(46, LOW); };

//----------button-press-step----------------------------
if (but1 == HIGH) {
digitalWrite(31, HIGH); 
digitalWrite(32, LOW);
digitalWrite(33, LOW);
digitalWrite(34, LOW);
digitalWrite(35, LOW);
digitalWrite(36, LOW);
digitalWrite(37, LOW);
step=7;
};
if (but2 == HIGH) {
digitalWrite(32, HIGH); 
digitalWrite(31, LOW);
digitalWrite(33, LOW);
digitalWrite(34, LOW);
digitalWrite(35, LOW);
digitalWrite(36, LOW);
digitalWrite(37, LOW);
step=6;
} ;
if (but3 == HIGH) {
digitalWrite(33, HIGH); 
digitalWrite(31, LOW);
digitalWrite(32, LOW);
digitalWrite(34, LOW);
digitalWrite(35, LOW);
digitalWrite(36, LOW);
digitalWrite(37, LOW);
step=5;
} ;
if (but4 == HIGH) {
digitalWrite(34, HIGH); 
digitalWrite(31, LOW);
digitalWrite(32, LOW);
digitalWrite(33, LOW);
digitalWrite(35, LOW);
digitalWrite(36, LOW);
digitalWrite(37, LOW);
step=4;
} ;
if (but5 == HIGH) {
digitalWrite(35, HIGH); 
digitalWrite(31, LOW);
digitalWrite(32, LOW);
digitalWrite(33, LOW);
digitalWrite(34, LOW);
digitalWrite(36, LOW);
digitalWrite(37, LOW);
step=3;
} ;
if (but6 == HIGH) {
digitalWrite(36, HIGH); 
digitalWrite(31, LOW);
digitalWrite(32, LOW);
digitalWrite(33, LOW);
digitalWrite(34, LOW);
digitalWrite(35, LOW);
digitalWrite(37, LOW);
step=2;
} ;
if (but7 == HIGH) {
digitalWrite(37, HIGH); 
digitalWrite(31, LOW);
digitalWrite(32, LOW);
digitalWrite(33, LOW);
digitalWrite(34, LOW);
digitalWrite(35, LOW);
digitalWrite(36, LOW);
step=1;
} ;
//-------button-left-right--------------------------
if (but8 == HIGH) {
if (step==1){freq=freq+1;};
if (step==2){freq=freq+10;};
if (step==3){freq=freq+100;};
if (step==4){freq=freq+1000;};
if (step==5){freq=freq+10000;};
if (step==6){freq=freq+100000;};
if (step==7){freq=freq+1000000;};
};
if (but9 == HIGH) {
if (step==1){freq=freq-1;};
if (step==2){freq=freq-10;};
if (step==3){freq=freq-100;};
if (step==4){freq=freq-1000;};
if (step==5){freq=freq-10000;};
if (step==6){freq=freq-100000;};
if (step==7){freq=freq-1000000;};
  };
 
sendFrequency(freq); 
if (freq<10){freq=10;};
if (freq>30000000){freq=30000000;};
//------band-filter-switch-------------------------
if (freq<5000000) {
digitalWrite(16, HIGH);
digitalWrite(14, LOW);
digitalWrite(15, LOW);
};
if (freq>5000000) {
digitalWrite(14, HIGH);
digitalWrite(15, LOW);
digitalWrite(16, LOW);

};



}




 
Сообщений: 15
Зарегистрирован: 02 янв 2016, 16:11

Re: КВ приемник на Ардуино

Сообщение IROBOT » 06 дек 2016, 07:10

Нарыл вот такую схемку приемника-мне кажется избирательность получше будет


Вложения
RX SA612v2.1.GIF


Вернуться в Устройства на Ардуино

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3