| Ваш IP: 18.232.147.215 | Online(44) - гости: 2, боты: 42 | Загрузка сервера: 2.09 ::::::::::::

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();}
}

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

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

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

  • УСИЛИТЕЛЬ НЧ НА ЧЕТЫРЕХ ТРАНЗИСТОРАХ

    На рис. а) изображена схема усилителя НЧ на четырех транзисторах. Оконечные транзисторы V5 и V6 в нем — германиевые средней мощности, что позволяет получить при сопротивлении нагрузки 8 Ом и напряжении питания 9 В номинальную мощность до 0,7 Вт. При повышении напряжения питания до 12 В выходная мощность достигает 1,5 …Подробнее...
  • Часы на КР145ИК1901 с индикаторами на светодиодах

    Схема часов на светодиодных индикаторах показана на рисунке. Управления производится на кнопках Т(время) К(коррекция) Ч(часы) М(минуты). Тактовая частота задается кв. резонатором Q1. Сигналы с сегментных выходов КР145ИК1901 — A-G поступают на входы транзисторов VT1-VT7, в коллекторной цепи которых включены светодиодные матрицы состоящей из индикаторов Н1-Н4, а вывод питания 14 используется …Подробнее...
  • ACS712 — датчик тока (Arduino)

    ACS712 — датчик тока (Arduino)

    Датчик ACS712 позволяет измерить постоянный и переменный ток, с достаточно большой точностью (погрешность измерения не более 1,5%), так же падение напряжение на датчике тока очень незначительное, так как сопротивление токопроводящей цепи не более 1,2 мОм. Датчик тока ACS712 выпускается на номиналы в ±5, ±10 и ±30 А, с чувствительностью 185 …Подробнее...
  • Автоматический выключатель освещения (12В)

    Автоматический выключатель освещения включает или выключает исполнительный элемент (реле) в зависимости от освещения. На рисунке показаны две схемы для положительной и отрицательной полярности напряжения питания. Уровень освещенности при котором срабатывает уст-во регулируется потенциометром Р1. Печатная плата одинаково подходит для разно полярных схем. Источник — http://electroschematics.comПодробнее...
  • EEPROM — работа с энергонезависимой памятью (Arduino)

    EEPROM — работа с энергонезависимой памятью (Arduino)

    Arduino UNO и NANO содержат 1024 байт EEPROM – энергонезависимой памяти, в которой можно хранить данные, которые будут доступны после отключения питания. В Arduino IDE по умолчанию уже имеется библиотека EEPROM которая позволяет проводить операции с энергонезависимой памятью. Память EEPROM обладает гарантированным жизненным циклом 100 000 операций записи/стирания. Время затраченное на одну операцию …Подробнее...