(Ab) ¡usa un Arduino como transmisor de música AM!
Componentes y suministros
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 |
Aplicaciones y servicios en línea
|
Acerca de este proyecto
Se pueden hacer cosas interesantes con los MCU ATmega. Así que tuve la idea de construir un transmisor AM con un Arduino Nano (también es posible cualquier otro Arduino)
La pregunta es, ¿cómo se puede lograr la modulación de amplitud (AM) en un dispositivo digital? AM significa que la amplitud de una frecuencia portadora cambia de acuerdo con la amplitud de la señal de entrada que queremos transmitir. Hablando matemáticamente, multiplicamos la portadora con la señal de entrada. Pero como un ATmega solo tiene salidas digitales, solo puede dar dos valores:alto y bajo. Hablando con franqueza, no hay forma de obtener AM real de un Arduino.
Sin embargo, es posible producir alguna señal de salida que se pueda escuchar claramente con un receptor de radio AM normal.
La solución consiste en transformar la señal de entrada analógica en una señal PWM, utilizando el ADC y el temporizador / contador1 de 16 bits del ATmega MCU.
El temporizador / contador2 genera la señal portadora, que se puede variar en un amplio rango entre 31KHz y 8MHz.
Esta señal portadora se emite en el pin D11 al ritmo de la señal PWM. La radio AM se comporta como un filtro de paso bajo en el PWM, por lo que recuperamos la señal de audio original allí.
Esto es solo una prueba de concepto, así que lo mantuve simple. Si realmente desea usar esto como transmisor de RF, debe agregar un relleno de paso bajo para suavizar la entrada de audio y un paso bajo contra los armónicos en la salida de RF.
Código
- Transmisor Arduino AM
Transmisor Arduino AM C / C ++
/ * Este trabajo está sujeto a la licencia internacional Creative Commons Attribution-ShareAlike 4.0. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/.*/#define ANTENNA_PIN PB3 // Arduino Nano / Uno D11 // la función de configuración se ejecuta una vez cuando presiona restablecer o encienda la configuración de boardvoid () {Serial.begin (115200); // Generación de frecuencia portadora uint32_t fTransmit =600; // KHz DDRB | =(1 <18.5k Frecuencia de muestreo DIDR0 =(1 < Esquemas
Proceso de manufactura