×

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

消耗积分:0 | 格式:zip | 大小:0.59 MB | 2023-06-30

陈霞

分享资料个

描述

介绍

亲爱的朋友欢迎回来!在本教程中,我们将在面包板上构建一个简单的 FM 收音机接收器如您所见,收音机工作正常,我们可以听到一些音乐。我正在使用这种廉价的 FM 发射器以这个频率传输一些 YouTube 安全曲目。我正在使用诺基亚 5110 LCD 显示屏来显示选择的频率、信号强度和立体声图标(如果我们正在接收立体声)。该项目的大脑是小巧便宜的 Arduino Nano 我们可以使用这个电位器来控制扬声器的音量,我们可以使用这个电位器来改变无线电频率。

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

第 1 步:获取所有零件

 
poYBAGN-4ISAIrvOAACkmvQrrHA541.jpg
 

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

该项目的总成本约为15美元。

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

 
pYYBAGN-4ImAfJIEAABe4yr_DZ4439.jpg
 
 

诺基亚 5110 是我最喜欢的 Arduino 项目显示器。显示器的成本约为 4 美元。

你可以在这里得到它。

第 3 步:TEA5767 FM 收音机模块

 
 
 
 
poYBAGN-4IuAAkK1AADSzj7L8q0010.jpg
 
1 / 2
 

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

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

你可以在这里得到它。

第 4 步:连接部件

 
 
 
 
poYBAGOYGzeAfn8hAACGsaz35Jk454.jpg
 
1 / 11
 

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

连接诺基亚 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 步:项目代码

 
poYBAGOYGzyAbm8rAAA58RsycG4180.jpg
 
 

在这个项目中,我们使用了两个库。

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;    
  }

这就是代码的工作方式,它很简单,但工作正常。与往常一样,您可以找到附加到此步骤的项目代码。

由于这是一个正在开发的项目,您可以在该项目的网页上找到最新版本的代码:http: //educ8s.tv/arduino-fm-radio-project

 

第 6 步:最后的想法

 
 
 
 
pYYBAGOYG0KARXBHAACddto6i3s021.jpg
 
1 / 2
 

非常感谢!


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

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !