0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在面包板上构建一个简单的FM收音机接收器

科技观察员 来源:hackster.io 作者:hackster.io 2022-09-19 16:21 次阅读

在本文中,我将介绍如何在面包板上构建一个简单的 FM 收音机接收器。

poYBAGMoJkKAOwZKAAeZ_YIRZx4422.png

如您所见,收音机工作正常,我们可以听到一些音乐。我正在使用这种廉价的 FM 发射器以这个频率传输一些 YouTube 安全曲目。我使用诺基亚 5110 LCD 显示屏来显示所选频率、信号强度和立体声图标(如果我们正在接收立体声)。该项目的主控是小巧便宜的 Arduino Nano 。我们可以使用电位器来控制扬声器的音量和无线电频率。

这是一个引人入胜的项目,而且相对容易构建。让我们看看如何构建它。

第 1 步:获取所有零件

poYBAGMoJj6ADVhlAAV8KBdlAOA117.png

构建此项目所需的部分如下:

Arduino Nano

调频收音机模块

诺基亚 5110 液晶

10K电位器

音频放大器

3W音箱

大面包板

音频线

跳线

3合1线

调频发射机

移动电源

第 2 步:诺基亚 5110 液晶显示屏

pYYBAGMoJjmATqe_AAKCdzQIqYU058.png

诺基亚 5110 是我最喜欢的 Arduino 项目显示器。

诺基亚 5110 是一款基本的图形 LCD 屏幕,最初用于手机屏幕。它使用 PCD8544 控制器,这是一种低功耗 CMOS LCD 控制器/驱动器。因此,显示器具有令人印象深刻的功耗。

它开启时仅使用 0.4mA,但背光被禁用。它在睡眠模式下使用小于 0.06mA!这就是使该显示器成为我最喜欢的原因之一。PCD8544 通过串行总线接口连接到微控制器。这使得屏幕非常易于与 Arduino 一起使用。您只需要连接 8 根电线。

第 3 步:TEA5767 FM 收音机模块

poYBAGMoJjSAGC6fAAUTxsdFvYc732.png

该项目是围绕这个 FM 收音机模块构建的。

该模块使用TEA5767无线电芯片。该芯片使用 I2C 接口,因此可以直接与 Arduino 一起使用。在模块上,我们还可以找到一个音频放大器。不过需要注意的是,这是一个耳机放大器,因此我们无法将扬声器直接连接到模块的输出。因为音频信号非常微弱,我们需要先放大它。此外,无法通过软件控制模块发出的音量,因此稍后我们将使用电位器。模块上有两个耳机接口,一个是天线接口,一个是标准耳机输出接口。该模块带有一个小天线,但如果您愿意,您可以轻松构建自己的天线。

第 4 步:连接部件

pYYBAGMoJi6AZhZ9AAOBe-17i5Q435.png

现在让我们根据这个示意图构建电路。

pYYBAGMoJiqAQr79AAdidJmep2I562.png

首先,将所有部件放在面包板上。我们把每个部分的接地引脚连接到面包板的接地轨,并将每个部分的 Vcc 引脚连接到面包板的正极轨,除了控制音量的电位器。之后,连接无线电模块。SLC 引脚连接到 Arduino Nano 的模拟引脚 5,SDA 引脚连接到模拟引脚 4。现在我们将电位器的中间引脚连接到模拟引脚 0。使用这个电位器,我们将选择频率。

现在我们需要连接音量电位器来控制音量。我用的是音频线。我将电缆的一端插入模块的音频输出。接下来,我切断另一端以在电缆内找到 4 根电线。模块输出立体声,但这次我们只使用一个音频通道。所以,我只连接两根电线。其中一个是GND,另一个是需要放大的音频信号。音频信号线连接到音量电位器的输入引脚。电位器的中间引脚是输出的音频信号。

为了放大音频信号,我使用了这个使用LM386放大器芯片的模块。音频信号进入此引脚,音频电缆的接地引脚进入此引脚。现在,我们要做的就是为模块供电。所以我们将此引脚连接到面包板的正极轨,并将此引脚连接到面包板的负极轨。我们现在唯一要做的就是像这样将一个小扬声器连接到模块的输出端。有了这个小电位器,我们可以控制信号的放大。现在,我们所要做的就是连接诺基亚 5110 显示屏。

