| Ваш IP: 34.204.191.0 | Online(48) - гости: 36, боты: 12 | Загрузка сервера: 0.32 ::::::::::::


Радио на Si4703 (Arduino)

Модуль Si4703 представляет собой FM-радиоприёмник (УКВ от 76 МГц до 108 МГц) с цифровым управлением (I2C) и функцией RDS. Так же модуль содержит маломощный усилитель мощности звуковой частоты TPA6111A2, позволяющий подключать наушники к модулю используя разъем 3,5 мм, при этом подключенные наушники используются в качестве антенны.

Используя платформу Arduino можно собрать простое радио с функцией RDS. Ниже представлен скетч который позволяет переключать каналы радио (частоты радио станций должны быть вписаны в скетч) и менять уровень громкости от 0 до 15 шагов. Вся информация выводится на дисплей LCD1602(I2C) (на базе контроллера HD44780).

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <SparkFunSi4703.h> // sparkfunsi4703arduinolibrarymaster.zip
#include <EEPROM.h> // http://forum.rcl-radio.ru/misc.php?action=pan_download&item=45&download=1
  LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей
  Si4703_Breakout radio(2, A4, A5, 3);// RST,SDIO,SCLK,SEN - подключение
int vol=1;
int channel[11]{1010,1015,1019,1030,1035,1039,1044,1062,1068,1073}; 
char rdsBuffer[20];
int w,c,i;
 
void setup(){
  lcd.init();lcd.backlight();// Включаем подсветку дисплея
  pinMode(12,INPUT);// Cannel +
  pinMode(11,INPUT);// Cannel -
  pinMode(10,INPUT);// Volume +
  pinMode(9,INPUT); // Volume -
  c = EEPROM.read(0);vol = EEPROM.read(1);
  radio.powerOn();
  radio.setVolume(vol);
  radio.setChannel(channel[c]);
}
 
void loop(){ 
    radio.readRDS(rdsBuffer); 
    if(digitalRead(12)==HIGH){w=1;delay(200);}
    if(digitalRead(11)==HIGH){w=2;delay(200);}
    if(digitalRead(10)==HIGH){w=3;delay(200);}
    if(digitalRead(9)==HIGH){w=4;delay(200);}
    if(w==1){c++;if(c>9){c=9;}radio.setChannel(channel[c]);cl();radio.setChannel(channel[c]);EEPROM.update(0,c);}
    if(w==2){c--;if(c<0){c=0;}radio.setChannel(channel[c]);cl();radio.setChannel(channel[c]);EEPROM.update(0,c);}
    if(w==3){vol++;if(vol>15){vol=15;}radio.setVolume(vol);cl1();EEPROM.update(1,vol);}
    if(w==4){vol--;if(vol<0){vol=0;}radio.setVolume(vol);cl1();EEPROM.update(1,vol);}
 
    lcd.setCursor(0, 0); lcd.print((float)channel[c]/10,1);lcd.print(" MHz ");lcd.print("VOL ");lcd.print(vol);lcd.print(" ");
    lcd.setCursor(0, 1);lcd.print("C"); lcd.print(c+1);lcd.print(" ");
    lcd.setCursor(6, 1); lcd.print(rdsBuffer);
}
 
void cl(){delay(100);w=0;lcd.clear();for(i=0;i<20;i++){rdsBuffer[i]=NULL;}}
void cl1(){delay(100);w=0;}

Перед заливкой скетча отредактируйте строку:

int channel[11]{1010,1015,1019,1030,1035,1039,1044,1062,1068,1073};

Впишите в нее частоты радиостанций в формате 1015 = 101,5 МГц

Форум — http://forum.rcl-radio.ru/viewtopic.php?id=124

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

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

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

  • Устройство для получения СЕРЕБРЯНОЙ ВОДЫ

    Введение серебра в воду позволяет существенно улучшить ее свойства при длительном хранении. В качестве электродов используется серебро 875…999,9 пробы. Растворяемым электродом является анод, оптимальное межэлектродное расстояние 5-12мм, плотность тока 0,15…5,0 мА\кв.см., проводимое напряжение 3-12В. На рисунке 1 представлен базовый вариант схемы собранный на микросхеме К176ИЕ18. Задающий генератор выполнен на внутренних …Подробнее...
  • УКВ приемник на TDA7000

    УКВ приемник на TDA7000

    На рисунке показан схема УКВ (88…108 МГц) приемника на ИМС TDA7000. УКВ приемник содержит небольшое кол-во внешних элементов, прост в настройке. Выходной сигнал звуковой частоты (моно) подается на вход усилителя ЗЧ или на высокоомные наушники. Перечень элементов: С1, С9, С12, С17 —  0.1мкФ С2, С4, С5, С6, С13 —  0.01мкФ …Подробнее...
  • Инвертор 100Вт

    На рисунке показана схема инвертора с выходной мощностью 100В и выходным напряжением 220В 50 Гц. Питается инвертор от аккумуляторной батареи 12В. VR1  используется для более точной подстройки частоты 50 Гц, при большом расхождении частоты можно подобрать более точно емкость конденсатора Cx.   ИМС CD4047 используется в качестве генератора 50 Гц …Подробнее...
  • Электрические вольфрамовые лампы накаливания

    Электрические вольфрамовые лампы накаливания

    В 1879 году Т.А. Эдисон создал лампу накаливания запустив ее в серийное производство, в качестве нити накаливания он использовал угольную нить, которую он получал обугливанием длинный и тонких бамбуковых волокон. Так же он ввел откачку воздуха из баллона. В 1890 году А.Н. Лодыгин продемонстрировал лампу с нитью накала из тугоплавкого …Подробнее...
  • К140УД5А, К140УД5Б (справочные данные)

    К140УД5А, К140УД5Б (справочные данные)

    К140УД5А, К140УД5Б относят к ОУ средней точности. Электрические параметры: Uпит. ном — 2*12,0В I пот — 12мА Ku — 0,5*10³(А), 10³(Б) Uсм — 10мВ (А), 7мВ(Б) TKUсм — 35(А)мкв/Сº, 10(Б)мкв/Сº Iвх — 5*10³нА(А), 10000нА(Б) ΔIвх — 1000нА(А), 5000нА(Б) Кос.сф — 50дБ(А), 60дБ(Б) f1 — 5МГц(А), 10МГц(Б) Vu — 6В/мкс Uвых.мах …Подробнее...