Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

DIY Si4730 All Band Radio (LW, MW, SW, FM)

Компоненты и расходные материалы

Arduino Nano R3
× 1
Радиомодуль Si4730
× 1
Стандартный ЖК-экран Adafruit - 16x2, белый на синем
× 1
Поворотный энкодер с кнопкой
× 1
Плата для разработки, модуль усилителя звука класса D
× 1
Динамик:0,25 Вт, 8 Ом
× 1
феритовый стержень из старого радиомодуля MW
× 1
Ползунковый переключатель
× 1

Необходимые инструменты и машины

Паяльник (общий)

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Когда вы упоминаете радио Arduino, вы всегда думаете о современном FM-радио (88-108 МГц в Европе). Полосы LW, MW и SW покрывают диапазон от 0,2 до 30 МГц. SW особенно интересен. Радиоволны в коротковолновом диапазоне могут отражаться или преломляться от слоя электрически заряженных атомов в атмосфере, называемого ионосферой. Таким образом, коротковолновое радио можно использовать для связи на очень больших расстояниях, иногда на целых континентах или за их пределами.

Ниже я представлю вам разработку радио, которое охватывает все упомянутые выше диапазоны. «Сердце» этого радио - микросхема Si4730 от Silicon Labs, которую можно приобрести на AliExpress в виде небольшой платы для разработки за несколько долларов.

Эта плата управляется Arduino по протоколу I2C. Код написан Хулио К. Роза и основан на приведенной ниже библиотеке Si4735-I2C-R4 вместе с кодом и схемой. Хотя производитель заявляет, что этот чип (Si4730) предназначен только для AM / FM, на самом деле он работает и в ПО. Для аудиовыхода я использую плату мини-цифрового усилителя 2 * 3 Вт PAM8403 Class D, которая очень дешевая и функциональная.

Устройство собрано в подходящем корпусе и представляет собой полноценную небольшую радиостанцию ​​World Band. В остальном я живу на первом этаже в относительно густонаселенном районе и использую антенну длиной десять метров, поэтому прием довольно слабый, но все же сравним с карманными радиоприемниками коммерческого качества, которые у меня есть.

И наконец, стоит упомянуть, что этот чип используется многими известными брендами портативных радиостанций, такими как TECSUN, DEGEN, SANGEAN и другими.

Код

  • Код
  • Библиотеки
