亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

DIY Si4730 全波段收音机(LW、MW、SW、FM)

组件和用品

Arduino Nano R3
× 1
Si4730 无线电模块
× 1
Adafruit 标准 LCD - 16x2 蓝底白字
× 1
带按钮的旋转编码器
× 1
开发板,D类音频放大器模块
× 1
扬声器:0.25W,8 ohms
× 1
来自旧中波收音机的铁氧体棒
× 1
滑动开关
× 1

必要的工具和机器

烙铁(通用)

应用和在线服务

Arduino IDE

关于这个项目

当您提到 Arduino 收音机时,您总会想到现代 FM 收音机(欧洲为 88-108 MHz)。 LW、MW 和 SW 频段覆盖 0.2 至 30 MHz 的范围。 SW特别有趣。短波波段的无线电波可以被大气中称为电离层的带电原子层反射或折射。因此,短波无线电可用于超长距离通信,有时可以覆盖整个大陆或更远的地方。

下面我将向您介绍涵盖上述所有频段的无线电的开发。这款收音机的“心脏”是来自Silicon Labs的Si4730 IC,只需几美元即可从速卖通以小型开发板的形式购买。

该板由使用 I2C 协议的 Arduino 控制。该代码由 Julio C. Rosa 编写,基于下面给出的 Si4735-I2C-R4 库以及代码和方案。虽然制造商说这个芯片(Si4730)它只用于AM / FM,但它实际上也适用于SW。对于音频输出,我使用迷你数字放大器板 2*3W PAM8403 D 类,非常便宜且实用。

该设备组装在合适的外壳中,代表了一个完整的小型 World Band 收音机。否则我住在人口相对密集的一楼,使用十米长的天线,所以接收很弱,但仍然可以与我拥有的商用品质袖珍收音机相媲美。

最后要说的是,这款芯片被TECSUN、DEGEN、SANGEAN等众多知名品牌的便携收音机所采用。

代码

  • 代码
  • 图书馆
代码C/C++
/**************************************************** ****************************************************** ** JCR Si4730/5 接收器 LW/MW/SW/FM - 共享版本。有关接线详细信息,请参见示意图。由 Julio C. Rosa 撰写 - The CesarSound - 2019 年 5 月 命令:radio.volumeUp(); radio.volumeDown();radio.seekDown(); radio.seekUp();收音机静音(); 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);打印模式();打印站频率();打印卷();打印静音();打印主页(); radio.getCallSign(callSign);打印(rds1); Serial.write(callSign); radio.getProgramTypeStr(programType); Serial.write(programType); (rds1); (rds2); (rds3); (rds4); (rds5);**************************************************** ****************************************************** *****//// Library#include #include #include #include "Wire.h"// I/O SettingsRotary 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;// 创建一个名为 radio.Si4735 radio 的 Si4730/5 实例;void setup() { lcd.begin(16, 2); PCICR |=(1 <>"); lcd.setCursor(3, 0); lcd.print(":"); lcd.setCursor(13, 0); lcd.print("kHz");}// 编码器 InterruptISR(PCINT2_vect) { unsigned char result =r.process(); if (result) { if (result ==DIR_CW) { freq =freq + fstep;如果(频率>=频率最大){ 频率 =频率最大; } } else { freq =freq - fstep; if (freq <=freqmin) { freq =freqmin; } } }}void loop() { if (freqold !=freq) { tune(); } 频率=频率; lcd.setCursor(5, 0);液晶显示(频率);液晶打印(“”); buttonstate =digitalRead(band); // 选择器 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:");液晶打印(rsq.RSSI); lcd.setCursor(9, 2); lcd.print("分贝:"); lcd.print(rsq.SNR);}// 预设 INCvoid inc_preset() { count++;如果(计数> 15)计数=1;波段预设(); delay(100);}// 预设选择器 de Bandasvoid bandpresets() { lcd.setCursor(0, 0); switch (count) { case 1:freq =370; radio.setMode(LW); radio.tuneFrequency(freq);命令_am(); fstep =5;液晶打印(“LW1”);休息;情况 2:频率 =620; radio.setMode(AM); radio.tuneFrequency(freq); fstep =5; lcd.print("MW1");休息;情况 3:频率 =840; radio.setMode(AM); radio.tuneFrequency(freq); fstep =5; lcd.print("MW2");休息;情况 4:频率 =3700; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print("SW0");休息;情况 5:频率 =4985; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print("SW1");休息;情况 6:频率 =6010; radio.setMode(SW); radio.tuneFrequency(freq); fstep =1; lcd.print("SW2");休息;情况 7:频率 =7200; radio.setMode(SW); radio.tuneFrequency(freq); fstep =1; lcd.print("SW3");休息;情况 8:频率 =10000; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print("SW4");休息;案例 9:频率 =11940; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print("SW5");休息;案例 10:频率 =13710; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print("SW6");休息;案例 11:频率 =15400; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print("SW7");休息;案例 12:频率 =17560; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print("SW8");休息;案例 13:频率 =21505; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print("SW9");休息;案例 14:频率 =27015; radio.setMode(SW); radio.tuneFrequency(freq); fstep =5; lcd.print("CB1");休息;案例 15:频率 =9700; radio.setMode(FM); radio.tuneFrequency(freq); fstep =10; lcd.print("FM1");休息; }}//Sintonizador - tunervoid tune() { radio.tuneFrequency(freq);}//命令软静音关闭/ AVC max gainvoid command_am() { radio.setProperty(PROP_AM_SOFT_MUTE_MAX_ATTENUATION, 0); // 0 (OFF) - 63 radio.setProperty(PROP_AM_AUTOMATIC_VOLUME_CONTROL_MAX_GAIN, 0x3A98); // 1000 - 7800}
C/C++
无预览(仅限下载)。

示意图


制造工艺

  1. 无线电电路
  2. 无线电
  3. 橡皮筋
  4. 制作 DIY Thermocam
  5. UVC 盒装 DIY 紫外线消毒器
  6. Pi-Arduino Internet Radio
  7. JX 波形发生器
  8. DIY 虚拟现实滑板
  9. 基于 Arduino 的淋浴间调频收音机
  10. J.A.R.V.I.S with DIY Arc Reactor
  11. 无线红外温度扫描仪
  12. 什么是立式带锯?