连接诺基亚 5110 液晶显示器

RST 转到 Arduino 的数字引脚 12

CE 转到 Arduino 的数字引脚 11

DC 连接到 Arduino 的数字引脚 10

DIN 连接到 Arduino 的数字引脚 9

CLK 进入 Arduino 的数字引脚 8

VCC 转到 Arduino 3.3V

LIGHT 连接到 Arduino GND(背光打开)

GND 连接到 Arduino GND

最后一步是可选的,像这样将一个 330μF 电容器连接到面包板上,以减少音频信号上的噪声。

如果我们现在启动项目,我们可以看到启动屏幕显示 3 秒,然后,我们可以听到扬声器的声音。但扬声器和此音频放大器的音质不是最好的。不过如果我们使用另一个带有嵌入式放大器的商用扬声器,音质就趋于完美了。所以,模块的输出信号是完美的,但是我使用的放大器和扬声器降低了音质,所以我们可以寻找质量更好的。现在我们已经构建了硬件,让我们来看看项目的软件方面。

第 5 步:项目代码

poYBAGMoJiOAWf_xAAFp_0c8Ncg100.png

在这个项目中,我们使用了两个库。我正在使用 Nokia5110 图形库和 TEA5767 FM 芯片的库。

代码是这样工作的。首先,我们初始化收音机模块和显示器,并显示三秒钟的闪屏。我在 Photoshop 中设计了这个闪屏。

void setup() {

radio.setMonoReception();

radio.setStereoNoiseCancellingOn();

initScreen();

showSplashScreen();

Serial.begin(9600);

}

接下来,在循环函数中,我们每隔几毫秒从控制频率的电位器中读取值。我们从电位器获得模拟值,并将其映射到频率值。由于我们读取的是模拟值,因此该值不是恒定的;即使我们不转动电位器,它也会略微上升或下降。

frequencyInt = map(val, 2, 1014, 8700, 10700); //Analog value to frequency from 87.0 MHz to 107.00 MHz

float frequency = frequencyInt/100.0f;

因此,为了获得稳定的频率,我们只有在频率发生显着变化时才将收音机调到不同的频率。因此,如果频率发生显着变化,我们将无线电模块调整到该频率,我们获得信号强度,然后将其打印在屏幕上,如果需要,我们打印立体声图标,最后,我们打印选定的频率。

if(frequency - previousFrequency 》= 0.1f || previousFrequency - frequency 》= 0.1f) {

lcd.clrScr();

radio.selectFrequency(frequency);

printSignalStrength();

printStereo();

printFrequency(frequency);

previousFrequency = frequency;

}

这就是代码的工作方式,它很简单,但工作正常。

第 6 步:最后的想法

pYYBAGMoJhyAZCL9AARSo7lwgO4451.png

正如您在大约半小时内看到的那样,我们可以在面包板上构建一个 FM 收音机。

我们从这个项目中得到的音质还不是很好。我将在这个项目上做更多的工作,以在每个领域改进它。我想把这个项目变成带有复古 3D 打印外壳的完整收音机。首先,我将尝试不同的音频放大器和扬声器,以从这个项目中获得良好的音频质量。我们还可以把它从面包板上移开,并在原型板上制作它的永久版本。还可以为这个项目设计一个外壳,让它看起来像一个收音机。当然,项目的代码也需要大量的改进和调整。我想添加的一个功能是微调功能,它将进一步提高音质。

当显示器的背光被禁用时,该项目需要大约 50mA 的电流。我们可以进一步减少当前的一些软件和硬件技巧,以便这个项目可以由电池供电。我认为,结果会令人印象深刻,我迫不及待地想看到这个项目在我的办公桌上完成。这个项目只是一个开始。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接收器
    +关注

    关注

    14

    文章

    2214

    浏览量

    70656
  • FM收音机
    +关注

    关注

    2

    文章

    26

    浏览量

    14435
  • 面包板
    +关注

    关注

    2

    文章

    296

    浏览量

    17432
