miércoles, 10 de abril de 2024

RADIO FM con chip Si4703 y Arduino Nano. Capítulo 29 y último. Proyecto Arduino.

 

RADIO FM con chip Si4703 y Arduino Nano

Capítulo 29 y último: Proyecto Arduino


Llegamos al final de este laaaargooo proyecto, el de mayor número de capítulos hasta el momento que hay en mi blog. Ha pasado casi año y medio desde que colgué la primera entrada. Hoy, con un poco de nostalgia pero también con la sensación de haberme dejado agotado, toca despedirme del receptor de FM y dar paso a una nueva chaladura.

Para quienes se hayan animado a construir esta radio de FM o bien hacer su propio proyecto inspirándose en el mío, les deseo muchas horas de satisfacción escuchando su receptor.

Tanto en mi canal de YouTube como en este blog me han pedido el proyecto de Arduino del receptor, es decir, el listado del programa. Lo prometido es deuda y en el enlace de abajo podéis descargar el proyecto (archivos ".ino") así como las librerías empleadas a través de un archivo comprimido ".zip".

¡Mucho éxito con vuestros proyectos! y, si queréis, mostrad la radio de FM que habéis construido dejando un enlace a fotos, etc en los comentarios.


Radio FM. Cap. 29. Descarga proyecto Arduino

lunes, 25 de marzo de 2024

RADIO FM con chip Si4703 y Arduino Nano. Capítulo 28. El “setup”: inicialización y arranque del receptor

 

RADIO FM con chip Si4703 y Arduino Nano

Capítulo 28:  El “setup”: inicialización y arranque del receptor




Con este capítulo completamos ¡por fin! la descripción del programa del receptor de radio. A lo largo de los anteriores capítulos hemos ido mostrando trocitos del “setup” que se necesitaban para completar la explicación tanto del “hardware” como de las funciones que componen el programa. Aquí unimos todos esos cachitos para ver el "setup" en su conjunto.

Hablando del programa en general, he procurado que éste sea más “Arduino” que lenguaje C. Si tú eres un avezado programador seguramente encontrarás muchas partes del mismo que se pueden mejorar. En su desarrollo me marqué dos objetivos: economizar el uso de la memoria RAM y la rapidez de ejecución.

Si has echado un vistazo a los últimos catorce capítulos, verás que el programa está compartimentado en muchas funciones para facilitar su depuración y su inteligibilidad. Desarrollé el programa poco a poco, integrando sucesivamente más funciones, de este modo, si algo no funcionaba sabía dónde estaba el fallo.

En el siguiente enlace puedes descargar el capítulo en formato pdf.


Receptor FM cap. 28.

lunes, 11 de marzo de 2024

RADIO FM con chip Si4703 y Arduino Nano. Capítulo 27. Programa principal, el “loop”

 

RADIO FM con chip Si4703 y Arduino Nano

Capítulo 27:  Programa principal, el “loop”


En este capítulo vamos a ver el programa principal del Arduino. No es posible entender el flujo principal del programa sin conocer las funciones a la que se está llamando continuamente. Es por esto que he dejado para el final el “loop”, que viene a ser el director de la orquesta que va dando paso a la ejecución de las distintas funciones que componen el programa del receptor cuando es necesario.

En este enlace puedes descargar el capítulo:

Receptor FM capítulo 27

domingo, 25 de febrero de 2024

RADIO FM con chip Si4703 y Arduino Nano. Capítulo 26. RDS: captura de los campos PS, RT y PTYn

 

RADIO FM con chip Si4703 y Arduino Nano

Capítulo 26:  RDS - Captura de los campos PS, RT y PTYn


Como continuación de los dos capítulos anteriores, en este capítulo vamos a ver la función que se encarga de obtener los caracteres de texto de los bloques C y D de un grupo RDS y guardarlos en la posición que corresponda en las cadenas de caracteres correspondientes a los campos PS, RT y PTYn. Dicho de una forma más sencilla, cómo obtener del RDS el nombre de la emisora, el radiotexto y un complemento del PTY que detalla un poco más la descripción del contenido del programa que estamos escuchando.

En este enlace puedes descargar el capítulo 26 de este culebrón en formato pdf:

Receptor FM cap. 26


sábado, 10 de febrero de 2024

RADIO FM con chip Si4703 y Arduino Nano. Capítulo 25. RDS: captura del campo PTY

 

RADIO FM con chip Si4703 y Arduino Nano

Capítulo 25:  RDS - Captura del campo PTY

Como vimos en el capítulo 23, el código PTY se trasmite en todos los grupos del RDS. Dicho código, de cinco bits, es un simple número del 0 al 31 que nos informa del tipo de contenido que está difundiendo la emisora sintonizada.

En este capítulo vamos a ver cómo el Arduino captura el código PTY y lo convierte en un “string” o cadena de caracteres para representar en el display lcd del dial del receptor.

Aquí tienes el enlace al capítulo en formato pdf:

Receptor FM capítulo 25


jueves, 25 de enero de 2024

RADIO FM con chip Si4703 y Arduino Nano. Capítulo 24. Obtención de los datos RDS del Si4703.

 

RADIO FM con chip Si4703 y Arduino Nano

Capítulo 24:  RDS - Obtención de los datos RDS del Si4703


Con lo visto en el capítulo anterior ya podemos enfrentarnos al reto de obtener del chip receptor Si4703 los datos RDS para presentarlos en una pantalla. En este capítulo, y en los dos siguientes, vamos a analizar las funciones del programa del Arduino que recogen y gestionan los datos RDS proporcionados por el Si4703.

En este enlace puedes descargar el capítulo:

Receptor FM capítulo 24

miércoles, 10 de enero de 2024

RADIO FM con chip Si4703 y Arduino Nano. Capítulo 23. RDS - Radio Data System

 

RADIO FM con chip Si4703 y Arduino Nano

Capítulo 23:  RDS - Radio Data System


A lo largo de estos capítulos he hecho referencia al acrónimo RDS: el led indicador de recepción de datos RDS, campos de datos RDS en los displays, etc. Pero, ¿qué es y cómo es el RDS?


En este capítulo vamos a ver cómo se transmiten los datos RDS, cómo es su estructura y cómo obtener aquéllos que nos interesan. En nuestro receptor sólo utilizaremos la pequeña colección de datos que detallamos en el capítulo anterior, que son los que nos dan información de la emisora y de los contenidos que ésta difunde.


En este enlace puedes descargar el capítulo en formato "pdf". Espero que te sea útil y que te guste.