Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Crear un Transmisor de Música AM con Arduino Nano

Componentes y Suministros

Arduino Nano R3 × 1
Resistencia 10k ohm × 2
Condensador 10 µF × 1
Protoboard (genérica) × 1

Aplicaciones y Servicios Online

Sobre el Proyecto

Se pueden hacer cosas interesantes con MCUs ATmega. Así que se me ocurrió construir un transmisor AM con un Arduino Nano (cualquier otro Arduino también sirve).

La pregunta es: ¿cómo se puede lograr modulación de amplitud (AM) en un dispositivo digital? AM significa que la amplitud de una frecuencia portadora cambia según la amplitud de la señal de entrada que queremos transmitir. Matemáticamente, multiplicamos la portadora por la señal de entrada. Pero como un ATmega solo tiene salidas digitales, solo puede dar dos valores: alto y bajo. Francamente, no hay forma de obtener AM real de un Arduino.

Sin embargo, ¡es posible producir una señal de salida que se escuche claramente con un receptor de radio AM normal!

La solución consiste en transformar la señal analógica de entrada en una señal PWM, usando el ADC y el temporizador/contador 1 de 16 bits del MCU ATmega.

El temporizador/contador 2 genera la señal portadora, que puede variar en un amplio rango entre 31 kHz y 8 MHz.

Esta señal portadora se emite por el pin D11 al ritmo de la señal PWM. La radio AM se comporta como un filtro paso bajo sobre el PWM, así que recuperamos la señal de audio original.

Esto es solo una prueba de concepto, así que lo mantuve simple. Si realmente quieres usarlo como transmisor RF, deberías añadir un filtro paso bajo para anti-aliasing en la entrada de audio y un filtro paso bajo contra armónicos en la salida RF.

Código

Transmisor AM Arduino C/C++

/* Esta obra está licenciada bajo Creative Commons Attribution-ShareAlike 4.0 International License.
   Para ver una copia de esta licencia, visita https://creativecommons.org/licenses/by-sa/4.0/. */

#define ANTENNA_PIN PB3 // Arduino Nano/Uno D11

void setup() {
  Serial.begin(115200);

  // Generación de frecuencia portadora
  uint32_t fTransmit = 600; // KHz
  DDRB |= (1 << ANTENNA_PIN);
  TCCR2A = (0 << COM2A1) + (1 << COM2A0); // Toggle OC0A on Compare Match
  TCCR2A |= (1 << WGM21) + (0 << WGM20);  // CTC
  TCCR2B = (0 << CS22) + (0 << CS21) + (1 << CS20); // Sin preescalado
  OCR2A = F_CPU / (2000 * fTransmit) - 1;

  char strbuf[255];
  sprintf(strbuf, "Will broadcast at %d KHz", (F_CPU / (2 * (1 + OCR2A)) / 1000));
  Serial.println(strbuf);

  // Generación de señal PWM
  TCCR1A |= (1 << WGM11) + (1 << WGM10); // Fast PWM 10 Bit
  TCCR1B = (1 << WGM12);
  TCCR1B |= (0 << CS12) + (0 << CS11) + (1 << CS10); // Sin preescalado
  TIMSK1 = (1 << OCIE1A) + (1 << TOIE1);

  // Configuración ADC
  ADMUX = (1 << REFS1) + (1 << REFS0); // Referencia interna 1.1V
  ADCSRA = (1 << ADEN) + (1 << ADSC) + (1 << ADATE); // Auto Trigger enable, free running
  ADCSRA |= (1 << ADPS2) + (1 << ADPS1) + (0 << ADPS0); // Dividir por 64 -> 18.5k Sample rate
  DIDR0 = (1 << ADC0D);
}

ISR(TIMER1_OVF_vect) {
  uint8_t adcl = ADCL;
  uint8_t adch = ADCH;
  OCR1A = (adch << 8) + adcl;
  DDRB |= (1 << ANTENNA_PIN);
}

ISR(TIMER1_COMPA_vect) {
  DDRB &= ~(1 << ANTENNA_PIN);
}

void loop() {
}

Esquemáticos

Crear un Transmisor de Música AM con Arduino Nano

Proceso de manufactura

  1. El legado y evolución del jukebox clásico
  2. Partituras: De manuscritos medievales a edición moderna — Visión de la industria
  3. Semáforos: Ingeniería, Historia e Innovaciones Futuras
  4. Construya su propio LUMAZOID: Visualizador de música DIY con Arduino
  5. Construye un Spybot controlado por Bluetooth con Arduino
  6. Decodifica señales PPM de receptor RC con Arduino: Guía paso a paso
  7. FlickMote: Mando IR por gestos para Smart Home
  8. TV‑B‑Gone DIY con Arduino: Mando universal para apagar cualquier TV
  9. Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
  10. Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
  11. Uso Fácil de Termistor: Guía Paso a Paso con Arduino