Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino TEA5767 FM-radio-ontvanger

Componenten en benodigdheden

Arduino Micro
× 1
TEA5767-module
× 1
Arduino LCD-scherm
× 1
Draaipotentiometer (generiek)
10k ohm
× 1
LM386-audioversterker
× 1
3W-luidspreker
× 1
Broodplank (algemeen)
× 1
Audiokabel
× 1
Jumperdraden (algemeen)
× 1
FM-zender
× 1

Apps en online services

Arduino IoT Cloud

Over dit project

Inleiding

Beste vrienden welkom terug! In deze tutorial gaan we een eenvoudige FM-radio-ontvanger bouwen op een breadboard .

Bekijk de bijgevoegde video om er enkele seconden naar te luisteren. Zoals je kunt zien werkt de radio prima en horen we wat muziek uit de radio komen. Ik zend enkele veilige YouTube-tracks uit met deze goedkope FM-zender op deze frequentie. Ik gebruik het LCD-scherm van de Nokia 5110 om de geselecteerde frequentie, de signaalsterkte en een stereopictogram weer te geven als we stereogeluid ontvangen.Het brein van het project is de kleine en goedkope Arduino Nano . We kunnen het volume van de luidspreker regelen met deze potentiometer, en we kunnen de radiofrequentie wijzigen met deze potentiometer.

Het is een fascinerend project en relatief eenvoudig te bouwen. Laten we eens kijken hoe we het kunnen bouwen.

Stap 1:Verkrijg alle onderdelen

De onderdelen die nodig zijn om dit project te bouwen zijn de volgende:

  • Arduino Nano
  • FM-radiomodule
  • Nokia 5110 LCD
  • 10K Potentiometer
  • Audioversterker
  • 3W-luidspreker
  • Grote Breadboard
  • Audiokabel
  • Jumperdraden
  • 3 in 1 draden
  • FM-zender
  • Powerbank

De totale kosten van het project bedragen ongeveer 15 $.

Stap 2:Nokia 5110 LCD

De Nokia 5110 is mijn favoriete scherm voor mijn Arduino-projecten.

De Nokia 5110 is een eenvoudig grafisch LCD-scherm dat oorspronkelijk bedoeld was als scherm voor een mobiele telefoon. Het maakt gebruik van de PCD8544-controller, een CMOS LCD-controller/driver met laag vermogen. Hierdoor heeft het scherm een ​​indrukwekkend stroomverbruik.

Het gebruikt slechts 0,4 mA wanneer het is ingeschakeld, maar de achtergrondverlichting is uitgeschakeld. Het gebruikt minder dan 0,06 mA in de slaapstand! Dat is een van de redenen waarom dit scherm mijn favoriet is. De PCD8544 is gekoppeld aan microcontrollers via een seriële businterface. Dat maakt het scherm heel gemakkelijk te gebruiken met Arduino. U hoeft slechts 8 draden aan te sluiten. Ik heb een gedetailleerde tutorial voorbereid over het gebruik van de Nokia 5110 LCD met Arduino.

Ik heb die video in deze tutorial bijgevoegd, deze zal nuttige informatie over het scherm geven, dus ik moedig je aan om deze zorgvuldig te bekijken. De kosten van het scherm bedragen ongeveer $ 4.

Je kunt het hier krijgen.

Stap 3:TEA5767 FM-radiomodule

Het project is opgebouwd rond deze FM-radiomodule.

De module maakt gebruik van de TEA5767 radiochip , deze hier. De chip maakt gebruik van de I2C-interface, dus het is eenvoudig te gebruiken met Arduino. Op de module vinden we ook een audioversterker terug. Helaas is dit een hoofdtelefoonversterker waardoor we geen speaker direct op de uitgang van de module kunnen aansluiten aangezien het audiosignaal erg zwak is. We moeten het eerst versterken. Er is ook geen manier om het volume dat uit de module komt softwarematig te regelen, dus we gaan later een potentiometer gebruiken. Op de module bevinden zich twee hoofdtelefoonaansluitingen, één is voor de antenne en de andere is de standaard hoofdtelefoonuitgang. De module wordt geleverd met een kleine antenne, maar u kunt deze eenvoudig zelf bouwen als u dat wilt.

Je kunt het hier krijgen.

Stap 4:De onderdelen aansluiten

