Радиоприемник ФМ 88-108 МГц /Стимпанк/

Обсуждение материалов с сайта MYQSO.RU
Правила форума
В темах раздела разрешается обсуждать только материалы с MYQSO.RU
serega3914
Администратор
Сообщений: 27
Зарегистрирован: 06 фев 2016, 15:27

Радиоприемник ФМ 88-108 МГц /Стимпанк/

Сообщение serega3914 » 08 фев 2016, 07:39


Sponsor
 

serega3914
Администратор
Сообщений: 27
Зарегистрирован: 06 фев 2016, 15:27

Re: Радиоприемник ФМ 88-108 МГц /Стимпанк/

Сообщение serega3914 » 08 фев 2016, 07:49

:) стимпанком (steampunk) " в народе " считают все на что нанесли медную краску и приклеили пару шестерней :D . Для меню в первую очередь важна функциональность агрегата. Если в нем есть шестерня то она должна функционировать .

ra2fdl
Сообщений: 25
Зарегистрирован: 06 фев 2016, 15:58

Re: Радиоприемник ФМ 88-108 МГц /Стимпанк/

Сообщение ra2fdl » 13 фев 2016, 18:11

Код (скетч) используемый в проекте

//***********************************
//#define ENCODER_DO_NOT_USE_INTERRUPTS // енкодер не использует прерывания.
//#define ENCODER_OPTIMIZE_INTERRUPTS // обе ноги на прерываниях.
#define ENCODER_USE_INTERRUPTS // одна нога на прерывании.

#include <Encoder.h>
#include <LiquidCrystal.h>
#include <Wire.h>

#define TEA5767_mute_left_right 0x06
#define TEA5767_MUTE_FULL 0x80
#define TEA5767_ADC_LEVEL_MASK 0xF0
#define TEA5767_STEREO_MASK 0x80

LiquidCrystal lcd(12, 11, 7, 6, 5, 4);

long previousMillis = 0;
int val=0;
int n; // переменная, хранящая значение энкодера
Encoder Enc_00(2, 9); // объявляем, куда подключен энкодер Enc_00.
int old_frequency=-1;
int frequency=10260;
byte old_stereo=0;
byte stereo=1;
byte old_signal_level=1;
byte signal_level=0;
unsigned long last_pressed;
//***************************
void setup(void) {
Wire.begin();
TEA5767_set_frequency();
lcd.begin(16, 2);
n = 1011; // начало отсчёта энкодера.
Enc_00.write(n*4);
set_text(4,0,value_to_string(frequency));
//set_text(3,2,"TEHNARI.RU");
}

//**************************
void loop() {

if(frequency!=old_frequency){
set_text(3,0,value_to_string(frequency));
set_text(frequency>=10000?9:8,0," MHz ");
old_frequency=frequency;
}

TEA5767_read_data();

if(old_stereo!=stereo){
// set_text(0,0,stereo?"S":"M");
old_stereo=stereo;
}

if(old_signal_level!=signal_level){
set_text(0,1,String((int)signal_level));
set_text(signal_level>=10?2:1,1," ");
old_signal_level=signal_level;
}

//encoder
int nn = Enc_00.read()/4;
if (nn != n) {
n = nn;
}

if(frequency<8750) Enc_00.write(1080*4);
if(frequency>10800) Enc_00.write(875*4);
frequency=n*10;
TEA5767_set_frequency();
delay(50);

}

unsigned char frequencyH = 0;
unsigned char frequencyL = 0;
unsigned int frequencyB;
unsigned char TEA5767_buffer[5]={0x00,0x00,0xB0,0x10,0x00};
void TEA5767_write_data(byte data_size){
delay(50);
Wire.beginTransmission(0x60);
for(byte i=0;i<data_size;i++)
Wire.write(TEA5767_buffer[i]);
Wire.endTransmission();
delay(50);
}


void TEA5767_set_frequency()
{
frequencyB = 4 * (frequency * 10000 + 225000) / 32768;
TEA5767_buffer[0] = frequencyB >> 8;
//if(mute)TEA5767_buffer[0] |= TEA5767_MUTE_FULL;
TEA5767_buffer[1] = frequencyB & 0XFF;
TEA5767_write_data(5);
}

int TEA5767_read_data() {
unsigned char buf[5];
memset (buf, 0, 5);
Wire.requestFrom (0x60, 5);
if (Wire.available ()) {
for (int i = 0; i < 5; i++) {
buf[i] = Wire.read ();
}

stereo = (buf[2] & TEA5767_STEREO_MASK)?1:0;
signal_level = ((buf[3] & TEA5767_ADC_LEVEL_MASK) >> 4);
return 1;
}
else return 0;
}

void set_text(int x,int y,String text){
lcd.setCursor(x,y);
lcd.print(text);
}


String value_to_string(int value){
String value_string = String(value / 100);
value_string = value_string + '.' + ((value%100<10)?"0":"") + (value % 100);
return value_string;
}
*****************************

ra2fdl
Сообщений: 25
Зарегистрирован: 06 фев 2016, 15:58

Re: Радиоприемник ФМ 88-108 МГц /Стимпанк/

Сообщение ra2fdl » 13 фев 2016, 18:17

Извините длинновато получилось.
На всякий пожарный используемая библиотека энкодера
Encoder.rar
Библиотека энкодера
(11.07 KiB) Загружено 115 раз

ra2fdl
Сообщений: 25
Зарегистрирован: 06 фев 2016, 15:58

Re: Радиоприемник ФМ 88-108 МГц /Стимпанк/

Сообщение ra2fdl » 08 май 2016, 19:32

В процессе эксплуатации приемного устройства выявились определенные недостатки. Как же без них ;).
1. На короткую антенну плохо проходят некоторые станции.
2. Некоторые станции забивают ближе стоящие.
Собственно есть необходимость в перестраиваемых входные контурах.

Собственно напомню схему приемника.
СхемаПриемникаTEA5767.JPG
СхемаПриемникаTEA5767.JPG (99.46 KiB) 2021 просмотра


Антенна присоединяется к модулю где через конденсатор сигнал подается на ножку этой умной микросхемы TEA5767.
Думаю входную цепь сделать примерно вот так (см.вложение) варикапом будет управлять тот же контроллер что и приемником.
ВходВарикап.jpg
ВходВарикап.jpg (15.67 KiB) 2021 просмотра

serega3914
Администратор
Сообщений: 27
Зарегистрирован: 06 фев 2016, 15:27

Re: Радиоприемник ФМ 88-108 МГц /Стимпанк/

Сообщение serega3914 » 09 июл 2016, 20:10

Наткнулся в инете на описание лампового УКВ приемника
pic2.jpg
pic2.jpg (114.57 KiB) 1938 просмотра


RadioreceiverFM_640.jpg
RadioreceiverFM_640.jpg (107.1 KiB) 1938 просмотра


Интересная конструкция. Чешу репу. Зимой если будет свободное время можно попробовать сделать.


Вернуться в «Форум MYQSO.RU»

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

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