| Ваш IP: 3.238.107.166 | Online(32) - гости: 23, боты: 9 | Загрузка сервера: 0.97 ::::::::::::


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

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

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

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

  • НЕКОТОРЫЕ ВОПРОСЫ ЭКСПЛУАТАЦИИ АККУМУЛЯТОРНЫХ БАТАРЕЙ

    При эксплуатации аккумуляторных батарей следует всегда четко помнить следующее: • после покупки батареи находятся в разряженном состоянии и перед началом эксплуатации их необходимо зарядить; • напряжение на заряженном элементе аккумуляторной батареи составляет 1,2 В; • напряжение конца разряда (напряжение, ниже которого элемент разряжать не следует) составляет 1,0…1,05 В; • емкость …Подробнее...
  • Частотомер на PIC16F628A

    Частотомер на PIC16F628A

    На рисунке показана схема простого частотомера созданного на основе микроконтроллера PIC16F628A. Частотомер измеряет частоту от 2 Гц до 10 МГц, результат измерения выводится на первую строку индикатора 1602А, во второй строке отображается период измеряемого сигнала от 100 нс до 500 мс. Время измерения 1 секунда. Сигнал уровня ТТЛ можно непосредственно …Подробнее...
  • Индикатор перегорания предохранителя

    Данное уст-во индицирует перегорание предохранителя короткими звуковыми и световыми сигналами. индикатор также может работать в цепи постоянного или переменного тока с частотой до 1000Гц и напряжением от 10 до 1000В. В качестве время задающего конденсатора служит пьезокерамический излучатель BQ1 — 0,022…0,5мкФ. Литература Радиолюбитель 2\1999 Автор: М.Шустов, А.Шустов г. ТомскПодробнее...
  • СТАЦИОНАРНЫЙ МОЩНЫЙ СВЕТОРЕГУЛЯТОР

    Сетевой полупроводниковый светорегулятор комнатного освещения со стационарной установкой вместо сетевого выключателя. Предназначен для плавного регулирования яркости свечения ламп накаливания подвесных и потолочных светильников в жилых  помещениях при максимальной мощности нагрузки 300 Вт. Надежная и устойчивая работа светорегулятора обеспечивается в течение длительного времени при эксплуатации в условиях умеренно холодного климата при …Подробнее...
  • Источник питания с фиксированным выходным напряжением 1,5…9В

    Источник питания с фиксированным выходным напряжением 1,5…9В

    При помощи стабилизатора напряжения LM317 можно сделать источник питания с фиксированным выходным напряжением — 1,5, 3, 4,5, 6 и 9В. Максимальный выходной ток источника питания 1,5А. Источник питания имеет защиту от КЗ выхода и тепловую защиту. Для стабилизатора LM317 необходим теплоотвод. В уст-ве используется трансформатор мощностью 20-25 Вт с выходным …Подробнее...