Radio FM Si4703 Breakout Board, LCD y Arduino (7 / 9 paso)

Paso 7: Codificación de Arduino

Este código que escribí es bastante recta hacia adelante. Cuando encienda la radio por conectar el Arduino a la alimentación, la radio se sintonice a una estación de set de que frecuencia se muestra en la pantalla LCD junto con las palabras "Radio FM". Desde este punto, puede utilizar los botones momentáneos + sintonizador o tuner - para encontrar la emisora deseada y ver que actualizar en la pantalla LCD.

Como tengo varias entradas de audio para mi jukebox, decidí tener el Si4703 breakout junta a un cierto nivel de volumen y pude ajustar el volumen de mis altavoces usando los botones en el panel frontal de la máquina de discos junto a los botones del sintonizador. Usted puede agregar fácilmente un par botones más momentáneos para el Arduino para controlar el nivel de volumen del módulo de radio sí mismo sin embargo.

Así que creo que es la funcionalidad básica del código explicado, aquí aunque es el real código de Arduino:

COMIENZO DEL CÓDIGO

/*
El circuito:

LCD (Jaycar pieza número QP5520)

* Pin RS para pin digital 8

* Activar pin a pin digital 9

* DB4 pin a pin digital 4

* DB5 pin a pin digital 5

* DB6 pin a pin digital 6

* DB7 pin al pin digital 7

* R/W pin a tierra

* Pin VSS a tierra

* Pin VDD a 5V

* Pin VO a tierra

* A(+) pin a 5V a través de la resistencia de 220 ohm [luz de fondo LCD]

* K(-) pin a tierra [luz de fondo LCD]

Si4703 breakout Junta

* SDIO a pin analog pin 4 (vía lógica nivel convertidor) amarillo alambre

* SCLK a pin analog pin 5 (vía lógica nivel convertidor) azul cable

* Pin RST al pin digital 2 (vía lógica nivel convertidor) cable blanco

* GND a tierra

* + 3, 3V a 3.3V

Convertidor de nivel de lógica

* Alto voltaje a 5V

* LV a 3, 3V

* HV1 al pin analógico Arduino 4

* LV1 al pin Si4703 SDIO

* HV2 al pin analógico Arduino 5

* LV2 al pin Si4703 SCLK

* HV3 al pin digital de Arduino 2

* LV3 al pin RST Si4703

* GND a GND

Momentánea (N/O) entradas de pulsador (Jaycar pieza número SP0716)

* Botón momentáneo 1 + 5V___button___digital pin 10 (buscar hacia abajo) con 10kohm tire hacia abajo la resistencia a tierra

* Botón momentáneo 2 + 5V___button___digital pin 11 (buscar por) con 10kohm baje la resistencia a tierra * /

incluir el código de biblioteca:

#include "<" LiquidCrystal.h">"

#include "<" Si4703_Breakout.h">"

#include "<" Wire.h">"

definir los pines de la pantalla LCD
int RS = 8;

int E = 9;

int DB4 = 4;

int DB5 = 5;

int DB6 = 6;

int DB7 = 7;

definir los pines para el Si4703

int resetPin = 2;

int SDIO = A4;

int SCLK = A5;

definir los pines para los botones de búsqueda

int channelDown = 10;

int channelUp = 11;

inicializar la biblioteca con los números de los pines de interfaz

Inicialización del LCD

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

Si4703 inicialización

Si4703_Breakout radio (resetPin, SDIO, SCLK);

Definir las variables para la radio

canal de int;

int volumen;

void setup()

{

definir el botón pines como entradas

pinMode(channelDown,INPUT);

pinMode(channelUp,INPUT);

Delay(1000); retraso para tener en cuenta para encender de Arduino y el lag conseguir LCD funcionando

fijar número la pantalla del LCD de filas y columnas:

LCD.Begin (16, 2);

Encienda el radio y ajuste el volumen al nivel deseado

radio.powerOn();

radio.setVolume(15); volumen entre 0 y 15

programar la radio a una frecuencia predeterminada (Nova 96.9 MHz FM)

canal = 969;

radio.setChannel(channel);

Mostrar un título 'FM Radio' en la línea 0 de la pantalla LCD, centrada en

(Nota: la línea 1 es la segunda fila, ya que cuenta comienza con 0):

lcd.setCursor(0,0);

LCD.Print ("FM Radio"); Mostrar la frecuencia de canal en la pantalla LCD, centrada en

lcd.setCursor(0,1);

LCD.Print ("96,9 MHz");}

void loop()

{

Compruebe si se ha pulsado el botón de channelUp, si lo buscan en un canal

Si (digitalRead(channelUp) == HIGH)

{

canal = radio.seekUp();

updateLCD();

}

Compruebe si se ha pulsado el botón de channelDown, si es así buscar abajo de un canal

else if (digitalRead(channelDown) == HIGH)

{

canal = radio.seekDown();

updateLCD();

}

}

void updateLCD()

{

el canal entero a convertir una cadena a añadir lugar decimal y "MHz" antes de mostrar en la pantalla LCD

String channelString = String(channel);

Frecuencia de la cadena;

Si (channelString.length() == 3) //if la frecuencia es de 3 dígitos, coloque un punto decimal después de la segunda cifra

{

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

}

else if (channelString.length() == 4) //if la frecuencia es de 4 dígitos, coloque un punto decimal después del tercer dígito

{

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

}

claro primero la línea 1 de la pantalla a cuenta para la transición entre las frecuencias de dígitos 3 y 4

lcd.setCursor(0,1);

LCD.Print("");

actualizar la frecuencia en la pantalla LCD

lcd.setCursor(4,1);

LCD.Print(Frequency);

}

FINAL DEL CÓDIGO DE

He leído que el breakout Junta también es capaz de obtener otros datos como nombres de la canción, pero no he encontrado mucha más información al respecto y cada vez que trataba de la RDS, no pasó nada. Para una actualización de este proyecto sería cool para quitar la línea "FM Radio" de la pantalla LCD y reemplace con el nombre de la canción que se está reproduciendo. Si alguien sabe cómo hacerlo o puede compartir alguna información, me encantaría oír de usted!

Artículos Relacionados

Utiliza Si4703 FM Breakout Board Arduino Uno

Utiliza Si4703 FM Breakout Board Arduino Uno

en este post, será demostración cómo emplear SI4703 FM Breakout Board Arduino UnoTablero de arranque FM Si4703 para el chip de silicio laboratorios Si4703 FM sintonizador.Más allá de ser una simple radio FM, el Si4703 es también capaz de detectar y p
Dual-puente H - L298 Breakout Board - casero

Dual-puente H - L298 Breakout Board - casero

este es mi casera Dual-puente H mediante el L298N IC.Para control DC paso o motores motores ao otros fines al igual que usted necesita.Otros proyectos:Paso 1: Hardware y materiales Componentes:1 x los orificios perf board 13 x 26 (3,5 x 7,0 cm)2 x co
Adaptador de pantalla I2C LCD para Arduino con PCF8574A

Adaptador de pantalla I2C LCD para Arduino con PCF8574A

Utilizando la pantalla LCD con arduino tiene muchas líneas de la entrada-salida de su microcontrolador. Nunca más con el adaptador I2C!!!!!!En este tutorial yo he usado un cambio PCF8574A registro I2C interfaz. Las ventajas son: es barato y en la web
Interfaz lcd con arduino

Interfaz lcd con arduino

entretela de 16 x 2 lcd con arduinoPantalla de cristal líquido es una parte muy esencial en los dispositivos encajados forma claculater para máquinas de impresión, pantalla LCD funciona con más tensión, con dos es más controladores ic en módulo del l
Simple pantalla táctil LCD para arduino

Simple pantalla táctil LCD para arduino

Esta es una guía que muestra de una manera fácil de configurar una interfaz de pantalla táctil LCD con arduino y otros microcontroladores similares.También es autopromoción desvergonzada de mi pedal de arranque... que se centra en lo que es muy fácil
Cómo interfaz LCD con Arduino

Cómo interfaz LCD con Arduino

Hoy en este instructable va a mostrar cómo puede interactuar un LCD con arduino.Su instrcutable DIY muy fácil que todo el mundo lo hizo en menos de 10 minutos...Este proyecto también le ayuda a mostrar los datos en la pantalla LCD que se recoge de lo
Cómo utilizar la pantalla LCD con arduino tutorial

Cómo utilizar la pantalla LCD con arduino tutorial

Hola todos espero que bien :)Hoy yo soy va a enseñarle a utilizar un LCD display con Arduino (sólo un mensaje de mundo infierno).Si eres un principiante o nunca jugaste con pantalla de LCD con Arduino antes, este instructable definitivamente para ust
LDR Breakout Board (ambiente Arduino)

LDR Breakout Board (ambiente Arduino)

Se trata de una LDR Breakout Junta hecha por mí. Esto consiguió un 10 resistencia k integrado así que sólo tienes que proporcionar alimentación en el pin vcc y gnd y la señal conectar al Arduino. Hice esto en una placa perforada pero también puede ha
Breakout board de Vero para pantalla de caracteres LCD

Breakout board de Vero para pantalla de caracteres LCD

entre las cosas que no me gusta más es conectar cables de un montón de puente individual en mis prototipos del proyecto. Muestra de carácter LCD paralelo y ICs requieren una gran cantidad de ellos. A menudo usar la pantalla LCD de caracteres como una
1 cable de regulador del LCD para Arduino

1 cable de regulador del LCD para Arduino

Mientras que trabaja en un proyecto de ATtiny que encontré faltaba el número de pines y necesita para conectar una pantalla de LCD con 1 alambreHabía encontrado un Instructable sobre cómo utilizar un registro de cambio para controlar la LCD usando só
Streaming de vídeo desde la tarjeta SD para Nokia LCD con Arduino

Streaming de vídeo desde la tarjeta SD para Nokia LCD con Arduino

Durante mucho tiempo con que pensé en reproducción de video audio no fue posible en el Arduino. Entonces un día decidí darle una oportunidad y que resultó para ser más sencillo de lo que pensaba.Me decidí a escribir los pasos de un instructivo en ben
Termohigrómetro con reloj y pantalla LCD en Arduino UNO

Termohigrómetro con reloj y pantalla LCD en Arduino UNO

Estos 7 pasos le conducirá a través de la "construcción" de un termo-higrómetro con reloj en el Arduino UNO.Datos y tiempo, la humedad y temperatura se mostrará en una pantalla LCD 16 x 2 pantalla. Si ha adquirido una pantalla LCD y quiero saber
Distancia transmisor con receptor LCD con Arduino inalámbrico

Distancia transmisor con receptor LCD con Arduino inalámbrico

Este instructables muestra cómo hacer un sensor de distancia de arduino powered con telémetro del ultasonic que la distancia medida en el receptor. En este proyecto utilizamos un transmisor de 433 mhz y un receptor para enviar los datos desde uno ard
BRICOLAJE TV de pantalla LCD con Arduino y mando a distancia inteligente

BRICOLAJE TV de pantalla LCD con Arduino y mando a distancia inteligente

En los pasos siguientes, usted hacer un DIY "TV" con el código para un smart remote y realmente vídeos y posiblemente incluso conectar el mando a distancia inteligente a la placa de base real.Materiales:Espejo de papelEstabilizador sólido y no f