| Ваш IP: 18.207.254.88 | Online(38) - гости: 28, боты: 10 | Загрузка сервера: 0.51 ::::::::::::


Радио на 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

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

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

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

  • Фазоинвертор (ламповый усилитель)

    Фазоинвертор (ламповый усилитель)

    В двухтактный ламповый усилитель входит каскад фазоинвертор, его назначение — разделение входного сигнала на две противофазные полуволны . Так как любой каскад с нагрузкой анодной цепи инвертирует сигнал, часто применяется простая схема фазоинвертора на двух усилительных каскадах. Фазоинвертор — это два усилительных каскада с общим катодом, сигнал с выхода первого …Подробнее...
  • STM32 + TFT-дисплей SPI 320×240 (ILI9341C)

    STM32 + TFT-дисплей SPI 320×240 (ILI9341C)

    TFT-дисплей SPI 320×240 (ILI9341C) в сочетании с платой STM32 базе микроконтроллера STM32F103C8T6 имеет очень хорошее быстродействие, скорость обновления экрана намного выше чем использования этого дисплея с Arduino Nano. Работа логики дисплея имеет напряжение 3,3 В, что очень упрощает его подключение к STM32. Подключение дисплея к STM32 достаточно простое: При добавлении …Подробнее...
  • STM32 генератор импульсов (PWM) 64МГц

    STM32 генератор импульсов (PWM) 64МГц

    У микроконтроллера STM32F103C8T6 достаточно высокая рабочая частота, номинальная 72 МГц, а в режиме Overclocked 128 МГц, благодаря этому STM32 можно использовать как импульсный генератор (меандр) с максимальной частотой 64 МГц, а в режиме ШИМ генератора с максимальной частотой 1.28 МГц и процентом коэффициента заполнения от 0 до 100. Конечно на …Подробнее...
  • USB лампа

    Светодиоды подключены к токоограничивающим резисторам  R1…R4. Катоды всех светодиодов соединяются вместе и припаиваются к черному проводу кабеля USB. свободные выводы резисторов  соединены вместе и подключены к красному проводу кабеля USB.Подробнее...
  • Бесшумный регулятор мощности для Hi-Fi усилителей

    Схема на рис.1 полностью заменяет любой потенциометр в регуляторе громкости. Основа устройства — специфическое соединение двух транзисторов. VT1 усиливает сигнал, а VT2 регулирует усиление через уменьшение К-Э(Vкэ). В нижнем положении ползунка R3 транзистор VT2 полностью закрыт и ни как не влияет на работу VT1. Усиление в этом случае максимально. Продвигая …Подробнее...