I bought a very old oscilloscope and although it works, I have my doubts about refreshing the screen (the electron beam fades away very slowly or is not showing up consistently across the screen).

I tested a bit with digitalWrite and anlogWrite, but this only sends either 0 or 5V out. Is there a way to make a preferably sine or triangle wave of 0 to 5V or -5 to +5V... I guess the Arduino should be capable of it, but so far I only get 0V or 5V out, nothing in between.

According to lesson 8 I should get a variable voltage of 0-5V on a pin with analogWrite, but all I get is 0 or 5V.

For what I see:

  1. PWM gives with analogWrite a pulse signal of 0V or 5V with a duty cycle.
  2. non PWM pins give either 0V or 5V (analogWrite of 0-127 appr: 0V, >127: 5V).

2 Answers 2


You can convert the PWM output of analogWrite() into an (approximate) analog voltage by adding a low-pass filter. That is, a resistor in series followed by a capacitor to ground.

The values to choose depend on the frequency response you want.

For anything more complex or accurate you will need a DAC. I often use the MCP4822 SPI DAC chip.

  • Thank you very much .... it worked, still the scope is very slow (meaning the old signals fade away very slowly), but it works.... guess my scope is 'kind of' usable now. I only needed to test my oscilloscope so a 'good' DAC is not needed (yet), But I put the component in my wish list for future use :-) ... I already ordered a wave generator IC (8038) for later possible use for my project. Commented Apr 29, 2017 at 23:47

a few ways:

1) you can generate a square wave of a known frequency to test the time base of the scope;

2) you can generate an analog signal to test for the vertical. that can be done via pwm or dds.

  • Thanks ... a square wave is not really useful since it is not 'moving' vertically enough, so it's a bit hard to see if there is a problem with the scope ... I assume DDS is with the low pass filter as the accepted answer from Majenko. Commented Apr 30, 2017 at 23:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.