You can make an Arduino produce a sine-like analog signal by sending evenly timed sine-wave samples to a DAC. For an Uno, one practical route is an external MCP4725 I2C DAC; an Arduino UNO R4 can use its built-in DAC on A0. If you need a wider frequency range with digitally set frequency, an AD9833 DDS module is another option. The right choice depends on frequency, output voltage, load, and how clean the waveform must be.
Choose the output method
A digital sine wave is represented by a sequence of sample values. The Arduino steps through those values repeatedly; a DAC turns them into changing voltage levels. A low-pass filter can smooth the steps, though it also affects bandwidth and settling.
| Method | What it provides | Best fit | Important limits |
|---|---|---|---|
| External MCP4725 DAC | Arduino sends samples to a 12-bit DAC over I2C. | An Uno or other board without a convenient built-in DAC, for modest-frequency experiments. | Update speed depends on the board, I2C transactions, library, and code. The cited examples do not establish a general maximum frequency. |
| Built-in DAC | The sketch writes samples directly to a DAC pin on supported boards. | A supported board is available and its output range suits the circuit. | Capabilities vary by board. The UNO R4 tutorial specifies 0–3.3 V and 12-bit resolution on A0. |
| Filtered PWM | PWM pulses are smoothed by an external low-pass filter to approximate an analog waveform. | Low-cost experiments where some ripple and distortion are acceptable. | PWM is not a true DAC. Reducing ripple affects bandwidth and settling; no validated filter design for a particular frequency is established here. |
| AD9833 DDS module | A dedicated chip generates a digitally controlled waveform using direct digital synthesis. | Projects where a wider frequency range or convenient frequency control is important. | Chip specifications do not guarantee a finished module’s output amplitude, filtering, or performance into a particular load. |
Compare the required frequency, output amplitude and polarity, resolution, waveform quality, control interface, analog conditioning, load impedance, and measurement needs before choosing. These methods are not interchangeable, and an example build is not automatically a calibrated bench instrument.
Make a sine wave with an Arduino and MCP4725
An MCP4725 breakout provides a 12-bit I2C DAC. The Arduino sketch cycles through a lookup table of sine values and writes each value to the DAC. Adafruit’s library offers a sine-wave example and documents values from 0 through 0x0FFF, along with the begin(addr) and setVoltage(value, storeflag) calls. See the Adafruit MCP4725 Arduino guide and its sinewave example sketch.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
- Wire the DAC breakout. Connect its power, ground, SDA, and SCL pins to the matching connections on your Arduino. Check the exact board and breakout pin labels before applying power.
- Install and include the library. Follow Adafruit’s guide for the
Adafruit_MCP4725library and initialization. Use the I2C address appropriate for the breakout; the guide documents the default address details. - Load a sine lookup table. Use the example’s table or create values spanning the DAC’s valid range. A larger table can represent the wave with more samples per cycle, but does not by itself guarantee a higher output frequency or better result.
- Write the samples repeatedly. Advance through the table at a regular interval and send each sample to the DAC with
setVoltage(value, false). The library’s store flag controls EEPROM storage; do not enable it for every waveform sample. Adafruit cautions that EEPROM writes take longer and can wear the memory, citing 20,000-write endurance for this interface. - Measure the output. Observe the DAC output with an oscilloscope if the actual wave shape, frequency, or amplitude matters. Test it with the intended load, not only with the output unloaded.
The Arduino Project Hub’s Arduino Sinewave Generator uses an Uno and an MCP4725-based SF-5 DAC board. Its listed parts—4.99 kΩ and 10 kΩ resistors, a 100 nF capacitor, jumper wires, and a half-size solderless breadboard—belong to that particular build, not every MCP4725 circuit.
Understand the output range
The MCP4725 output is unipolar: its voltage is bounded by the DAC supply and circuit. A sine wave centered around zero, a different amplitude, or a particular load drive may require additional analog circuitry such as offsetting, filtering, or amplification. Check the DAC and circuit ratings rather than assuming the Arduino output can directly drive any load.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Use the UNO R4 built-in DAC
Arduino’s UNO R4 signal-generator tutorial uses the DAC output on A0. It specifies a 12-bit DAC with 4096 steps across 0–3.3 V, or approximately 0.0008 V per step; the tutorial applies to UNO R4 WiFi and UNO R4 Minima. See Arduino’s UNO R4 DAC signal-generator tutorial.
This route avoids sending every sample through an external I2C DAC, but it remains a unipolar output within the stated range. Confirm that the exact UNO R4 model, output pin, voltage range, and load fit your circuit. Arduino’s tutorial demonstrates a Visuino example with rotary-encoder control; the underlying principle is still to output a sequence of samples. An oscilloscope is useful for checking the resulting wave.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Know what PWM can and cannot do
On many Arduino boards, analogWrite() produces PWM, not a continuously variable DAC voltage. A low-pass filter can smooth the pulse train’s average into an approximate analog waveform, but residual ripple and waveform distortion may remain. A filter also trades ripple reduction against bandwidth and settling time, so choose it for the intended frequency and load rather than assuming any capacitor will produce a clean sine.
Arduino’s PWM output guide gives an 8-bit default resolution for compatibility with AVR-based boards, lists recommended PWM pins for common boards, and identifies true DAC outputs on some models: Zero and MKR boards plus Nano 33 IoT at DAC0/A0, and Due at DAC0/DAC1. Verify the pin and capabilities for your particular board. A PWM example is most appropriate when simplicity and cost matter more than clean analog output.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
When an AD9833 DDS module is a better fit
The AD9833 is a dedicated direct digital synthesis chip. Its datasheet describes a 28-bit phase accumulator feeding a sine lookup ROM and DAC. Analog Devices specifies sine-wave generation up to 12.5 MHz and a typical chip DAC output of 0.6 V peak-to-peak. Those are chip-level specifications, not a guarantee that any breakout module driven by an Arduino will achieve that frequency or output into a given load. Check the module’s documentation and measure its output. Read the Analog Devices AD9833 Rev. G datasheet.
An Arduino Project Hub JX Wave Generator illustrates an Arduino-controlled wave-generator project using this type of approach. Select an AD9833 module when its frequency-control convenience and potential range suit the design, and plan for output conditioning if the amplitude, offset, or load requirements differ from the module’s actual output.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Check the signal before relying on it
- Confirm the amplitude and offset. A DAC output may be unipolar; a circuit expecting a bipolar signal may need a coupling or level-shifting stage.
- Check frequency and shape under load. Update timing, sample count, DAC communication, filtering, and load all affect the result.
- Keep within component ratings. A hobby Arduino output is not automatically suitable for every circuit or a calibrated signal source.
- Do not connect it directly to mains or a high-energy circuit. Validate the voltage and waveform at the intended load before relying on the signal.
- Use an oscilloscope when waveform quality matters. A sketch running successfully does not prove the output has the required amplitude, frequency, or shape.
The cited examples do not provide a head-to-head measurement of distortion, accuracy, or maximum usable frequency across the MCP4725, UNO R4 DAC, PWM, and AD9833 approaches. Treat a build as an educational or circuit-testing source unless its performance has been measured and validated for your application.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

