0

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).
gre_gor
  • 1,682
  • 4
  • 18
  • 28
Michel Keijzers
  • 13,014
  • 7
  • 41
  • 58

2 Answers2

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.

Majenko
  • 105,851
  • 5
  • 82
  • 139
1

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.

dannyf
  • 2,813
  • 11
  • 13