Laten we nu de schakeling bouwen volgens dit schematische diagram.

Laten we eerst alle onderdelen op het breadboard plaatsen. We verbinden de grondpin van elk onderdeel met de grondrail van het breadboard en de Vcc-pin van elk onderdeel met de positieve rail van het breadboard, behalve de potentiometer die het volume regelt. Laten we nu de radiomodule aansluiten. De SLC-pin gaat naar analoge pin 5 van de Arduino Nano en de SDA-pin gaat naar analoge pin 4. Nu verbinden we de middelste pin van de potentiometer met analoge pin 0. Met deze potentiometer gaan we de frequentie selecteren.

Nu moeten we de volumepotentiometer aansluiten om het volume te kunnen regelen. Ik heb een audiokabel gebruikt. Ik heb het ene uiteinde van de kabel aangesloten op de audio-uitgang van de module. Vervolgens heb ik het andere uiteinde doorgesneden om 4 draden in de kabel te vinden. De module voert stereogeluid uit, maar we gaan deze keer slechts één audiokanaal gebruiken. Dus ik sluit slechts twee van de draden aan. Een daarvan is GND en de andere is het audiosignaal dat moet worden versterkt. De draad van het audiosignaal gaat naar de ingangspen van de volumepotentiometer. De middelste pin van de potentiometer is het audiosignaal dat eruit komt.

Om het audiosignaal te versterken gebruik ik deze module die gebruik maakt van de LM386 versterkerchip. Het audiosignaal gaat naar deze pin, de massapin van de audiokabel gaat naar deze pin. Nu hoeven we alleen nog maar de module van stroom te voorzien. Dus we verbinden deze pin met de positieve rail van het breadboard en deze pin met de negatieve rail van het breadboard. Het enige wat we nu nog hoeven te doen is zo een kleine speaker op de uitgang van de module aan te sluiten. Met deze kleine potentiometer kunnen we de versterking van het signaal regelen. Nu hoeven we alleen nog het Nokia 5110-scherm aan te sluiten. Bekijk mijn gedetailleerde video over het gebruik van het Nokia 5110-scherm om te zien hoe u het aansluit, of volg het schema.

Het Nokia 5110 LCD-scherm aansluiten

  • RST gaat naar digitale pin 12 van de Arduino
  • CE gaat naar digitale pin 11 van de Arduino
  • DC gaat naar digitale pin 10 van de Arduino
  • DIN gaat naar digitale pin 9 van de Arduino
  • CLK gaat naar digitale pin 8 van de Arduino
  • VCC gaat naar Arduino 3.3V
  • LICHT gaat naar Arduino GND (achtergrondverlichting aan)
  • GND gaat naar Arduino GND

De laatste stap, die optioneel is, is om een ​​condensator van 330μF op deze manier op het breadboard aan te sluiten om de ruis op het audiosignaal te verminderen.

Als we nu het project opstarten, kunnen we zien dat er gedurende 3 seconden een opstartscherm wordt weergegeven en daarna kunnen we geluid uit de luidspreker horen. De geluidskwaliteit is niet best bij deze speaker en deze audioversterker. Als ik een andere commerciële luidspreker met ingebouwde versterker gebruik, is de geluidskwaliteit perfect. Bekijken. Het uitgangssignaal van de module is dus perfect, maar de versterker en de luidspreker die ik heb gebruikt verminderen de geluidskwaliteit, dus ik moet op zoek naar betere. Nu we de hardware hebben gebouwd, gaan we eens kijken naar de softwarekant van het project.

Stap 5:Code van het project

In dit project gebruiken we twee bibliotheken. Ik gebruik de Nokia5110-grafiekbibliotheek en een bibliotheek voor de TEA5767 FM-chip.

De code werkt als volgt. Eerst initialiseren we de radiomodule en het display, en we geven drie seconden lang een opstartscherm weer. Ik ontwierp dit splash-scherm in Photoshop. Bekijk de video-tutorial die ik heb bijgevoegd als u wilt weten hoe u uw afbeeldingen uploadt naar een Nokia 5110-scherm.

void setup() { radio.setMonoReception(); radio.setStereoNoiseCancellingOn(); initScreen(); showSplashScreen(); Serial.begin(9600);} 

