FM-Radio met Si4703 Breakout Board, LCD en Arduino (7 / 9 stap)

Stap 7: Arduino codering

Deze code die ik schreef is vrij ongecompliceerd. Wanneer u de radio inschakelt door het aansluiten van de Arduino aan de macht, is de radio afgestemd op een set station waarvan frequentie wordt weergegeven op het LCD-scherm samen met de woorden "FM Radio". Vanaf dit punt kunt u de tuner + of tuner - kortstondige drukknoppen de gewenste zender zoeken en bekijken op het LCD-scherm bijwerken.

Ik heb verschillende audio-ingangen voor mijn jukebox, heb ik besloten om de Si4703 breakout board ingesteld op een bepaald volumeniveau en ik kon het aanpassen van het volume van mijn speakers met behulp van drukknoppen op het voorpaneel van de jukebox naast de tuner-knoppen. U kunt gemakkelijk een paar meer kortstondige drukknoppen toevoegen aan de Arduino controle van het volume van de radio module zelf wel.

Dus ik denk dat de basisfunctionaliteit van het Wetboek uitgelegd, is hier de werkelijke code van de Arduino wel:

BEGIN VAN DE CODE

/*
Het circuit:

LCD (Jaycar onderdeelnummer QP5520)

* RS pin naar digitale pin 8

* Laat speld aan digitale pin 9

* DB4 pin naar digitale pin 4

* DB5 aan digitale pin 5 vastmaken

* DB6 pin naar digitale pin 6

* DB7 pin naar digitale pin 7

* R/W pen op grond

* VSS pin op grond

* De VDD pin naar 5V

* VO pin op grond

* A(+) pin naar 5V via weerstand van 220 ohm [LCD-achtergrondverlichting]

* K(-) pin op grond [LCD-achtergrondverlichting]

Si4703 breakout board

* SDIO pin naar analoge pin 4 (Via Logic niveau Converter) gele draad

* SCLK pin naar analoge pin 5 (Via Logic niveau Converter) blauwe draad

* EERSTE pin aan digitale pin 2 (Via Logic niveau Converter) witte draad

* De GND op grond

* + 3,3 v naar 3,3 v

Logica niveau Converter

* De HV voor 5V

* LV naar 3,3 v

* HV1 naar analoge pin van de Arduino 4

* LV1 naar Si4703 SDIO pin

* HV2 naar analoge pin van de Arduino 5

* LV2 tot Si4703 SCLK pin

* HV3 naar digitale pin van de Arduino 2

* LV3 Si4703 RST PIN

* GND van met de GND

Kortstondige (N/O) drukknop ingangen (Jaycar onderdeelnummer SP0716)

* Kortstondige drukknop 1 + 5V___button___digital pin 10 (zoeken naar beneden) met 10kohm pull-down weerstand aan de grond

* Kortstondige drukknop 2 + 5V___button___digital pin 11 (zoeken omhoog) met 10kohm pull-down weerstand op grond * /

de code van de bibliotheek omvatten:

#include "<" LiquidCrystal.h">"

#include "<" Si4703_Breakout.h">"

#include "<" Wire.h">"

definiëren van de pinnen voor het LCD-scherm
int RS = 8;

int E = 9;

int DB4 = 4;

int DB5 = 5;

int DB6 = 6;

int DB7 = 7;

definiëren van de pinnen voor de Si4703

int resetPin = 2;

int SDIO = A4;

int SCLK = A5;

definiëren van de pinnen voor de drukknoppen zoeken

int channelDown = 10;

int channelUp = 11;

initialiseren van de bibliotheek met de nummers van de pennen van de interface

LCD initialisatie

LiquidCrystal lcd (RS E, DB4, DB5, DB6, DB7);

Si4703 initialisatie

Si4703_Breakout radio (resetPin, SDIO, SCLK);

Definiëren van de variabelen voor de radio

int kanaal;

int volume;

VOID Setup

{

definiëren van drukknop pinnen als ingangen

pinMode(channelDown,INPUT);

pinMode(channelUp,INPUT);

delay(1000); vertragen om rekening voor het voeden van van Arduino en met welke vertragings om LCD uitgevoerd te

de LCD's aantal kolommen en rijen instellen:

LCD.begin (16, 2);

Zet de radio en het volume tot een gewenste niveau instellen

radio.powerOn();

radio.setVolume(15); volume tussen 0 en 15

de radio ingesteld op een standaard frequentie (Nova 96,9 MHz FM)

kanaal = 969;

radio.setChannel(channel);

weergeven van een titel 'FM Radio' op regel 0 van het LCD, die

(Opmerking: lijn 1 is de tweede rij, aangezien tellen met 0 begint):

lcd.setCursor(0,0);

LCD.Print ("FM Radio"); Toon de frequentie van het kanaal op de LCD, gericht

lcd.setCursor(0,1);

LCD.Print ("96.9 MHz");}

void loop

{

Controleer als de channelUp knop is ingedrukt, zoja zoeken voor een kanaal

Als (digitalRead(channelUp) == HIGH)

{

kanaal = radio.seekUp();

updateLCD();

}

Controleer als de channelDown knop is ingedrukt, zoja zoeken naar beneden voor een kanaal

else if (digitalRead(channelDown) == HIGH)

{

kanaal = radio.seekDown();

updateLCD();

}

}

VOID updateLCD()

{

het kanaal geheel getal converteren naar een tekenreeks decimaal en "MHz" toevoegen voordat het wordt weergegeven op de LCD

ChannelString koord = String(channel);

Tekenreeks frequentie;

Als (channelString.length() == 3) //if de frequentie is 3 cijfers, plaatst u een komma na het tweede cijfer

{

frequentie = channelString.substring(0,2) + "." + channelString.substring(2) + "MHz";

}

else if (channelString.length() == 4) //if de frequentie bestaat uit 4 cijfers, plaatst u een komma na het derde cijfer

{

frequentie = channelString.substring(0,3) + "." + channelString.substring(3) + "MHz";

}

Eerst schakelt u lijn 1 van de weergave op account voor overgang tussen 3 en 4 cijferige frequenties

lcd.setCursor(0,1);

LCD.Print("");

Update de frequentie op het LCD-scherm

lcd.setCursor(4,1);

LCD.Print(Frequency);

}

EINDE VAN CODE

Ik heb gelezen dat de breakout board kan ook andere informatie zoals de namen van het lied, maar ik heb niet veel meer informatie over deze gevonden en wanneer ik de RDS probeerde, er niets gebeurde. Voor een update van dit project zou het cool om te verwijderen van de lijn "FM Radio" van de LCD en vervangen door de naam van het nummer dat momenteel wordt afgespeeld. Als iemand weet hoe dit te doen of wat informatie kan delen, zou ik graag van u horen!

Gerelateerde Artikelen

Aan de slag met Intel® Edison Mini Breakout Board

Aan de slag met Intel® Edison Mini Breakout Board

Intel biedt 2 verschillende hardwareplatformen om te werken met Intel® Edison ontwikkel bord.De kern-module van Intel® Edison heet Intel® Edison Compute Module, terwijl de 2 extensie planken zijn Intel® Edison Arduino Board en Intel® Edison Breakout
ESP8266 breakout board

ESP8266 breakout board

Dit project gebeurt door Fong Jia Yi vanuit Singapore Polytechnic, met de heer Teo Shin Jen als onze bouwdirectie.Inleiding In dit project, hebben we kwam met dit breakout board de ESP8266, een toegelaten wi-fi-microcontroller te programmeren. Dit bo
Gebruik SD kaart, Breakout Board op pcDuino

Gebruik SD kaart, Breakout Board op pcDuino

Hoewel de directe ondersteuning biedt voor pcDuino het geheugen heeft uitbreiding van TF kaart en de it een grote capaciteit,Het does't voorkomen ons te begrijpen en te leren hoe de SD-kaart realiseert lezen en schrijven op pcDuinoStap 1: Deel lijst
Gebruik Si4703 FM Breakout Board op Arduino Uno

Gebruik Si4703 FM Breakout Board op Arduino Uno

In deze post, zal ik het gebruik van SI4703 FM Breakout Board op Arduino Uno demoSi4703 FM breakout board voor de Silicon Laboratories Si4703 FM tuner chip.Dan wordt een eenvoudige radio van de FM, is de Si4703 ook geschikt voor het opsporen en verwe
TEA5767 FM Radio Breakout Board voor Arduino

TEA5767 FM Radio Breakout Board voor Arduino

ik onlangs niet te verzetten tegen het kopen van twee modules van de Radio van de FM van de TEA5767 van eBay voor bijna niets. Deze kleine modules gebruik maken van de seriële I2C-protocol en zijn dus ideaal voor het verbinden van een Arduino.Er is m
Met behulp van Breakout Board voor ADMP401 MEMS-microfoon op pcDuino

Met behulp van Breakout Board voor ADMP401 MEMS-microfoon op pcDuino

Module Inleiding:Breakout Board voor ADMP401 MEMS-microfoon is een supersensitive omnidirectionele microfoons. De PCB is zeer klein, signaaluitgang is eenvoudig, met slechts 3 signaaluitgang, één VCC (positieve kracht), een GND (negatieve kracht), ee
Breakout Board voor ESP 8266 01 met CP2102

Breakout Board voor ESP 8266 01 met CP2102

Opmerking: Dit project werd gedaan door een groep van Singapore Polytechnische studenten(Auteur: William Tan). De hulpprogramma's en onderdelen werden verstrekt door onze FYP-supervisor heer Teo Shin Jen.Hallo iedereen, ik zal beginnen door te praten
Een beetje breakout board voor DIP ICs met uitvoer weerstanden

Een beetje breakout board voor DIP ICs met uitvoer weerstanden

Hallo allemaal.Dit is mijn eerste instructable! Als u suggesties of vragen hebt, voel je vrij om het stuur me een PM.Na ontvangst van mijn goedkope (vreselijk verpakt, dat is wat je krijgt voor zijn een vrek) 74HC595 shift registreert uit China een t
Aan de slag met de Daflabs ESP8266 ESP-12 Breakout Board

Aan de slag met de Daflabs ESP8266 ESP-12 Breakout Board

Deze gids is een snelle beginnersgids die laat hoe zien met de ESP-12 Breakout board met de CP2102.Wat u nodig hebt:1. Daflabs ESP-12 Breakout Board2. CP2102 USB to UART seriële module3. jumper draden4. breadboard (optioneel)Stap 1: over de Raad van
MONTAGE van de EDISON van het bestuur van de INTEL® met de INTEL® EDISON MINI BREAKOUT BOARD

MONTAGE van de EDISON van het bestuur van de INTEL® met de INTEL® EDISON MINI BREAKOUT BOARD

In dit instructable, u zult verbinden met de Intel® Edison-module een Intel® Edison mini breakout board.Vereisten> Intel Edison module> Intel Edison mini breakout board> 2 micro B naar USB Type A-kabelsMerk op dat de breakout board twee micro USB
Maxbotix Lv-EZ sensor met Cylonjs en Edison Arduino breakout board

Maxbotix Lv-EZ sensor met Cylonjs en Edison Arduino breakout board

Dit instructable is voor gebruikers die willen de LV Ez-serie Maxbotix sensoren naar de Edison met arduino breakout board, met cylonjs of johhny-vijf interface.Stap 1: Dingen die je zal nodig.1) Edison met arduino breakout board.2) Grove basis schild
Daft Punk LED Matrix Breakout Board

Daft Punk LED Matrix Breakout Board

ik was altijd onder de indruk door de Daft Punk-koffietafel.  Zijnde kundig voor een stelletje LEDs oplichten en knipperen ze patronen heeft zoveel toepassingen.  Het was een van de redenen waarom ik kocht een Arduino zien hoe kon Informaticacontrole
Vero bestuur breakout voor LCD karakterdisplay

Vero bestuur breakout voor LCD karakterdisplay

onder de dingen die ik houd niet van meest is verbinding maken met een bos van individuele jumper in mijn project prototypes draden. Parallelle LCD karakter wordt weergegeven en ICs vereisen veel van hen. Ik vaak gebruik van de LCD karakterdisplay al
USB-Breakout Board

USB-Breakout Board

Dit is een echt eenvoudige USB-uitbraak die ik gemaakt heb in een half uur zodat ik kon controleren sommige USB Kerstverlichting met een Arduino en een Relais module aangedreven.Er zijn drie manieren om de USB verbinding met dit bord:Soldeer de drade