收藏 人收藏

    评论

    相关推荐

    [建议]FM收音机集成电路

    是电调谐FM接收集成电路, TDA2822是小功率双声道功放集成电路。此收音机用耳机作为天线,具有体积小、外围元件少、灵敏度高 、性能稳定、噪声小、分离度高、制作和调试简单等特点。此
    发表于 12-31 16:31

    [原创]重新设计制作的FM收音机

    PCB设计与收音机制作原收音机款AM/FM 调幅调频收音机,并且功放是分立元件的,我们把它改成纯FM
    发表于 04-13 15:21

    收音机的电路原理

    AM收音机:有直放式和超外差式,直放式灵敏度低,原理结构简单。就是用调谐电路选出频率的电波,经过高频放大,放大高频,再进行检波,还原音频,最后进行音频,功率放大,经扬声
    发表于 07-10 10:15

    数字调频收音机设计

    这些移动设备带来 调频收音机功能。这种即插即用型FM接收器采用带微控制或SOC的FM接收器芯片
    发表于 12-04 15:45

    分享 由51单片控制的FM收音机

    由51单片控制的FM收音机 本设计研究FM收音机分为硬件电路和程序设计两方面。从硬件电路来说
    发表于 10-05 18:15

    FM收音机

    请问般的FM收音机的频偏是多少。
    发表于 10-31 14:36

    请问实现FM收音机接收器最大化灵敏度的方法有哪些?

    实现FM收音机接收器最大化灵敏度的方法有哪些?FM收音机接收器可调谐匹配网络的建置方法有哪些?
    发表于 04-20 06:58

    如何自制单管FM收音机

    AM收音机的电路和套件非常多,很多都工作的很好。但是您会发现简单FM收音机的电路几乎没有。事实从电子管时代过渡到晶体管时代后这些电路就消失
    发表于 05-10 07:29

    款带触摸屏的高级FM收音机接收器

    描述主板 TEF6686 FM接收器,带触摸屏、WiFi 和蓝牙音频它还支持 WiFi 连接到 RDS Spy、Stationlist 和 XDR-GTK。如果您添加蓝牙音频,您可以将无线耳机或
    发表于 07-05 06:58

    基于树莓派pico的FM接收器

    描述Pico 收音机简单的基于树莓派 pico 的 FM 接收器,它使用 rda5807m
    发表于 07-08 07:56

    一款带触摸屏的高级FM收音机接收器

    电子发烧友网站提供《一款带触摸屏的高级FM收音机接收器.zip》资料免费下载
    发表于 07-07 10:18 5次下载
    一款带触摸屏的高级<b class='flag-5'>FM</b><b class='flag-5'>收音机</b><b class='flag-5'>接收器</b>

    基于一个晶体管构建FM接收器

    这是一个非常简单FM 接收器,仅基于一个晶体管构建。没有芯片或其他有源组件。输出连接到耳机,如果你想用扬声器收听收音机,你需要一个放大器
    发表于 07-14 17:48 950次阅读
    基于一个晶体管<b class='flag-5'>构建</b>的<b class='flag-5'>FM</b><b class='flag-5'>接收器</b>

    使用RDA5807构建一个Arduino FM收音机

    在本教程中,我们将构建一个Arduino FM 接收器,并将其添加到我们的项目库中。我们将使用带有 Arduino 的 RDA5807 FM 接收器
    发表于 08-19 14:50 1.5w次阅读
    使用RDA5807<b class='flag-5'>构建</b>一个Arduino <b class='flag-5'>FM</b><b class='flag-5'>收音机</b>

    带RDS的LW/MW/SW立体声FM-DSP收音机接收器V2.5

    电子发烧友网站提供《带RDS的LW/MW/SW立体声FM-DSP收音机接收器V2.5.zip》资料免费下载
    发表于 06-25 11:30 9次下载
    带RDS的LW/MW/SW立体声<b class='flag-5'>FM</b>-DSP<b class='flag-5'>收音机</b><b class='flag-5'>接收器</b>V2.5

    面包板上构建一个简单FM收音机接收器

    电子发烧友网站提供《在面包板上构建一个简单FM收音机接收器.zip》资料免费下载
    发表于 06-30 14:51 0次下载
    在<b class='flag-5'>面包</b>板上<b class='flag-5'>构建</b>一个<b class='flag-5'>简单</b>的<b class='flag-5'>FM</b><b class='flag-5'>收音机</b><b class='flag-5'>接收器</b>