Vervolgens lezen we in de lusfunctie de waarde van de potentiometer die de frequentie om de paar milliseconden regelt. We halen de analoge waarde van de potentiometer en brengen deze in kaart met een frequentiewaarde. Aangezien we een analoge waarde uitlezen is deze waarde niet constant; het gaat iets omhoog of omlaag, zelfs als we de potentiometer niet draaien.

frequencyInt =map(val, 2, 1014, 8700, 10700); //Analoge waarde voor frequentie van 87,0 MHz tot 107,00 MHz float-frequentie =frequencyInt/100,0f; 

Om een ​​stabiele frequentie te bereiken stemmen we de radio dus alleen af ​​op een andere frequentie als de frequentie flink veranderd is. Dus als er een significante verschuiving in de frequentie is, stemmen we de radiomodule af op die frequentie, krijgen we de signaalsterkte en printen we deze op het scherm, we printen het stereopictogram indien nodig en tot slot printen we de geselecteerde frequentie .

if(frequentie - previousFrequency>=0.1f || previousFrequency - frequency>=0.1f) { lcd.clrScr(); radio.selectFrequency(frequentie); printSignalStrength(); printStereo(); printFrequency (frequentie); vorigeFrequentie =frequentie; } 

Dat is hoe de code werkt, het is eenvoudig maar werkt goed. Zoals altijd kun je de code van het project bij deze stap vinden.

Aangezien dit een project in ontwikkeling is, kunt u de nieuwste versie van de code hier op de webpagina van het project vinden:http://educ8s.tv/arduino-fm-radio-project

FMRadio.zip

Stap 6:Laatste gedachten

Zoals je in ongeveer een half uur kunt zien, kunnen we een FM-radio bouwen op een breadboard. Hoe cool is dat!

De geluidskwaliteit die we uit dit project halen is nog niet geweldig. Ik ga meer aan dit project werken om het op elk gebied te verbeteren. Ik wil van dit project een complete radio maken met een retro 3D-geprinte behuizing. Allereerst ga ik verschillende audioversterkers en luidsprekers proberen om een ​​goede geluidskwaliteit uit dit project te halen. Ik zal het ook van het breadboard verwijderen en er een permanente versie van maken op een prototypebord. Ik zal ook een behuizing voor dit project ontwerpen om het op een radio te laten lijken. Natuurlijk heeft de code van het project ook veel verbeteringen en tweaks nodig. Een functie die ik zou willen toevoegen is een fine-tuning-functionaliteit die de geluidskwaliteit nog meer zal verbeteren.

Het project vereist ongeveer 50 mA stroom wanneer de achtergrondverlichting van het display is uitgeschakeld. We kunnen de huidige software- en hardwaretrucs verder verminderen, zodat dit project op batterijen kan werken. Ik denk dat het resultaat indrukwekkend zal zijn, ik kan niet wachten om dit project op mijn bureau voltooid te zien. Deze video was nog maar het begin.

Ik hoor graag uw mening over dit project. Vind je dit project interessant? En wat voor verbeteringen stel je voor? Heb je trucs uit je ervaring die dit project kunnen verbeteren?

Plaats je opmerkingen in de comments hieronder en vergeet niet de video leuk te vinden en te delen met je vrienden als je hem interessant vindt! Heel erg bedankt!

Code

  • Codefragment #1
  • Codefragment #3
Codefragment #1Platte tekst
void setup() { radio.setMonoReception(); radio.setStereoNoiseCancellingOn(); initScreen(); showSplashScreen(); Serial.begin(9600);}
Codefragment #3Platte tekst
if(frequentie - previousFrequency>=0.1f || previousFrequency - frequency>=0.1f) { lcd.clrScr(); radio.selectFrequency(frequentie); printSignalStrength(); printStereo(); printFrequency (frequentie); vorigeFrequentie =frequentie; }

Schema's


Productieproces

  1. Arduino digitale dobbelstenen
  2. Pi-Arduino internetradio
  3. Iron Man
  4. Vind mij
  5. Arduino 3D-geprinte robotarm
  6. Arduino-luchtbevochtigerbediening
  7. FM-radio met Arduino en RDA8057M
  8. NeoMatrix Arduino Pong
  9. Arduino-joystick
  10. Stappenteller (Arduino 101)
  11. Arduino kleurenmixer