Transmisor de código Morse por radio AM con Arduino

Transmisor de código Morse por radio AM con Arduino

morse

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

El registro Port (puerto)

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/escritura
PORTD - Registro de datos del puerto D - lectura/escritura
PIND - 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/escritura
PORTB - Registro de datos del puerto D - lectura/escritura
PINB - 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/escritura
PORTC - Registro de datos del puerto D - lectura/escritura
PINC - 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:

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!

12 comentarios


AlmuHS · Hace 5 meses

Hola: Podrias publicar el plano en una resolucion mas grande? El del articulo es tan pequeño que ni se ve

Guillermo · Hace 2 años

alguien podría facilitarme el esquemático? no logro observar bien como se realizan las conexiones :( gazambra@fiec.espol.edu.ec

Tutorial Raspberry Pi: Crea un transmisor de radio FM | Geeky Theory · Hace 2 años

[…] Si recordáis, hace tiempo escribimos un artículo sobre cómo transmitir código Morse por radio AM con Arduino: TX AM con Arduino. […]

jesus · Hace 3 años

que tal, alguien que me pueda apoyar con un proyecto de la escuela. me están pidiendo que capte con arduino las señales de radio(AM), pero no se con que ni como, me pueden apoyar?

Anónimo · Hace 3 años

No puedo ver bien el esquema porque es muy pequeño. Puedo intentar agrandarlo, pero la calidad no es tan buena.

Bookmark 2013 | emilio · Hace 3 años

[…] Transmisor de código Morse por radio AM con Arduino | GEEKY THEORY […]

Luis Ospino · Hace 3 años

Esta bueno el articulo lo he probado y anda genial lo he recibo en mi telefono celular(Alcatel Fire con firefox OS) a la frecuencia de 102,9Mhz FM y se escuha hay pero en otras tambien pero con mucho ruido

Evelyn · Hace 3 años

Hola quisiera saber si me puedes pasar el codigo del transmisor soy nueva en arduino y no tengo idea como hacerlo.

Mario Pérez Esteso · Hace 3 años

Hola Evelyn. El enlace es el siguiente: <a href="https://github.com/GeekyTheory/Arduino---Emisor-radio-AM" target="_blank" rel="nofollow">Código TX AM Arduino.</a> Un saludo.

Bruno · Hace 3 años

Hola, en este caso la comunicación es posible gracias a que la distancia entre TX y RX es realmente corta. ¿Crees realmente posible alguna forma de emitir código Morse a mayor distancia siempre en AM?

Mario · Hace 3 años

Hola Bruno. Sí es posible. Simplemente necesitas un emisor y un receptor. El código del emisor es el que te doy, pero el del receptor no es tan trivial. Saludos.

Bruno · Hace 3 años

Gracias Mario. No obstante, no dependerá sólo del código del receptor para que la comunicación sea posible. Si pretendo comunicarme de extremo a extremo de Barcelona - por ejemplo - necesitaré algo más que un elaborado código en el RX. ¿No?

Tutorial Raspberry Pi - 5. Crea un transmisor de radio FM | GEEKY THEORY · Hace 4 años

[...] Si recordáis, hace tiempo escribimos un artículo sobre cómo transmitir código Morse por radio AM con Arduino: TX AM con Arduino. [...]

luis · Hace 4 años

holas amigo muy buen proyecto deseo adquirir uno asi como esta en el video dime como hago para adquirirlo ya hecho y los componentes para yo armarlo ,,, graciasssssss

wilmer · Hace 4 años

interesante bueno el mudulo esta en venta, a que precio?

Mario Pérez Esteso · Hace 4 años

¿Perdón?

Anónimo · Hace 2 años

No está en venta, lo tienes que hacer tú

Deja un comentario