(Ab) use um Arduino como transmissor de música AM!
Componentes e suprimentos
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 |
Aplicativos e serviços online
|
Sobre este projeto
Coisas legais podem ser feitas com ATmega MCUs. Então, tive a ideia de construir um transmissor AM com um Arduino Nano (qualquer outro Arduino também é possível)
A questão é:como a modulação de amplitude (AM) pode ser alcançada em um dispositivo digital? AM significa que a amplitude de uma frequência portadora é alterada de acordo com a amplitude do sinal de entrada que queremos transmitir. Falado matematicamente, multiplicamos a portadora pelo sinal de entrada. Mas como um ATmega possui apenas saídas digitais, ele pode fornecer apenas dois valores:alto e baixo. Falando francamente, não há como obter AM real de um Arduino.
No entanto, é possível produzir algum sinal de saída que pode ser ouvido claramente com um receptor de rádio AM comum!
A solução consiste em transformar o sinal analógico de entrada em sinal PWM, utilizando o ADC e o timer / contador1 de 16 bits do ATmega MCU.
O temporizador / contador2 gera o sinal da portadora, que pode ser variado em uma ampla faixa entre 31KHz e 8MHz.
Este sinal portador é emitido no pino D11 no ritmo do sinal PWM. O rádio AM se comporta como um filtro passa-baixo no PWM, então recebemos de volta o sinal de áudio original.
Esta é apenas uma prova de conceito, então mantive-a simples. Se você realmente deseja usá-lo como um transmissor de RF, deve adicionar um fillter passa-baixo para anti-aliasing para a entrada de áudio e um passa-baixo contra os harmônicos para a saída RF.
Código
- Transmissor Arduino AM
Transmissor Arduino AM C / C ++
/ * Este trabalho está licenciado sob a Licença Internacional Creative Commons Atribuição-Compartilhamento pela mesma Licença. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-sa/4.0/.*/#define ANTENNA_PIN PB3 // Arduino Nano / Uno D11 // a função de configuração é executada uma vez quando você pressiona reiniciar ou ligue o boardvoid setup () {Serial.begin (115200); // Geração da frequência portadora uint32_t fTransmit =600; // KHz DDRB | =(1 <18,5k Taxa de amostragem DIDR0 =(1 <
Esquemas
Processo de manufatura