AM Transmitter With Arduino

Introduction: AM Transmitter With Arduino

Cool things can be done with ATmega MCUs. So I got the idea to build an AM transmitter with an Arduino Nano (Arduino UNO is also possible) The question is, how can amplitude modulation (AM) be achieved on a digital device? AM means that the amplitude of a carrier frequency is changed according to the amplitude of the input signal which we want to transmit. Mathematically spoken, we multiply the carrier with the input signal. But as an ATmega has only digital outputs, it can give only two values: high and low. Frankly spoken, there is no way to get real AM out of an Arduino. Nevertheless it is possible to produce some output signal that can be heard clearly with an ordinary AM radio receiver! The solution consists of transforming the analog input signal into a PWM signal, using the ADC and the 16-bit timer/counter1 of the ATmega MCU. The timer/counter2 generates the carrier signal, which can be varied in a wide range between 31KHz and 8MHz. This carrier signal is output on pin D11 in the rhythm of the PWM signal. The AM radio behaves like a low pass filter on the PWM, so we get back the original audio signal there. This is only a proof of concept, so I kept it simple. If you really want to use this as RF transmitter, you should add a low-pass fillter for anti-aliasing to the audio input and a low pass against the harmonics to the RF output. Watch the video to learn how it works.


  • Arduino Nano or Uno
  • Breadboard
  • Capacitor 10 µF
  • 2 x Resistor 10k
  • Wire as antenna, min, 50 cm.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Wire Up the Arduino

Join everything together like shown on the schematic. Although I made the project with an Arduino Nano, Arduino UNO can also be used, as it has the same MCU and pinout.

Step 2: Upload Sketch

Find a free frequency on your AM radio. Enter this frequency into line 11 of the sketch, then upload it to the Arduino. On the serial monitor, the actual carrier frequency is output as soon as the program has started. Tune your radio to this frequency, connect any music player to the input capacitor and enjoy the surprisingly good sound quality.

Hint: the longer the antenna wire, the more range you will attain. Best length is one quarter of the wavelength. For 1 MHz this is 75 meters of wire.

Be the First to Share


    • LED Strip Speed Challenge

      LED Strip Speed Challenge
    • Sculpting Challenge

      Sculpting Challenge
    • Clocks Contest

      Clocks Contest