Transmisor de código Morse por radio AM con Arduino
En este tutorial, se va a tratar de explicar cómo conseguir mandar un mensaje desde el ordenador hasta la radio por medio de nuestra placa Arduino.
¿Cómo funciona el Código Morse?
El Código Morse es un medio de comunicación basado en la transmisión y recepción de mensajes empleando sonidos o rayos de luz y un alfabeto alfanumérico compuesto por puntos y rayas. Fue inventado por el inventor y pintor estadounidense Samuel Finley Breese Morse (1791 – 1872).
Transmisión AM
A continuación, daré una cierta introducción teórica sobre el funcionamiento de AM.
La modulación:
Las señales transmitidas en banda base, se transmiten en el margen de frecuencias originales, es decir, el receptor recibe la misma señal que anteriormente envió el emisor sin que haya sufrido ningún tipo de manipulación. Un ejemplo de ello, sería la transmisión entre un amplificador de un equipo de música y sus altavoces.
La modulación consiste en la alteración sistemática de una onda senoidal, a la que denominaremos portadora, en función de las características de otra señal, a la que denominaremos mensaje, que es la señal que contiene la información a transmitir. Mediante esta alteración, conseguiremos obtener una nueva señal, que será más adecuada para nuestra transmisión.
Modulación de amplitud de doble banda lateral con portadora:
El primer tipo de modulación que se desarrolló, fue la modulación de amplitud convencional, que es la AM de radiodifusión normal y corriente.
La principal característica de la modulación AM es que la envolvente de la portadora modulada tiene la misma forma que el mensaje (moduladora). Esto lo conseguimos agregando el mensaje trasladado a la portadora no modulada. La forma de onda de la señal AM corresponde a la siguiente ecuación:
xAM(t)=Ac*[1+m*x(t)]cos(2?fct)
donde x(t) corresponde a la señal moduladora, es decir, al mensaje normalizado, m es el índice de modulación, Ac la amplitud de la portadora y fc la frecuencia de la portadora.
De la ecuación anterior, podemos comprobar que este tipo de modulación corresponde a la suma del mensaje multiplicado por la portadora y una constante, que es el índice de modulación, más la portadora sola. Acabamos de encontrarle el sentido al nombre de este tipo de modulación, que es la modulación de amplitud de doble banda lateral con portadora, aunque lo veremos más claro al estudiarlo en el dominio de la frecuencia.
Si aplicamos la transformada de Fourier a la ecuación xAM(t)=Ac*[1+m*x(t)]cos(2?fct), obtendremos el espectro de una señal modulada en AM con portadora:
XAM(f) = (Ac /2) ? ( f-fc) + (Ac /2) ?( f+fc) + (mAc /2) X ( f-fc) + (mAc /2) X ( f+fc)
La expresión anterior corresponde al espectro del mensaje centrado en ±fc y dos deltas de Dirac, también centradas en ±fc.
Además, mediante el cálculo de su potencia, podemos saber que al menos el 50% de la potencia total transmitida se dedica a enviar la portadora. El término de la portadora es independiente del mensaje y no contiene ninguna información.
Las características principales de la modulación AM:
- El ancho de banda es igual a 2W, es decir, el ancho de banda que ocupa la señal modulada es el doble que el de la señal sin modular (mensaje en banda base).
- fc >>W.
- m?1 para que no se produzca una sobremodulación, que haría que no pudiésemos recuperar el mensaje original.
Comentarios sobre el código fuente programado
Los registros de PORT nos permiten manipular los pines del microcontrolador de la placa Arduino a bajo nivel y de una manera más rapida. Los chips usados por nuestra placa Arduino (el ATmega8 y el ATmega168)poseen tres puertos:
- B (pines digitales del 8 al 13)
- C (entradas analógicas)
- D (pines digitales del 0 al 7)
Cada puerto es controlado por tres tipos de registros, cada uno de los cuales también está definido como variable en el lenguaje de programación utilizado en Arduino. El registro DDR, determina si el pin es una entrada o una salida. El registro PORT controla si el pin está en nivel alto o en nivel bajo, y el registro PIN nos permite leer el estado de un pin que se ha configurado con entrada usando la función pinMode().
Los registros DDR y PORT pueden ser ambos, escritos y leídos. El registro PIN corresponde al estado de las entradas así que solo puede ser leído.
El PORTD mapea los pines digitales del 0 al 7 DDRD - El registro de configuración del modo de los pines del puerto D - lectura/escrituraPORTD - Registro de datos del puerto D - lectura/escrituraPIND - Registro de pines de entrada - solo lectura
PORTB mapea los pines digitales del 8 al 13. Los bits altos(6 & 7) están mapeados a los pines del cristal de cuarzo y no pueden ser usados. DDRB - El registro de configuración del modo de los pines del puerto B - lectura/escrituraPORTB - Registro de datos del puerto D - lectura/escrituraPINB - Registro de pines de entrada - solo lectura
PORTC mapea los pines de entrada analógica del 0 al 5. Los pines 6 y 7 solo son accesibles en el Arduino Mini DDRC - El registro de configuración del modo de los pines del puerto B - lectura/escrituraPORTC - Registro de datos del puerto D - lectura/escrituraPINC - Registro de pines de entrada - solo lectura
Cada bit de estos registros corresponden con un solo pin; por ejemplo el bit menos significativo de los registros DDRB, PORTB, y PINB hace referencia al pin PB0 (pin digtal 8).
No Operation Performed
En programación, NOP, o NOOP es una instrucción en lenguaje ensamblador y, causa que no haga nada, de ahí su nombre.
¿Dónde pongo la antena?
La antena, por ahora, será un simple cable. Este cable lo podremos conectar al pin 8 de la placa para una frecuencia de 1337 (KHz), al pin 7 de la placa para 1337/2 (KHz), y así sucesivamente.
Código en GitHub:
- MONTAJE
El vídeo está mal subido y aparece fondo negro en ciertos intervalos de este. Lo subiré de nuevo.NO HACE FALTA UN DISPLAY LCD PARA REALIZAR ESTE PROYECTO. SÓLO ES NECESARIO UN CABLE A MODO DE ANTENA.EL CÓDIGO FUNCIONA PERFECTAMENTE CON, Y SIN EL DISPLAY.
- VÍDEO TUTORIAL
[youtube http://www.youtube.com/watch?v=f9mCM8Ih4_Y&w=560&h=315] Te quiero pedir un favor. Si te ha gustado el artículo, por favor, compártelo con tus amigos dándole a los botones de abajo. Gracias por tu apoyo!