Код C / C ++
 / ********************************************* ************************************************* ** Приемник JCR Si4730 / 5 LW / MW / SW / FM - версия для публикации. См. Схемы для деталей проводки. Автор Хулио К. Роза - The CesarSound - Май / 2019 Команды:radio.volumeUp (); radio.volumeDown (); radio.seekDown (); radio.seekUp (); radio.mute (); radio.unmute (); radio.setMode (FM); radio.tuneFrequency (9490); radio.getStatus (); radio.getVolume (); radio.getMode (); radio.getMute (); radio.toggleMute (); RSQMetrics rsq; radio.getRSQ (&rsq); (rsq.stereo); номер_печати (rsq.stereoBlend); номер_печати (rsq.SNR); (rsq.seekable); номер_печати (rsq.RSSI); print_mode (); print_station_freq (); print_volume (); print_mute (); print_home (); radio.getCallSign (callSign); printp (rds1); Serial.write (callSign); radio.getProgramTypeStr (programType); Serial.write (тип программы); (rds1); (rds2); (rds3); (rds4); (rds5); ********************************************* ************************************************* ***** /// Библиотека # include  #include  #include  #include "Wire.h" // Настройки ввода / вывода Rotary r =Rotary (2, 3 ); LiquidCrystal lcd (12, 13, 7, 6, 5, 4); const byte band =A0; // Настройка переменнойunsigned int freq =880; unsigned int freqmax =10800; unsigned int freqmin =50; unsigned int fstep =10; unsigned int freqold; unsigned int buttonstate; unsigned int count =15; // Создание экземпляра Si4730 / 5 с именем radio.Si4735 radio; void setup () {lcd.begin (16, 2); PCICR | =(1 <>"); lcd.setCursor (3, 0); lcd.print (":"); lcd.setCursor (13, 0); lcd.print ("kHz");} // Прерывание кодировщика ISR (PCINT2_vect) {unsigned char result =r.process (); если (результат) {если (результат ==DIR_CW) {freq =freq + fstep; если (freq> =freqmax) {freq =freqmax; }} еще {freq =freq - fstep; если (freq <=freqmin) {freq =freqmin; }}}} void loop () {если (freqold! =freq) {tune (); } freqold =freq; lcd.setCursor (5, 0); lcd.print (частота); lcd.print (""); buttonstate =digitalRead (полоса); // Выбор бэнда if (buttonstate ==LOW) {inc_preset (); while (digitalRead (band) ==0); } // Medidor - S-Meter (dBu) e SNR (dB) - раскомментируйте, если хотите использовать RSQMetrics rsq; radio.getRSQ (&rsq); lcd.setCursor (0, 2); lcd.print ("dBu:"); lcd.print (rsq.RSSI); lcd.setCursor (9, 2); lcd.print ("дБ:"); lcd.print (rsq.SNR);} // Предустановки INCvoid inc_preset () {count ++; если (count> 15) count =1; bandpresets (); delay (100);} // Выбор предустановок Bandasvoid bandpresets () {lcd.setCursor (0, 0); переключатель (счетчик) {случай 1:частота =370; radio.setMode (LW); radio.tuneFrequency (freq); command_am (); fstep =5; lcd.print ("LW1"); ломать; случай 2:freq =620; radio.setMode (AM); radio.tuneFrequency (freq); fstep =5; lcd.print («MW1»); ломать; случай 3:freq =840; radio.setMode (AM); radio.tuneFrequency (freq); fstep =5; lcd.print («MW2»); ломать; случай 4:freq =3700; radio.setMode (SW); radio.tuneFrequency (freq); fstep =5; lcd.print ("SW0"); ломать; случай 5:freq =4985; radio.setMode (SW); radio.tuneFrequency (freq); fstep =5; lcd.print («SW1»); ломать; случай 6:freq =6010; radio.setMode (SW); radio.tuneFrequency (freq); fstep =1; lcd.print («SW2»); ломать; случай 7:freq =7200; radio.setMode (SW); radio.tuneFrequency (freq); fstep =1; lcd.print («SW3»); ломать; случай 8:freq =10000; radio.setMode (SW); radio.tuneFrequency (freq); fstep =5; lcd.print («SW4»); ломать; случай 9:freq =11940; radio.setMode (SW); radio.tuneFrequency (freq); fstep =5; lcd.print («SW5»); ломать; случай 10:freq =13710; radio.setMode (SW); radio.tuneFrequency (freq); fstep =5; lcd.print («SW6»); ломать; case 11:freq =15400; radio.setMode (SW); radio.tuneFrequency (freq); fstep =5; lcd.print («SW7»); ломать; case 12:freq =17560; radio.setMode (SW); radio.tuneFrequency (freq); fstep =5; lcd.print («SW8»); ломать; case 13:freq =21505; radio.setMode (SW); radio.tuneFrequency (freq); fstep =5; lcd.print («SW9»); ломать; случай 14:freq =27015; radio.setMode (SW); radio.tuneFrequency (freq); fstep =5; lcd.print («CB1»); ломать; case 15:freq =9700; radio.setMode (FM); radio.tuneFrequency (freq); fstep =10; lcd.print («FM1»); ломать; }} // Sintonizador - tunervoid tune () {radio.tuneFrequency (freq);} // Команды мягкого отключения звука / максимальное усиление AVC command_am () {radio.setProperty (PROP_AM_SOFT_MUTE_MAX_ATTENUATION, 0); // 0 (ВЫКЛ) - 63 radio.setProperty (PROP_AM_AUTOMATIC_VOLUME_CONTROL_MAX_GAIN, 0x3A98); // 1000–7800} 
Библиотеки C / C ++
 Нет предварительного просмотра (только загрузка). 

Схема


Производственный процесс

  1. Радиосхемы
  2. Радио
  3. Резинка
  4. Сделайте самодельную термокамеру
  5. UVC Box - УФ-стерилизатор для самостоятельного изготовления
  6. Интернет-радио Pi-Arduino
  7. Генератор волн JX
  8. Скейтборд виртуальной реальности «Сделай сам»
  9. FM-радио для душевой кабины на базе Arduino
  10. Что такое вертикальная ленточная пила?