| Ваш IP: 3.235.29.190 | Online(77) - гости: 59, боты: 18 | Загрузка сервера: 1.1 ::::::::::::

FM приемник на TEA5767 (Arduino)

ИМС TEA5767 производимая компанией NXP применяется для конструирования низковольтных FM-радио тюнеров. В составеTEA5767 имеются внутренние цепи выделения промежуточной частоты и демодуляции принимаемого сигнала, что позволяет обходиться минимальным набором внешних компонентов.

Технические параметры TEA5767:

  • Напряжение питания от 2,5 до  5 В
  • Потребляемый ток при Uпит = 5 В 12,8 мА
  • Чувствительность 2 мкВ
  • Отношение сигнал/шум  54 дБ
  • Разделение между стереоканалами 24 дБ
  • Коэффициент гармоник 0,4 %
  • Диапазон принимаемых частот от 76 МГц до 108 МГц
  • Шины управления: I2C или 3-х проводная
  • Функция автоматической настройки на принимаемые радиостанции
  • Автоматическое стереодекодирование принятого сигнала

Радио модуль TEA5767 управляется всего двумя кнопками «+» и «-«, которые используются для поиска необходимой станции. Через 10 секунд после не активности кнопок, частота выбранного канала сохраняется в энергонезависимой памяти.

Библиотека — TEA5767.zip

#include <TEA5767.h>
#include <Wire.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>
 
TEA5767 Radio;
LiquidCrystal lcd(7, 6, 2, 3, 4, 5);
 
  unsigned long last_pressed,time;
  unsigned char buf[5];
  int stereo,signal_level,search_mode = 0,search_direction,i,f_h,f_l,f,w;
  double current_freq;
  float f_new = (EEPROM.read(0)*256 +  EEPROM.read(1));
  byte a1[8]={0b00000,0b00000,0b00000,0b00000,0b00000,0b00000,0b00000,0b11111};
  byte a2[8]={0b00000,0b00000,0b00000,0b00000,0b00000,0b00000,0b11111,0b11111};
  byte a3[8]={0b00000,0b00000,0b00000,0b00000,0b00000,0b11111,0b11111,0b11111};
  byte a4[8]={0b00000,0b00000,0b00000,0b00000,0b11111,0b11111,0b11111,0b11111};
  byte a5[8]={0b00000,0b00000,0b00000,0b11111,0b11111,0b11111,0b11111,0b11111};
  byte a6[8]={0b00000,0b00000,0b11111,0b11111,0b11111,0b11111,0b11111,0b11111};
  byte a7[8]={0b00000,0b11111,0b11111,0b11111,0b11111,0b11111,0b11111,0b11111};
  byte a8[8]={0b11111,0b11111,0b11111,0b11111,0b11111,0b11111,0b11111,0b11111};
 
void setup() { Serial.begin(9600); 
  Wire.begin();
  Radio.init();
  Radio.set_frequency(f_new/10); 
  Serial.begin(9600);
  lcd.begin(16,2);
  lcd.clear();
  pinMode(12,INPUT);
  pinMode(11,INPUT);
  lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);lcd.createChar(3,a4);lcd.createChar(4,a5);lcd.createChar(5,a6);lcd.createChar(6,a7);lcd.createChar(7,a8);
}
 
void loop() {
  if (Radio.read_status(buf) == 1) {
    current_freq =  floor (Radio.frequency_available (buf) / 100000 + .5) / 10;
    stereo = Radio.stereo(buf);
    signal_level = Radio.signal_level(buf);
    lcd.setCursor(0,0);
    lcd.print("FM "); lcd.print(current_freq);lcd.print(" MHz ");
    lcd.setCursor(0,1);
    if (stereo) lcd.print("STEREO "); else lcd.print("MONO  ");
    for(i=0;i<8;i++){if(signal_level>=8+i){lcd.setCursor(8+i,1);lcd.write((uint8_t)i);}}
}
 
  if (search_mode==1){if(Radio.process_search(buf, search_direction)==1){search_mode = 0;}}
 
  if (digitalRead(11)==HIGH) { 
    search_mode = 1;time=millis();w=1;
    search_direction = TEA5767_SEARCH_DIR_UP;
    Radio.search_up(buf);
    delay(200);
  }
 
  if (digitalRead(12)==HIGH) {
    search_mode = 1;time=millis();w=1;
    search_direction = TEA5767_SEARCH_DIR_DOWN;
    Radio.search_down(buf);
    delay(200);
  } 
  f = current_freq*10;
  f_h = highByte(f);f_l = lowByte(f);
  if(millis()-time>10000&&w==1){w=0; EEPROM.update(0,f_h);EEPROM.update(1,f_l);}
  delay(50);if(search_mode==1){lcd.clear();}
}

Комментарии

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • LM3915 — 10-и разрядный индикатор уровня

    LM3915 — 10-и разрядный индикатор уровня

    На рисунке показана схема простого десятиразрядного индикатора уровней. Основа схемы ИМС LM3915, напряжение питания от 5 до 20В, при напряжении питания 5В стабилизатор 7805 из схемы можно исключить. Устройство подключается непосредственно к линейному выходу.Подробнее...
  • Светодиодный драйвер на 1Вт (Uпит=1,5В)

    Благодаря использованию микросхемы ZXSC310 и нескольким элементам можно собрать светодиодный драйвер на 1Вт. На рисунке показана схема 1Вт светодиодного драйвера, схема работает от батарейки 1,5В. Ток нагрузки более 300мА. ZXSC310Подробнее...
  • Простой УКВ-ЧМ приемник на ТА2003Р

    Хар-ки: Диапазон принимаемых частот от 88 до 108 МГц Чувствительность при соотношении сигнал\шум 26дБ не менее 5 мкВ Частотный спектр ЗЧ сигнала 30…16000Гц Напряжение питания 2…6В Входной контур отсутствует, сигнал через разделительный конденсатор С1 поступает на вход УРЧ микросхемы ТА2003Р, УРЧ резонансный, он нагружен на контур L1C9C2VD1, который перестраивается в …Подробнее...
  • Простой сенсорный выключатель на NE555

    Простой сенсорный выключатель на NE555

    NE555 — универсальный таймер — устройство для формирования (генерации) одиночных и повторяющихся импульсов со стабильными временными характеристиками. Представляет собой асинхронный RS-триггер со специфическими порогами входов, точно заданными аналоговыми компараторами и встроенным делителем напряжения (прецизионный триггер Шмитта с RS-триггером). Применяется для построения различных генераторов, модуляторов, реле времени, пороговых устройств и прочих …Подробнее...
  • Генератор на MAX038

    Генератор на MAX038

    Простой и достаточно функциональный генератор может быть создан на базе микросхемы МАХ038. Выходная частота генератора может быть от 0,1 Гц до 20 МГц. Так же микросхема может генерировать сигнал синусоидальной, прямоугольной или треугольной формы. max038Подробнее...